Python library with miscellaneous tools to be used in conjunction with the qonic framework
Project description
qonic-misc Python Library:
Python library with miscellaneous tools to be used in conjunction with the qonic framework
To install: pip3 install qonic_misc
Includes:
-
qonic_misc.RotationConversions
:-
operator_to_updated_state(operator, theta_init, phi_init)
Description:
- this function takes a quantum operator (corresponding to a qbit gate), and the initial qbit state defined by the angles theta and phi
- theta and phi define the state based on some point on the bloch sphere in spherical coordinates
- the statevector of the qbit is defined as [cos(theta/2), sin(theta/2) e^(i phi)]
- the function returns the state after being acted on by the gate (in terms of the new theta and phi values)
Parameters:
operator <type 'list'>
: linear, hermitian matrix representing the quantum operatortheta_init <type 'float'>
: initial value for the theta component of the quantum state (must be between 0.0 and pi/2)phi_init <type 'float'>
: initial value for the phi component of the quantum state (must be between 0.0 and pi/2)
Returns:
[theta_updated, phi_updated] <type 'list'>
: list storing the updated values for theta and phi after being operated on by 'operator'
Example:
>>> rc = qonic_misc.RotationConversions() >>> pauli_z = [[1, 0], [0, -1]] # pauli z gate >>> print(rc.operator_to_updated_state(pauli_z, 1, 1)) # operate on the initial state of ['theta': 1, 'phi': 1] [-1.0, 1.0]
-
operator_to_rotation(operator, print_optimization_loss=False, epochs=300, num_of_vectors=3)
Description:- this function takes a quantum operator (corresponding to a qbit gate)
- the function uses tensorflow to find the spacial rotations along the x, y, and z axes of the bloch sphere that corresponds to the operator acting on a qbit state state
Parameters:
operator <type 'list'>
: linear, hermitian matrix representing the quantum operatorprint_optimization_loss=False <type 'bool'>
: boolean value that determines if the function will print out the loss of the tf model as it optimizes to find the spacial rotationsepochs=300 <type: 'int'>
: number of epochs that the tf model will optimize fornum_of_vectors=3 <type 'int'>
: number of quantum statevectors that the tf model will optimize for (higher means more accurate but slower, lower means less accurate but faster)
Returns:
[RotX, RotY, RotZ] <type 'list'>
: list storing the spacial rotations along each axis corresponding to the passed operator
Example:
>>> rc = qonic_misc.RotationConversions() >>> pauli_z = [[1, 0], [0, -1]] # pauli z gate >>> print(rc.operator_to_rotation(pauli_z)) # solve for the spacial rotation of the pauli z gate [0.0, 0.0, 3.14159]
-
-
qonic_misc.OperatorChecker
: tool for evaluating operators-
check_hermitian(operator)
Description:
- this function takes a 2 by 2 operator matrix and checks to see if it is hermitian (equal to its transposed conjugate)
- this is useful because all qbit operators corresponding to quantum logic gates must be hermitian
Parameters:
operator <type 'list'>
: matrix representing the quantum operator
Returns:
hermitian <type 'bool'>
: boolean value storing if the passed matrix is hermitian
Example:
>>> oc = qonic_misc.OperatorChecker >>> pauli_z = [[1, 0], [0, -1]] # pauli z gate >>> print(oc.check_hermitian(pauli_z)) # check to see if the pauli z gate is hermitian True
-
check_unitary(operator)
Description:
- this function takes a 2 by 2 operator matrix and checks to see if it is unitary (produces the identity matrix when multiplied by its transposed conjugate)
- this is useful because all qbit operators corresponding to quantum logic gates must be unitary
Parameters:
operator <type 'list'>
: matrix representing the quantum operator
Returns:
unitary <type 'bool'>
: boolean value storing if the passed matrix is unitary
Example:
>>> oc = qonic_misc.OperatorChecker >>> pauli_z = [[1, 0], [0, -1]] # pauli z gate >>> print(oc.check_unitary(pauli_z) # check to see if the pauli z gate is unitary True
-
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for qonic_misc-0.0.12-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ccc7f90454cf209811ff125767cc84a7b944e2b4462fa091da9fdf3996bad2d |
|
MD5 | 19f27fa59e9fca16702d0a12f2585c27 |
|
BLAKE2b-256 | 719cd6d2c56c839f6acafed0709ba4e7817ef47713e7cefe11b56c32b6ae8bd8 |