-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bugfix release version cannot run KaHyPar #100
Conversation
… is left for advanced users
@@ -531,15 +530,15 @@ def test_circ_approx_explicit_ttn(circuit: Circuit) -> None: | |||
# Check for TTNxGate | |||
cfg = Config(truncation_fidelity=0.99, leaf_size=3, float_precision=np.float32) | |||
ttn_gate = simulate(libhandle, circuit, SimulationAlgorithm.TTNxGate, cfg) | |||
assert np.isclose(ttn_gate.get_fidelity(), 0.769, atol=1e-3) | |||
assert np.isclose(ttn_gate.get_fidelity(), 0.751, atol=1e-3) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since NetworkX provides a worse partition than KaHyPar, the fidelity in the simulation drops by a bit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure that you want to update the expected value and not the tolerance?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I've been using these tests for a very rudimentary regression/improvement tracking, which is why they have a very particular value for the fidelity. It has happened before that changes that I did not expect that would change the fidelity did. If I made the tolerance margin larger, it's likely some of these wouldn't be caught.
setup.py
Outdated
@@ -42,7 +42,7 @@ | |||
license="Apache 2", | |||
packages=find_namespace_packages(include=["pytket.*"]), | |||
include_package_data=True, | |||
install_requires=["pytket ~= 1.26"], | |||
install_requires=["pytket ~= 1.26", "networkx >= 2.8"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
install_requires=["pytket ~= 1.26", "networkx >= 2.8"], | |
install_requires=["pytket ~= 1.26", "networkx ~= 3.0"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would be careful with allowing 4.0 here, do you need 2.x here, or should we just ask for 3.x to be installed? (see suggestion)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. I believe 3.x should work, but I'll quickly check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, it works 👍
@@ -531,15 +530,15 @@ def test_circ_approx_explicit_ttn(circuit: Circuit) -> None: | |||
# Check for TTNxGate | |||
cfg = Config(truncation_fidelity=0.99, leaf_size=3, float_precision=np.float32) | |||
ttn_gate = simulate(libhandle, circuit, SimulationAlgorithm.TTNxGate, cfg) | |||
assert np.isclose(ttn_gate.get_fidelity(), 0.769, atol=1e-3) | |||
assert np.isclose(ttn_gate.get_fidelity(), 0.751, atol=1e-3) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure that you want to update the expected value and not the tolerance?
assert ttn_gate.is_valid() | ||
assert np.isclose(ttn_gate.vdot(ttn_gate), 1.0, atol=cfg._atol) | ||
|
||
# Fixed virtual bond dimension | ||
# Check for TTNxGate | ||
cfg = Config(chi=120, leaf_size=3, float_precision=np.float32) | ||
ttn_gate = simulate(libhandle, circuit, SimulationAlgorithm.TTNxGate, cfg) | ||
assert np.isclose(ttn_gate.get_fidelity(), 0.857, atol=1e-3) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I'd rather change the fidelity. The value of the fidelity is consistent between different runs using the same code.
Co-authored-by: cqc-melf <[email protected]>
Description
Now NetworkX is used as the default option for partition, and KaHyPar is left for advanced users. In particular, only those who install from repository will be able to use KaHyPar (if they choose to do so with the appropriate
Config
option). This is something I will continue to play with, this is meant just as a hotfix.Related issues
Fixes #97
Checklist