Skip to content

Commit

Permalink
abolished decomp
Browse files Browse the repository at this point in the history
  • Loading branch information
XYShe committed Apr 27, 2021
1 parent b53c272 commit 36743a1
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
62 changes: 62 additions & 0 deletions examples/spdecomp_tester.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import projectq.libs.math
import projectq.setups.decompositions
from projectq.backends import Simulator, ResourceCounter
from projectq.cengines import (AutoReplacer, DecompositionRuleSet,
InstructionFilter, LocalOptimizer,
MainEngine, TagRemover)
from projectq.libs.math import (AddConstant, AddConstantModN,
MultiplyByConstantModN)
from projectq.meta import Control
from projectq.ops import (All, BasicMathGate, get_inverse, H, Measure, QFT, R,
Swap, X, StatePreparation, SparseStatePreparation)
from projectq.meta._control import State
import numpy as np
import math
resource_counter = ResourceCounter()
import time
# make the compiler and run the circuit on the simulator backend
resource_counter = ResourceCounter()
rule_set = DecompositionRuleSet(modules=[projectq.libs.math,
projectq.setups.decompositions])
compilerengines = [AutoReplacer(rule_set),
TagRemover(),
LocalOptimizer(3),
AutoReplacer(rule_set),
TagRemover(),
LocalOptimizer(3),
resource_counter]
eng = MainEngine(Simulator(),compilerengines,verbose=True)
n = 4
x = eng.allocate_qureg(n)


#X | x[1]
#X | x[1]


#invert = True
state = np.array([ 0,1/math.sqrt(2),0,0,0,0,0,0,0,0,0,0,0,0,1/math.sqrt(2),0])


SparseStatePreparation(state) | x
#X | x[2]

All(Measure) | x

eng.flush()
print('\n')
print('---------------------RESULTS--------------------------------')
for i in range(n):
print('X_reg :',int(x[i]))

print(resource_counter)









#
18 changes: 18 additions & 0 deletions projectq/libs/util_decomp.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import projectq.libs.math
import projectq.setups.decompositions
from projectq.backends import Simulator, ResourceCounter
from projectq.cengines import (AutoReplacer, DecompositionRuleSet,
InstructionFilter, LocalOptimizer,
MainEngine, TagRemover)
from projectq.libs.math import (AddConstant, AddConstantModN,
MultiplyByConstantModN)
from projectq.meta import Control
from projectq.ops import (All, BasicMathGate, get_inverse, H, Measure, QFT, R,
Swap, X)
from projectq.meta._control import State

import math

# State preparation by Schmidt decomp
def sp(engine, v, xreg):

0 comments on commit 36743a1

Please sign in to comment.