app.enricher.models

Database schema for the enricher nodes.

Module Contents

class app.enricher.models.NodeType(*args, **kwds)

Enum for different node types.

ENCODE = 'encode'

Node for encoding classical data into quantum states.

PREPARE = 'prepare'

Node for preparing predefined quantum states.

OPERATOR = 'operator'

Node representing a classical or quantum operator.

class app.enricher.models.EncodingType(*args, **kwds)

Enum for supported encoding types.

AMPLITUDE = 'amplitude'

Amplitude encoding of quantum states.

ANGLE = 'angle'

Angle encoding of quantum states.

BASIS = 'basis'

Basis state encoding.

MATRIX = 'matrix'

Matrix-based custom encoding.

SCHMIDT = 'schmidt'

Schmidt decomposition-based encoding.

class app.enricher.models.QuantumStateType(*args, **kwds)

Enum for quantum state preparation options.

PHI_PLUS = 'ϕ+'

Bell state |ϕ+⟩

PHI_MINUS = 'ϕ-'

Bell state |ϕ-⟩

PSI_PLUS = 'ψ+'

Bell state |ψ+⟩

PSI_MINUS = 'ψ-'

Bell state |ψ-⟩

GHZ = 'ghz'

Greenberger-Horne-Zeilinger state.

UNIFORM = 'uniform'

Uniform superposition state.

W = 'w'

W-state.

class app.enricher.models.OperatorType(*args, **kwds)

Enum for supported classical and quantum operators.

ADD = '+'

Addition operator (+).

SUB = '-'

Subtraction operator (-).

MUL = '*'

Multiplication operator (*).

DIV = '/'

Division operator (/).

POW = '**'

Exponentiation operator (**).

OR = '|'

Bitwise OR (|).

AND = '&'

Bitwise AND (&).

NOT = '~'

Bitwise NOT (~).

XOR = '^'

Bitwise XOR (^).

LT = '<'

Less than (<).

LE = '<='

Less than or equal to (<=).

GT = '>'

Greater than (>).

GE = '>='

Greater than or equal to (>=).

EQ = '=='

Equality comparison (==).

NEQ = '!='

Inequality comparison (!=).

MIN = 'min'

Minimum of two values.

MAX = 'max'

Maximum of two values.

class app.enricher.models.InputType(*args, **kwds)

Enum for types of inputs to node implementations.

IntType = 'IntType'

Classical integer input.

FloatType = 'FloatType'

Classical float input.

BitType = 'BitType'

Classical bit input.

BoolType = 'BoolType'

Boolean value input.

QubitType = 'QubitType'

Quantum input (qubit).

class app.enricher.models.Base

SQLAlchemy declarative base class for table definitions.

class app.enricher.models.BaseNode

Base class for all nodes.

Parameters:
  • id – ID and primary key of a node

  • type – One of the types defined in NodeType

  • depth – Depth of the node implementation

  • width – Width of the node implementation

  • implementation – Implementation of the node

  • inputs – 1-n-Relationship with Input

class app.enricher.models.Input

Input class to store input information for nodes.

Parameters:
  • id – Primary key.

  • index – Input index within the node.

  • type – Type of the input from InputType.

  • size – Optional size for array-based types.

  • node_id – Foreign key to the parent node.

  • node – Back-reference to the parent BaseNode.

class app.enricher.models.EncodeValueNode

Special properties of EncodeValueNode.

Parameters:
  • id – Foreign key to the id of the BaseNode

  • encoding – Type of encoding defined by EncodingType

  • bounds – Bound of the encode value node

class app.enricher.models.PrepareStateNode

Special properties of PrepareStateNode

Parameters:
  • id – Foreign key to the id of the BaseNode

  • size – Integer value for the size the implementation supports

  • quantum_state – Quantum state of the implementation defined by QuantumStateType

class app.enricher.models.OperatorNode

Special properties of OperatorNode

Param:

id: Foreign key to the id of the BaseNode

Param:

operator: Operator the implementation supports