forbidden_transition
qoptcraft.invariant.forbidden_transition
Check if a transition violates the necessary criterion of the invariant conservation.
forbidden_transition(state_in, state_out, method='basis', print_invariant=True)
Check if we cannot transition from an input state to an output state through an optical network.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
state_in |
State
|
input state of the optical circuit. |
required |
state_out |
State
|
desired output state of the optical circuit. |
required |
method |
str
|
method to calculate the invariant. Options are 'reduced', 'full', 'basis'. Default is 'basis'. |
'basis'
|
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the transition is forbidden. True if it is not. |
Source code in qoptcraft/invariant/forbidden_transition.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
forbidden_transition_basis(state_in, state_out, print_invariant=True)
Check if we cannot transition from an input state to an output state through an optical network.
Note
This criterion is necessary, but not sufficient. Even if the transition
doesn't violate the criterion (True
output), a unitary may not exist.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
state_in |
State
|
input state of the optical circuit. |
required |
state_out |
State
|
desired output state of the optical circuit. |
required |
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the transition is forbidden. True if it is not. |
Source code in qoptcraft/invariant/forbidden_transition.py
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
forbidden_transition_no_basis(state_in, state_out, print_invariant=True)
Check if we cannot transition from an input state to an output state through an optical network. Calculations are done without a basis of the Hilbert space, so they are faster and more efficient.
Note
This criterion is necessary, but not sufficient. Even if the transition
doesn't violate the criterion (True
output), a unitary may not exist.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
state_in |
State
|
input state of the optical circuit. |
required |
state_out |
State
|
desired output state of the optical circuit. |
required |
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the transition is forbidden. True if it is not. |
Source code in qoptcraft/invariant/forbidden_transition.py
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
|
forbidden_transition_reduced(state_in, state_out, print_invariant=True)
Check if we cannot transition from an input state to an output state through an optical network. Calculations are done with the reduced invariant, which is faster and more efficient.
Note
This criterion is necessary, but not sufficient. Even if the transition
doesn't violate the criterion (True
output), a unitary may not exist.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
state_in |
State
|
input state of the optical circuit. |
required |
state_out |
State
|
desired output state of the optical circuit. |
required |
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the transition is forbidden. True if it is not. |
Source code in qoptcraft/invariant/forbidden_transition.py
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
|