georgios-ts
georgios-ts
Well, this sounds indeed like a problem in CPython but from my perspective pyo3 should not try to fight that (and it didn't a few releases back). It's best to...
For a general unitary, not in SU(2), (i.e X gate) Theorem 4[1] seems to be applicable that gives a CNOT count that scales quadratic. According to the upper bound they...
Users have only indirect control over node indices since we assign them internally. In [`union`](https://github.com/Qiskit/retworkx/blob/main/src/union.rs#L129) we distinguish two nodes/edges based on their data payloads and it's probably better to do...
@mtreinish Yeah, it was a bit of extra work and i was forced to readjust the core logic of the function, but eventually it worked out. Since `retworkx-core` PR is...
@mtreinish I'm not sure what's the performance difference of safe/unsafe code here, we can do some becnhmarks if you wish. Personally I'm fine using unsafe blocks here and avoid unnecessary...
Performance. You avoid cloning the graph and it's faster (at least theoretically) to merge two super nodes using a DSU. But I haven't tested this (or I might have but...
I based b81ffa0 on NetworkX implementation [[1]](https://networkx.org/documentation/stable/_modules/networkx/algorithms/connectivity/stoerwagner.html#stoer_wagner) which doesn't use a DSU. From the limited benchmarks I did performance looks similar in most cases (especially if there're many nodes with...
Thanks for going deep into this. Good point! Parallel edges increase the number of updates in the priority queue and hence the slowdown. I applied your suggestion in 98c5f84.
Sorry for coming late into this, especially since you have done a lot of work in #401. We can leverage the procedural attribute macros of Rust [[1]](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros) together with the...
Coming back with a more detailed approach (works for functions but *not* for classes) that is slightly different from what I had in mind in the previous comment: 1. Define...