@@ -0,0 +1,989 @@
+# -*- coding: utf-8 -*-%0A%0A# Copyright 2019 IBM.%0A#%0A# Licensed under the Apache License, Version 2.0 (the %22License%22);%0A# you may not use this file except in compliance with the License.%0A# You may obtain a copy of the License at%0A#%0A#     http://www.apache.org/licenses/LICENSE-2.0%0A#%0A# Unless required by applicable law or agreed to in writing, software%0A# distributed under the License is distributed on an %22AS IS%22 BASIS,%0A# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A# See the License for the specific language governing permissions and%0A# limitations under the License.%0A# =============================================================================%0A%22%22%22%0AArithmetic Utilities%0A%22%22%22%0A%0Aimport numpy as np%0A%0A%0Adef normalize_vector(vector):%0A    %22%22%22%0A    Normalize the input state vector.%0A    %22%22%22%0A    return vector / np.linalg.norm(vector)%0A%0A%0Adef is_power_of_2(num):%0A    %22%22%22%0A    Check if the input number is a power of 2.%0A    %22%22%22%0A    return num != 0 and ((num & (num - 1)) == 0)%0A

relocate arithmetic methods under utils