Skip to main content

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 operator * theta_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 operator * print_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 rotations * epochs=300 <type: ‘int’>: number of epochs that the tf model will optimize for * num_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qonic_misc-0.0.2.tar.gz (4.9 kB view hashes)

Uploaded Source

Built Distribution

qonic_misc-0.0.2-py2.py3-none-any.whl (5.8 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page