#floating-point #decimal #arithmetic #floating #api-bindings #point

sys dfp-number-sys

Rust bindings for Intel® Decimal Floating-Point Math Library

35 releases

new 0.2.13 Feb 13, 2025
0.2.3 Jan 28, 2025
0.1.0 Mar 22, 2024
0.0.19 Dec 29, 2023
0.0.11 Nov 25, 2022

#2239 in Algorithms

Download history 46/week @ 2024-10-28 83/week @ 2024-11-04 142/week @ 2024-11-11 47/week @ 2024-11-18 46/week @ 2024-11-25 90/week @ 2024-12-02 130/week @ 2024-12-09 65/week @ 2024-12-16 12/week @ 2024-12-23 47/week @ 2024-12-30 55/week @ 2025-01-06 58/week @ 2025-01-13 38/week @ 2025-01-20 546/week @ 2025-01-27 222/week @ 2025-02-03 1125/week @ 2025-02-10

1,934 downloads per month
Used in 26 crates (3 directly)

MIT/Apache

14MB
270K SLoC

C 267K SLoC // 0.1% comments Rust 3K SLoC

Rust bindings for Intel® Decimal Floating-Point Math Library v2.3

Crates.io Code coverage build Linux build Windows build MacOs build MacOs arm64 MIT licensed Apache 2.0 licensed EULA licensed Contributor Covenant

Decimal 128-bit

128-bit bindings
bid128_abs
bid128_acos
bid128_acosh
bid128_add
bid128_add_dd
bid128_add_dq
bid128_add_qd
bid128_asin
bid128_asinh
bid128_atan
bid128_atan2
bid128_atanh
bid128_cbrt
bid128_class
bid128_copy
bid128_copy_sign
bid128_cos
bid128_cosh
bid128_div
bid128_div_dd
bid128_div_dq
bid128_div_qd
bid128_erf
bid128_erfc
bid128_exp
bid128_exp10
bid128_exp2
bid128_expm1
bid128_fdim
bid128_fma
bid128_fma_ddd
bid128_fma_ddq
bid128_fma_dqd
bid128_fma_dqq
bid128_fma_qdd
bid128_fma_qdq
bid128_fma_qqd
bid128_fmod
bid128_frexp
bid128_from_int32
bid128_from_int64
bid128_from_string
bid128_from_uint32
bid128_from_uint64
bid128_hypot
bid128_ilogb
bid128_infinite
bid128_is_canonical
bid128_is_finite
bid128_is_infinite
bid128_is_nan
bid128_is_normal
bid128_is_signaling
bid128_is_signed
bid128_is_subnormal
bid128_is_zero
bid128_ldexp
bid128_lgamma
bid128_llquantexp
bid128_llrint
bid128_llround
bid128_log
bid128_log10
bid128_log1p
bid128_log2
bid128_logb
bid128_lrint
bid128_lround
bid128_max_num
bid128_max_num_mag
bid128_min_num
bid128_min_num_mag
bid128_modf
bid128_mul
bid128_mul_dd
bid128_mul_dq
bid128_mul_qd
bid128_nan
bid128_nearbyint
bid128_negate
bid128_nextafter
bid128_nextdown
bid128_nexttoward
bid128_nextup
bid128_pow
bid128_quantexp
bid128_quantize
bid128_quantum
bid128_quiet_equal
bid128_quiet_greater
bid128_quiet_greater_equal
bid128_quiet_greater_unordered
bid128_quiet_less
bid128_quiet_less_equal
bid128_quiet_less_unordered
bid128_quiet_not_equal
bid128_quiet_not_greater
bid128_quiet_not_less
bid128_quiet_ordered
bid128_quiet_to_string
bid128_quiet_unordered
bid128_radix
bid128_rem
bid128_round_integral_exact
bid128_round_integral_nearest_away
bid128_round_integral_nearest_even
bid128_round_integral_negative
bid128_round_integral_positive
bid128_round_integral_zero
bid128_same_quantum
bid128_scalbln
bid128_scalbn
bid128_signaling_greater
bid128_signaling_greater_equal
bid128_signaling_greater_unordered
bid128_signaling_less
bid128_signaling_less_equal
bid128_signaling_less_unordered
bid128_signaling_not_greater
bid128_signaling_not_less
bid128_sin
bid128_sinh
bid128_sqrt
bid128_sub
bid128_sub_dd
bid128_sub_dq
bid128_sub_qd
bid128_tan
bid128_tanh
bid128_tgamma
bid128_to_bid32
bid128_to_bid64
bid128_to_binary32
bid128_to_binary64
bid128_to_int16_ceil
bid128_to_int16_floor
bid128_to_int16_int
bid128_to_int16_rnint
bid128_to_int16_rninta
bid128_to_int16_xceil
bid128_to_int16_xfloor
bid128_to_int16_xint
bid128_to_int16_xrnint
bid128_to_int16_xrninta
bid128_to_int32_ceil
bid128_to_int32_floor
bid128_to_int32_int
bid128_to_int32_rnint
bid128_to_int32_rninta
bid128_to_int32_xceil
bid128_to_int32_xfloor
bid128_to_int32_xint
bid128_to_int32_xrnint
bid128_to_int32_xrninta
bid128_to_int64_ceil
bid128_to_int64_floor
bid128_to_int64_int
bid128_to_int64_rnint
bid128_to_int64_rninta
bid128_to_int64_xceil
bid128_to_int64_xfloor
bid128_to_int64_xint
bid128_to_int64_xrnint
bid128_to_int64_xrninta
bid128_to_int8_ceil
bid128_to_int8_floor
bid128_to_int8_int
bid128_to_int8_rnint
bid128_to_int8_rninta
bid128_to_int8_xceil
bid128_to_int8_xfloor
bid128_to_int8_xint
bid128_to_int8_xrnint
bid128_to_int8_xrninta
bid128_to_string
bid128_to_uint16_ceil
bid128_to_uint16_floor
bid128_to_uint16_int
bid128_to_uint16_rnint
bid128_to_uint16_rninta
bid128_to_uint16_xceil
bid128_to_uint16_xfloor
bid128_to_uint16_xint
bid128_to_uint16_xrnint
bid128_to_uint16_xrninta
bid128_to_uint32_ceil
bid128_to_uint32_floor
bid128_to_uint32_int
bid128_to_uint32_rnint
bid128_to_uint32_rninta
bid128_to_uint32_xceil
bid128_to_uint32_xfloor
bid128_to_uint32_xint
bid128_to_uint32_xrnint
bid128_to_uint32_xrninta
bid128_to_uint64_ceil
bid128_to_uint64_floor
bid128_to_uint64_int
bid128_to_uint64_rnint
bid128_to_uint64_rninta
bid128_to_uint64_xceil
bid128_to_uint64_xfloor
bid128_to_uint64_xint
bid128_to_uint64_xrnint
bid128_to_uint64_xrninta
bid128_to_uint8_ceil
bid128_to_uint8_floor
bid128_to_uint8_int
bid128_to_uint8_rnint
bid128_to_uint8_rninta
bid128_to_uint8_xceil
bid128_to_uint8_xfloor
bid128_to_uint8_xint
bid128_to_uint8_xrnint
bid128_to_uint8_xrninta
bid128_total_order
bid128_total_order_mag

Decimal 64-bit

64-bit bindings
bid64_abs
bid64_acos
bid64_acosh
bid64_add
bid64_add_dq
bid64_add_qd
bid64_add_qq
bid64_asin
bid64_asinh
bid64_atan
bid64_atan2
bid64_atanh
bid64_cbrt
bid64_class
bid64_copy
bid64_copy_sign
bid64_cos
bid64_cosh
bid64_div
bid64_div_dq
bid64_div_qd
bid64_div_qq
bid64_erf
bid64_erfc
bid64_exp
bid64_exp10
bid64_exp2
bid64_expm1
bid64_fdim
bid64_fma
bid64_fma_ddq
bid64_fma_dqd
bid64_fma_dqq
bid64_fma_qdd
bid64_fma_qdq
bid64_fma_qqd
bid64_fma_qqq
bid64_fmod
bid64_frexp
bid64_from_int32
bid64_from_int64
bid64_from_string
bid64_from_uint32
bid64_from_uint64
bid64_hypot
bid64_ilogb
bid64_infinite
bid64_is_canonical
bid64_is_finite
bid64_is_infinite
bid64_is_nan
bid64_is_normal
bid64_is_signaling
bid64_is_signed
bid64_is_subnormal
bid64_is_zero
bid64_ldexp
bid64_lgamma
bid64_llquantexp
bid64_llrint
bid64_llround
bid64_log
bid64_log10
bid64_log1p
bid64_log2
bid64_logb
bid64_lrint
bid64_lround
bid64_max_num
bid64_max_num_mag
bid64_min_num
bid64_min_num_mag
bid64_modf
bid64_mul
bid64_mul_dq
bid64_mul_qd
bid64_mul_qq
bid64_nan
bid64_nearbyint
bid64_negate
bid64_nextafter
bid64_nextdown
bid64_nexttoward
bid64_nextup
bid64_pow
bid64_quantexp
bid64_quantize
bid64_quantum
bid64_quiet_equal
bid64_quiet_greater
bid64_quiet_greater_equal
bid64_quiet_greater_unordered
bid64_quiet_less
bid64_quiet_less_equal
bid64_quiet_less_unordered
bid64_quiet_not_equal
bid64_quiet_not_greater
bid64_quiet_not_less
bid64_quiet_ordered
bid64_quiet_to_string
bid64_quiet_unordered
bid64_radix
bid64_rem
bid64_round_integral_exact
bid64_round_integral_nearest_away
bid64_round_integral_nearest_even
bid64_round_integral_negative
bid64_round_integral_positive
bid64_round_integral_zero
bid64_same_quantum
bid64_scalbln
bid64_scalbn
bid64_signaling_greater
bid64_signaling_greater_equal
bid64_signaling_greater_unordered
bid64_signaling_less
bid64_signaling_less_equal
bid64_signaling_less_unordered
bid64_signaling_not_greater
bid64_signaling_not_less
bid64_sin
bid64_sinh
bid64_sqrt
bid64_sub
bid64_sub_dq
bid64_sub_qd
bid64_sub_qq
bid64_tan
bid64_tanh
bid64_tgamma
bid64_to_bid128
bid64_to_bid32
bid64_to_binary32
bid64_to_binary64
bid64_to_int16_ceil
bid64_to_int16_floor
bid64_to_int16_int
bid64_to_int16_rnint
bid64_to_int16_rninta
bid64_to_int16_xceil
bid64_to_int16_xfloor
bid64_to_int16_xint
bid64_to_int16_xrnint
bid64_to_int16_xrninta
bid64_to_int32_ceil
bid64_to_int32_floor
bid64_to_int32_int
bid64_to_int32_rnint
bid64_to_int32_rninta
bid64_to_int32_xceil
bid64_to_int32_xfloor
bid64_to_int32_xint
bid64_to_int32_xrnint
bid64_to_int32_xrninta
bid64_to_int64_ceil
bid64_to_int64_floor
bid64_to_int64_int
bid64_to_int64_rnint
bid64_to_int64_rninta
bid64_to_int64_xceil
bid64_to_int64_xfloor
bid64_to_int64_xint
bid64_to_int64_xrnint
bid64_to_int64_xrninta
bid64_to_int8_ceil
bid64_to_int8_floor
bid64_to_int8_int
bid64_to_int8_rnint
bid64_to_int8_rninta
bid64_to_int8_xceil
bid64_to_int8_xfloor
bid64_to_int8_xint
bid64_to_int8_xrnint
bid64_to_int8_xrninta
bid64_to_string
bid64_to_uint16_ceil
bid64_to_uint16_floor
bid64_to_uint16_int
bid64_to_uint16_rnint
bid64_to_uint16_rninta
bid64_to_uint16_xceil
bid64_to_uint16_xfloor
bid64_to_uint16_xint
bid64_to_uint16_xrnint
bid64_to_uint16_xrninta
bid64_to_uint32_ceil
bid64_to_uint32_floor
bid64_to_uint32_int
bid64_to_uint32_rnint
bid64_to_uint32_rninta
bid64_to_uint32_xceil
bid64_to_uint32_xfloor
bid64_to_uint32_xint
bid64_to_uint32_xrnint
bid64_to_uint32_xrninta
bid64_to_uint64_ceil
bid64_to_uint64_floor
bid64_to_uint64_int
bid64_to_uint64_rnint
bid64_to_uint64_rninta
bid64_to_uint64_xceil
bid64_to_uint64_xfloor
bid64_to_uint64_xint
bid64_to_uint64_xrnint
bid64_to_uint64_xrninta
bid64_to_uint8_ceil
bid64_to_uint8_floor
bid64_to_uint8_int
bid64_to_uint8_rnint
bid64_to_uint8_rninta
bid64_to_uint8_xceil
bid64_to_uint8_xfloor
bid64_to_uint8_xint
bid64_to_uint8_xrnint
bid64_to_uint8_xrninta
bid64_total_order
bid64_total_order_mag

Decimal 32-bit

32-bit bindings
bid32_abs
bid32_acos
bid32_acosh
bid32_add
bid32_asin
bid32_asinh
bid32_atan
bid32_atan2
bid32_atanh
bid32_cbrt
bid32_class
bid32_copy
bid32_copy_sign
bid32_cos
bid32_cosh
bid32_div
bid32_erf
bid32_erfc
bid32_exp
bid32_exp10
bid32_exp2
bid32_expm1
bid32_fdim
bid32_fma
bid32_fmod
bid32_frexp
bid32_from_int32
bid32_from_int64
bid32_from_string
bid32_from_uint32
bid32_from_uint64
bid32_hypot
bid32_ilogb
bid32_infinite
bid32_is_canonical
bid32_is_finite
bid32_is_infinite
bid32_is_nan
bid32_is_normal
bid32_is_signaling
bid32_is_signed
bid32_is_subnormal
bid32_is_zero
bid32_ldexp
bid32_lgamma
bid32_llquantexp
bid32_llrint
bid32_llround
bid32_log
bid32_log10
bid32_log1p
bid32_log2
bid32_logb
bid32_lrint
bid32_lround
bid32_max_num
bid32_max_num_mag
bid32_min_num
bid32_min_num_mag
bid32_modf
bid32_mul
bid32_nan
bid32_nearbyint
bid32_negate
bid32_nextafter
bid32_nextdown
bid32_nexttoward
bid32_nextup
bid32_pow
bid32_quantexp
bid32_quantize
bid32_quantum
bid32_quiet_equal
bid32_quiet_greater
bid32_quiet_greater_equal
bid32_quiet_greater_unordered
bid32_quiet_less
bid32_quiet_less_equal
bid32_quiet_less_unordered
bid32_quiet_not_equal
bid32_quiet_not_greater
bid32_quiet_not_less
bid32_quiet_ordered
bid32_quiet_to_string
bid32_quiet_unordered
bid32_radix
bid32_rem
bid32_round_integral_exact
bid32_round_integral_nearest_away
bid32_round_integral_nearest_even
bid32_round_integral_negative
bid32_round_integral_positive
bid32_round_integral_zero
bid32_same_quantum
bid32_scalbln
bid32_scalbn
bid32_signaling_greater
bid32_signaling_greater_equal
bid32_signaling_greater_unordered
bid32_signaling_less
bid32_signaling_less_equal
bid32_signaling_less_unordered
bid32_signaling_not_greater
bid32_signaling_not_less
bid32_sin
bid32_sinh
bid32_sqrt
bid32_sub
bid32_tan
bid32_tanh
bid32_tgamma
bid32_to_bid128
bid32_to_bid64
bid32_to_binary32
bid32_to_binary64
bid32_to_int16_ceil
bid32_to_int16_floor
bid32_to_int16_int
bid32_to_int16_rnint
bid32_to_int16_rninta
bid32_to_int16_xceil
bid32_to_int16_xfloor
bid32_to_int16_xint
bid32_to_int16_xrnint
bid32_to_int16_xrninta
bid32_to_int32_ceil
bid32_to_int32_floor
bid32_to_int32_int
bid32_to_int32_rnint
bid32_to_int32_rninta
bid32_to_int32_xceil
bid32_to_int32_xfloor
bid32_to_int32_xint
bid32_to_int32_xrnint
bid32_to_int32_xrninta
bid32_to_int64_ceil
bid32_to_int64_floor
bid32_to_int64_int
bid32_to_int64_rnint
bid32_to_int64_rninta
bid32_to_int64_xceil
bid32_to_int64_xfloor
bid32_to_int64_xint
bid32_to_int64_xrnint
bid32_to_int64_xrninta
bid32_to_int8_ceil
bid32_to_int8_floor
bid32_to_int8_int
bid32_to_int8_rnint
bid32_to_int8_rninta
bid32_to_int8_xceil
bid32_to_int8_xfloor
bid32_to_int8_xint
bid32_to_int8_xrnint
bid32_to_int8_xrninta
bid32_to_string
bid32_to_uint16_ceil
bid32_to_uint16_floor
bid32_to_uint16_int
bid32_to_uint16_rnint
bid32_to_uint16_rninta
bid32_to_uint16_xceil
bid32_to_uint16_xfloor
bid32_to_uint16_xint
bid32_to_uint16_xrnint
bid32_to_uint16_xrninta
bid32_to_uint32_ceil
bid32_to_uint32_floor
bid32_to_uint32_int
bid32_to_uint32_rnint
bid32_to_uint32_rninta
bid32_to_uint32_xceil
bid32_to_uint32_xfloor
bid32_to_uint32_xint
bid32_to_uint32_xrnint
bid32_to_uint32_xrninta
bid32_to_uint64_ceil
bid32_to_uint64_floor
bid32_to_uint64_int
bid32_to_uint64_rnint
bid32_to_uint64_rninta
bid32_to_uint64_xceil
bid32_to_uint64_xfloor
bid32_to_uint64_xint
bid32_to_uint64_xrnint
bid32_to_uint64_xrninta
bid32_to_uint8_ceil
bid32_to_uint8_floor
bid32_to_uint8_int
bid32_to_uint8_rnint
bid32_to_uint8_rninta
bid32_to_uint8_xceil
bid32_to_uint8_xfloor
bid32_to_uint8_xint
bid32_to_uint8_xrnint
bid32_to_uint8_xrninta
bid32_total_order
bid32_total_order_mag

License

License for Intel® Decimal Floating-Point Math Library v2.3

License for Rust bindings

Licensed under either of

Contribution

Any contributions to dfp-number-sys are greatly appreciated. All contributions intentionally submitted for inclusion in the work by you, shall be dual licensed as above, without any additional terms or conditions.

Dependencies