Cargo Features

fusion-blossom has no features set by default.

[dependencies]
fusion-blossom = { version = "0.2.12", features = ["blossom_v", "remove_blossom_v", "i32_weight", "u32_index", "ordered_conflicts", "disable_visualizer", "unsafe_pointer", "dangerous_pointer", "python_binding", "qecp_integrate"] }
default

to enable a feature, use --features xxx

blossom_v

automatically enabled when file blossomV/PerfectMatching.h exists

remove_blossom_v

disable blossom V library even if required files exist

i32_weight

use i32 instead of i64 as weight type, to be the same as blossom V library

u32_index

use u32 instead of usize as index type, to save memory by at most half

ordered_conflicts

sort conflict events, by default do not sort for better performance

disable_visualizer

disable all visualizer behavior

unsafe_pointer dangerous_pointer?

use raw pointers to access data without lock when appropriate; fusion blossom requires very little synchronization

dangerous_pointer = unsafe_pointer

use raw pointers instead of Arc and Weak, require "unsafe_pointer" feature

python_binding = pyo3

bind to Python

Affects util::PyMut, util::json_to_pyobject_locked, util::json_to_pyobject, util::pyobject_to_json_locked, util::pyobject_to_json

qecp_integrate = qecp

Affects example_codes::QECPlaygroundCode, example_codes::QECPlaygroundCodeConfig, example_codes::qec_playground_default_configs

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

pyo3 python_binding?

Enables pyo3 ^0.18.3

qecp qecp_integrate?