Cargo Features

[dependencies]
lossless-transform-utils = { version = "0.1.0", default-features = false, features = ["std", "pgo", "c-exports", "nightly", "bench", "estimator-avx2", "estimator-avx512"] }
default = std

The std feature is set by default whenever lossless-transform-utils is added without default-features = false somewhere in the dependency tree.

std default

Enables x86 CPU feature detection.

pgo

See README.md for more information on using Profile-Guided Optimization.
This enables some extra benches (conditionally) to gather profiling data.
Right now it's a no-op.

c-exports

Feature for enabling C library exports.

Affects lossless-transform-utils::exports

nightly estimator-avx512?

Use nightly features. Which for now is 1 x86 naked routine.

bench

Enable benchmarks for non-public API items.

Affects histogram::bench

estimator-avx2

Use AVX2 Implementation of match estimator
This shouldn't be used. It's just an experimental implementation that (unfortunately)
did not hit performance targets due to a lack of scatter instruction.

estimator-avx512 = nightly

Use AVX512 Implementation of match estimator [requires nightly]
Only tested in CI, not sure about performance, I (Sewer) don't own a AVX512 capable machine.
In theory it should be faster than scalar; so preferable.