Skip to main content

CSSFinder

GitHub release GitHub Release Date - Published_At PyPI release PyPI Downloads Supported Python versions Supported Python implementations license_mit Pull requests Open issues GitHub repo size GitHub code size in bytes GitHub Repo stars Poetry Code Style

CSSFinder - Closest Separable State Finder

CSSFinder is a software designed to find the closest separable state (CSS) for a given quantum state. This helps in quantifying entanglement and classifying quantum states as entangled or separable.

This software has been designed in a modular way. This is manifested by the separation of the main part, which contains the user interface and modularity support elements, from the algorithm implementation. The main part was written in Python and uses the mechanisms of Python modules. Since it is possible to craft shared libraries in such a way that Python imports them as native modules any compiled language can be used to create highly optimized implementations of desired algorithms. Such implementations are called backends and they use minimalistic interface to interact with main part of the program.

In parallel with the development of this main part, two implementations of the algorithm were created:

  • cssfinder_backend_numpy - based on Python NumPy library implementing highly optimized multidimensional arrays and linear algebra.
  • cssfinder_backend_rust - based on Rust ndarray crate which is an equivalent of NumPy from Rust language world.

Development of those two implementations allowed us to better understand limits of what can and what can not become faster.

Documentation

CSSFinder online documentation can be found here.

Installation

To install CSSFinder from PyPI, use pip in terminal:

pip install cssfinder

You will have to also install a backend package, which contains concrete implementation of algorithms. Simples way is to just install numpy or rust extras set:

pip install cssfinder[numpy]
pip install cssfinder[rust]

For more detailed description of installation process visit CSSFinder online documentation.

Quick start guide

For quick start guide please visit Quick Start Guide in CSSFinder online documentation.

Command line interface

To display command line interface map use following command:

cssfinder show-command-tree

Output should look similar to this:

 ...cssfinder show-command-tree
main                           - CSSFinder is a script for finding closest separable states.
├── clone-example              - Clone one of examples to specific location.
├── create-new-json-project    - Create new JSON based project directory `<name>` in current working directory.
├── create-new-python-project  - Create new Python based project directory `<name>` in current working
├── list-backends              - List available backends.
├── list-examples              - Show list of all available example projects.
├── project                    - Group of commands for interaction with projects.
│   ├── add-gilbert-task       - Add new gilbert algorithm task.
│   ├── create-json-summary    - Load and display project.
│   ├── create-task-report     - Create short report for task.
│   ├── inspect                - Load project from PROJECT_PATH and display its contents.
│   ├── inspect-output         - Load project from PROJECT_PATH and display output of task specified by
│   ├── inspect-tasks          - Load project from PROJECT_PATH and inspect configuration of tasks specified by
│   ├── list-tasks             - Load project from PROJECT_PATH and list names of all tasks defined.
│   ├── run-tasks              - Run tasks from the project.
│   └── to-python              - Load project from JSON_PROJECT_PATH and convert it to Python based project.
└── show-command-tree          - Show the command tree of your CLI.

Development

For development guidelines please visit Development in CSSFinder online documentation.

Metadata

Release files for cssfinder 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cssfinder 0.8.0
File Size Uploaded
cssfinder-0.8.0.tar.gz 86.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cssfinder 0.8.0
File Interpreter ABI Platform
cssfinder-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 212.0 kB

Release files / cssfinder-0.8.0.tar.gz

Download URL cssfinder-0.8.0.tar.gz
Size 86.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f1aed92e4bb5779e0808ecdb356342dfab7b11276436a50b5a7c96adf0ef0756
BLAKE2b-256 checksum
How to use checksums
9998ba361e1a51766231fdaa275e92304c464e5094a31fc2362462484fc78f34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / cssfinder-0.8.0-py3-none-any.whl

Download URL cssfinder-0.8.0-py3-none-any.whl
Size 125.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8d734da173f790c43732a2e9ffd45c577c10deb6c336299d24103e5567da5ba
BLAKE2b-256 checksum
How to use checksums
fbefbe5b60dc84b207fdb14da2e3f2baa8138961079c57a3867593308bd60255
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page