Compatibility and limitations
Check installed versions, build information, compatibility, and feature limitations.
On this page
Checking version information
Check the package version in the Python environment where ArcTN is installed:
python -c 'import arctn; print(arctn.__version__)'
When using Rust source, build from the repository root and inspect the command-line build information:
cargo run --release --bin tnpath -- --build-info
Build information includes the source version and whether optional features such as mt and mpi are enabled. It describes the executable built from the current source, which may differ from the package installed in your Python environment.
Feature limitations
slicing_modesupportsfixedanddynamic.- The native ArcTN backend uses the CPU. GPU computation uses an explicitly selected external array backend.
- Light / Heavy use heuristic search and do not guarantee global optimality. Rust
optimal_dpprovides subset dynamic programming; the number of tensor subsets grows rapidly, so it suits smaller networks. See Dynamic programming. It is a standalone algorithm, outside the Python Light / Heavy interface. max_timetakes effect at algorithm checkpoints and does not forcibly interrupt the process. Strict total-time limits require an external timeout or job scheduler.- Building with
--features mpienablestnmpi, which distributes the slices in a saved plan among processes and combines their results.--dtypesupportsf32,f64,complex64, andcomplex128, defaulting tof64; see MPI sliced execution. - ArcTN does not approximate contractions through low-rank truncation or provide an automatic differentiation system or global error bounds for approximate results. Differentiability with external array backends depends on the backend and the operations actually used.
Source and changes
- GitHub repository — publicly shareable source, tests, and issue tracking. It excludes the Light / Heavy implementation and currently requires organization authorization.
- Installation — building the Rust crate and Python wheel.
- Validating inputs and handling errors — checks for networks, arrays, and path files, plus common exceptions.