-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Finish implementing OpenQASM parser #73
Comments
Hi @boschmitt , I'd be happy to use that functionality. Any updates on this ? |
Hi @Roland-djee. There is already some limited support for OpenQASM 2.0. I suppose the further support would require bigger architectural changes to |
Yes, concretely, I would like to use the |
If you have a function: f(abc) = a!c ⊕ abc, then your ESOP will be [Cube(‘1-0’), Cube(‘111’)] For example (from python): from tweedledum.classical import TruthTable, Cube, create_from_cubes, exorcism
esop = [Cube('101'), Cube('100'), Cube('011'), Cube('001'), Cube('000')]
opt_esop = exorcism(esop, 3)
for cube in opt_esop:
print(cube.to_string(3))
# Create a TruthTable from the orginal ESOP:
tt_esop = TruthTable(3)
create_from_cubes(tt_esop, esop, True)
# Create a TruthTable from the optimized orginal ESOP:
tt_opt_esop = TruthTable(3)
create_from_cubes(tt_opt_esop, opt_esop, True)
# Make sure they are the same
print(tt_esop == tt_opt_esop)
# Now, from a function TruthTable do exorcism (it will extract a PKRM and then do exorcism)
opt_esop_2 = exorcism(tt_opt_esop)
for cube in opt_esop_2:
print(cube.to_string(3)) |
Hi @boschmitt thanks. Yes, I am aware of this. I am just scratching my head around how to parse structures (ie. circuits) to generate these vectors of cubes. It looks like there is no other way than an AST of some sort. |
No description provided.
The text was updated successfully, but these errors were encountered: