Expand description
Canonical Signed Digit (CSD) conversion library.
This library provides functions to convert between decimal numbers and Canonical Signed Digit (CSD) representation.
§Features
multiplier(default): CSD multiplier module for Verilog code generationlcsre(default): Longest common substring with repeated elementsstd(optional): Logging support via env_logger
§Quick Start
use csd::{to_csd, to_decimal};
// Convert decimal to CSD
let csd = to_csd(28.5, 2);
assert_eq!(csd, "+00-00.+0");
// Convert CSD back to decimal
let value = to_decimal("+00-00.+0");
assert!((value - 28.5).abs() < 1e-10);Re-exports§
pub use crate::csd::highest_power_of_two_in;pub use crate::csd::to_csd;pub use crate::csd::to_csd_i;pub use crate::csd::to_csdnnz;pub use crate::csd::to_csdnnz_i128;pub use crate::csd::to_csdnnz_i64;pub use crate::csd::to_csdnnz_safe;pub use crate::csd::to_decimal;pub use crate::csd::to_decimal_fractional;pub use crate::csd::to_decimal_fractional_safe;pub use crate::csd::to_decimal_i;pub use crate::csd::to_decimal_i128_result;pub use crate::csd::to_decimal_i64_result;pub use crate::csd::to_decimal_i_result;pub use crate::csd::to_decimal_integral_safe;pub use crate::csd::to_decimal_result;pub use crate::csd::to_decimal_safe;pub use crate::csd::validate_csd_format;pub use crate::csd::CsdBuilder;pub use crate::csd::CsdError;pub use crate::csd::CsdResult;pub use crate::csd::RoundingStrategy;pub use crate::csd_multiplier::generate_csd_multiplier;pub use crate::csd_multiplier::generate_csd_multipliers;pub use crate::csd_multiplier::CsdMultiplier;pub use crate::csd_multiplier::CsdMultiplierError;pub use crate::csd_multiplier::MultiplierSpec;pub use crate::lcsre::longest_repeated_substring;
Modules§
- csd
- CSD Conversion Module
- csd_
multiplier - CSD Multiplier Module
- lcsre