Week 12 (17th August to 23rd August)
With the GSoC timeline heading toward its final stretch, I’ve been prioritizing profiling the most frequently used functions in toqito, addressing subtle inconsistencies in docstrings and parameter handling, and setting up infrastructure to make performance tracking easier in the future.
Alongside this, I had discussions with my mentors (Vincent Russo and Purva Thakre) about how to handle ambitious goals like regression workflows, expanded benchmarks, and documentation plots. Some of these might spill past the official GSoC coding period, but they could form a concrete roadmap either for me to continue or for future contributors to pick up.
Progress:
- PR # 1307 Depolarizing channel optimization
- Rewrote the construction of the Choi matrix to avoid unnecessary calls to
max_entangled. Vincent suggested a vectorized approach, which further simplified the logic and improved performance.
- Rewrote the construction of the Choi matrix to avoid unnecessary calls to
- PR # 1309
permute_systemsimprovements- Fixed inconsistencies between default arguments and docstrings (inv_perm), improved dimension handling, and added tests. Some builds are still failing in CI, so this remains work-in-progress.
-
PR # 1310
swapandswap_operatorcleanup- Overhauled input validation and type hints for the dim and sys parameters. Added new tests and improved performance by simplifying branching logic.
- PR # 1311 Improving partial trace
- One of the heavier functions in toqito. Cleaned up dim handling, replaced redundant constructions with scalar equivalents, improved diagonal indexing, and modernized set operations with
numpy. - Also fixed awkward defaults (
dim= None → [1, 2]) and opened discussion on making this behavior more natural. - Added tests and updated related modules (
is_trace_preserving,is_quantum_channel).
- One of the heavier functions in toqito. Cleaned up dim handling, replaced redundant constructions with scalar equivalents, improved diagonal indexing, and modernized set operations with
-
Index and baselines for benchmarks
-
Added an index of benchmarked functions (24 in
toqito, 56 across libraries). -
Added baseline benchmark results, which will serve as the reference point for future regression checks.
-
Fixed old import issues (PR #24) ) and updated
toqito-benchto a newer branchpost_cycle
-
Issues Discovered:
-
toqito.matrix_ops.tensor: well-designed with logarithmic scaling (O(log q)), but small logic bugs and error-handling gaps exist. (Planning to open an MR instead of an issue.) -
permute_systems: optimization looks tricky as of now, need more help -
partial_trace: default dimension handling is unintuitive and may confuse users. -
Regression workflow is up and working as in PR # 1312 but redesign of regression is algorithm is needed as it tends to mark false positives.