Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/WuBingzheng/primitive_fixed_point_decimal
/ functions
Functions
175 in github.com/WuBingzheng/primitive_fixed_point_decimal
⨍
Functions
175
◇
Types & classes
18
↓ 54 callers
Function
do_test_format
(s: &str, scale: i32, n: I)
src/fpdec_inner.rs:503
↓ 39 callers
Function
do_test_format_num_only
(n: I)
src/fpdec_inner.rs:519
↓ 26 callers
Method
calc_mul_div
(self, b: Self, c: Self, rounding: Rounding)
src/inner_i128.rs:73
↓ 17 callers
Function
check_calc_mul_div_signs
(a: i128, b: i128, c: i128)
src/inner_i128.rs:592
↓ 15 callers
Function
check_calc_mul_div_unsigned
(a: u128, b: u128, c: u128)
src/inner_i128.rs:667
↓ 13 callers
Method
checked_mul
( self, rhs: OobScaleFpdec<J>, diff_scale: i32, // scale (self + rhs - result) )
src/oob_scale_fpdec.rs:46
↓ 13 callers
Function
do_check_fmt
(f: f64)
src/const_scale_fpdec.rs:976
↓ 12 callers
Method
calc_mul_div_exp
(self, b: Self, i: usize, rounding: Rounding)
src/inner_shorts.rs:126
↓ 12 callers
Method
calc_mul_div_exp
(self, b: Self, i: usize, rounding: Rounding)
src/inner_i128.rs:113
↓ 12 callers
Method
unsigned_abs
(self)
src/inner_i128.rs:14
↓ 11 callers
Function
mul2
calculate: a * b = (mhigh,mlow)
src/inner_i128.rs:291
↓ 7 callers
Method
checked_div
( self, rhs: OobScaleFpdec<J>, diff_scale: i32, // scale (self - rhs - result) )
src/oob_scale_fpdec.rs:158
↓ 7 callers
Function
dump_single
dump a single integer number This is much faster than using integers' Display.
src/fpdec_inner.rs:445
↓ 6 callers
Method
rounding_div
Calculate rounding division. Examples: ``` use primitive_fixed_point_decimal::{FpdecInner, Rounding}; assert_eq!(8.rounding_div(3, Rounding::Floor),
src/fpdec_inner.rs:137
↓ 5 callers
Function
dump_decimal
dump: "int . frac"
src/fpdec_inner.rs:429
↓ 4 callers
Function
check_calc_mul_div
(a: i128, b: i128, c: i128)
src/inner_i128.rs:567
↓ 4 callers
Function
do_test_rounding_div_big
(a: i32, b: i32)
src/fpdec_inner.rs:760
↓ 4 callers
Function
do_test_rounding_div_big4
(a: i32, b: i32)
src/fpdec_inner.rs:768
↓ 4 callers
Function
do_test_rounding_div_small
(a: i32, b: i32)
src/fpdec_inner.rs:733
↓ 4 callers
Function
do_test_rounding_div_small4
(a: i32, b: i32)
src/fpdec_inner.rs:741
↓ 4 callers
Function
pad_zeros
(n: usize, buf: &mut [MaybeUninit<u8>])
src/fpdec_inner.rs:479
↓ 4 callers
Method
rounding_div
(self, b: Self, rounding: Rounding)
src/inner_i128.rs:153
↓ 4 callers
Function
rust_add
(a: RustDec, b: RustDec)
benches/vs_rust_decimal.rs:131
↓ 3 callers
Method
as_str
(&self)
src/const_scale_fpdec.rs:958
↓ 3 callers
Method
as_wider
(self)
src/inner_i128.rs:20
↓ 3 callers
Function
assert_big_128
(n: i128, ti: u32)
fuzz/fuzz_targets/self_proof.rs:144
↓ 3 callers
Function
assert_big_64
(n: i64, ti: u32)
fuzz/fuzz_targets/self_proof.rs:147
↓ 3 callers
Method
display_fmt
(self, scale: i32, f: &mut fmt::Formatter)
src/fpdec_inner.rs:285
↓ 3 callers
Function
div_exp_fast_2word
calculate fast: n / exp, with i = log10(exp) n is 2-word, 128-bit, double of divisor(exp). Use the algorithm in Moller and Granlund's paper: Improve
src/inner_shorts.rs:260
↓ 3 callers
Function
div_exp_fast_2word
calculate fast: (n1 * n2 + extra) / exp, with i = log10(exp) divident is 2-word, 256-bit, double of divisor(exp). Use the algorithm in Moller and Gr
src/inner_i128.rs:399
↓ 3 callers
Method
do_rounding_div
(self, b: Self, rounding: Rounding)
src/fpdec_inner.rs:141
↓ 3 callers
Function
do_test_calc_mul_div
(a: u64, b: u64, exp: u64, iexp: usize)
src/inner_shorts.rs:371
↓ 3 callers
Function
do_test_calc_mul_div
(a: u128, b: u128, exp: u128, iexp: usize)
src/inner_i128.rs:747
↓ 3 callers
Function
do_test_calc_mul_div_signed
(a: i64, b: i64, exp: i64, iexp: usize)
src/inner_shorts.rs:383
↓ 3 callers
Function
do_test_calc_mul_div_signed
(a: i128, b: i128, exp: i128, iexp: usize)
src/inner_i128.rs:759
↓ 3 callers
Function
do_test_rounding_div_no_rem
(a: i32, b: i32)
src/fpdec_inner.rs:714
↓ 2 callers
Function
bench_dump
(c: &mut Criterion, name: &str, input: &str)
benches/vs_rust_decimal.rs:404
↓ 2 callers
Function
bench_load
(c: &mut Criterion, name: &str, input: &str)
benches/vs_rust_decimal.rs:390
↓ 2 callers
Method
calc_mul_div
Calculate `self * b / c`. Since i128 and u128 do not have wider types, then have their own implementations.
src/fpdec_inner.rs:49
↓ 2 callers
Method
checked_div_ext
( self, rhs: OobScaleFpdec<J>, diff_scale: i32, // scale (self - rhs - result)
src/oob_scale_fpdec.rs:194
↓ 2 callers
Method
checked_mul_ext
( self, rhs: OobScaleFpdec<J>, diff_scale: i32, // scale (self + rhs - result)
src/oob_scale_fpdec.rs:87
↓ 2 callers
Function
div_exp_fast_1word
calculate fast: n / 10.pow(i) n is 1-word, 64-bit, same with divisor(exp). Use the algorithm in Granlund & Montgomery's paper: https://gmplib.org/%7
src/inner_shorts.rs:332
↓ 2 callers
Function
div_exp_fast_1word
calculate fast: n / 10.pow(i) n is 1-word, 128-bit, same with divisor(exp). Use the algorithm in Granlund & Montgomery's paper: https://gmplib.org/%
src/inner_i128.rs:502
↓ 2 callers
Function
prim128_mul_rescale
(a: PrimDec128, b: PrimDec128)
benches/vs_rust_decimal.rs:75
↓ 2 callers
Function
prim64_mul_rescale
(a: PrimDec64, b: PrimDec64)
benches/vs_rust_decimal.rs:16
↓ 2 callers
Function
reduce2
reduce: (mhigh, mlow) into (last_dividend, q) where last_dividend fits in 128-bit. calculate: (mhigh,mlow) / divisor = q .. last_dividend where last_
src/inner_i128.rs:306
↓ 2 callers
Method
round_diff_with_rounding
diff_scale = scale (src - dst)
src/fpdec_inner.rs:106
↓ 2 callers
Function
rust_div
(a: RustDec, b: RustDec)
benches/vs_rust_decimal.rs:137
↓ 2 callers
Function
rust_mul
(a: RustDec, b: RustDec)
benches/vs_rust_decimal.rs:134
↓ 1 callers
Function
bench_add
(c: &mut Criterion)
benches/vs_rust_decimal.rs:210
↓ 1 callers
Function
bench_app
(c: &mut Criterion)
benches/vs_rust_decimal.rs:429
↓ 1 callers
Function
bench_div_pure
(c: &mut Criterion)
benches/vs_rust_decimal.rs:332
↓ 1 callers
Function
bench_div_rescale
(c: &mut Criterion)
benches/vs_rust_decimal.rs:361
↓ 1 callers
Function
bench_mul_pure
(c: &mut Criterion)
benches/vs_rust_decimal.rs:250
↓ 1 callers
Function
bench_mul_rescale
(c: &mut Criterion)
benches/vs_rust_decimal.rs:278
↓ 1 callers
Function
bench_mul_rescale_big
(c: &mut Criterion)
benches/vs_rust_decimal.rs:299
↓ 1 callers
Method
calc_mul_div_exp
Calculate `self * b / EXP[i]`. i64, u64, i128, u128 have their own implemetations to avoid the expensive 128-bit division.
src/fpdec_inner.rs:58
↓ 1 callers
Method
checked_div
( self, rhs: ConstScaleFpdec<J, S2>, )
src/const_scale_fpdec.rs:105
↓ 1 callers
Method
checked_div_const_scale
( self, rhs: ConstScaleFpdec<J, S>, )
src/oob_scale_fpdec.rs:215
↓ 1 callers
Method
checked_div_const_scale_ext
( self, rhs: ConstScaleFpdec<J, S>, rounding: Rounding, )
src/oob_scale_fpdec.rs:247
↓ 1 callers
Method
checked_div_ext
( self, rhs: ConstScaleFpdec<J, S2>, rounding: Rounding, )
src/const_scale_fpdec.rs:139
↓ 1 callers
Method
checked_mul
( self, rhs: ConstScaleFpdec<J, S2>, )
src/const_scale_fpdec.rs:44
↓ 1 callers
Method
checked_mul_const_scale
( self, rhs: ConstScaleFpdec<J, S>, )
src/oob_scale_fpdec.rs:107
↓ 1 callers
Method
checked_mul_const_scale_ext
( self, rhs: ConstScaleFpdec<J, S>, rounding: Rounding, )
src/oob_scale_fpdec.rs:141
↓ 1 callers
Method
checked_mul_ext
( self, rhs: ConstScaleFpdec<J, S2>, rounding: Rounding, )
src/const_scale_fpdec.rs:84
↓ 1 callers
Function
display_num
We assume the number is non-negative here. The caller should handle the sign.
src/fpdec_inner.rs:322
↓ 1 callers
Function
prim128_add
(a: PrimDec128, b: PrimDec128)
benches/vs_rust_decimal.rs:72
↓ 1 callers
Function
prim128_app
(ctx: &Prim128AppContext, amount: PrimDec128, price: PrimPrice)
benches/vs_rust_decimal.rs:107
↓ 1 callers
Function
prim128_div_pure
(a: PrimDec128, b: PrimDec128)
benches/vs_rust_decimal.rs:84
↓ 1 callers
Function
prim128_div_rescale
(a: PrimDec128, b: PrimDec128)
benches/vs_rust_decimal.rs:81
↓ 1 callers
Function
prim128_dump
(a: PrimDec128, buf: &mut String)
benches/vs_rust_decimal.rs:90
↓ 1 callers
Function
prim128_load
(s: &str)
benches/vs_rust_decimal.rs:87
↓ 1 callers
Function
prim128_mul_pure
(a: PrimDec128, b: PrimDec128)
benches/vs_rust_decimal.rs:78
↓ 1 callers
Function
prim64_add
(a: PrimDec64, b: PrimDec64)
benches/vs_rust_decimal.rs:13
↓ 1 callers
Function
prim64_app
(ctx: &Prim64AppContext, amount: PrimDec64, price: PrimPrice)
benches/vs_rust_decimal.rs:48
↓ 1 callers
Function
prim64_div_pure
(a: PrimDec64, b: PrimDec64)
benches/vs_rust_decimal.rs:25
↓ 1 callers
Function
prim64_div_rescale
(a: PrimDec64, b: PrimDec64)
benches/vs_rust_decimal.rs:22
↓ 1 callers
Function
prim64_dump
(a: PrimDec64, buf: &mut String)
benches/vs_rust_decimal.rs:31
↓ 1 callers
Function
prim64_load
(s: &str)
benches/vs_rust_decimal.rs:28
↓ 1 callers
Function
prim64_mul_pure
(a: PrimDec64, b: PrimDec64)
benches/vs_rust_decimal.rs:19
↓ 1 callers
Function
reduce2_big
(mhigh: u128, mlow: u128, divisor: u128)
src/inner_i128.rs:343
↓ 1 callers
Method
rescale
Convert to OobScaleFpdec with scale specified. Return error if overflow occurred (to bigger scale) or precision lost (to smaller scale). Examples:
src/oob_scale_fpdec.rs:789
↓ 1 callers
Method
round_diff_ext
(self, diff_scale: i32, rounding: Rounding)
src/oob_scale_fpdec.rs:288
↓ 1 callers
Method
round_ext
(self, scale: i32, rounding: Rounding)
src/const_scale_fpdec.rs:177
↓ 1 callers
Function
rust_app
(ctx: &RustAppContext, amount: RustDec, price: RustDec)
benches/vs_rust_decimal.rs:160
↓ 1 callers
Function
rust_dump
(a: RustDec, buf: &mut String)
benches/vs_rust_decimal.rs:143
↓ 1 callers
Function
rust_load
(s: &str)
benches/vs_rust_decimal.rs:140
↓ 1 callers
Method
sum
(iter: Iter)
src/const_scale_fpdec.rs:601
↓ 1 callers
Method
sum
(iter: Iter)
src/oob_scale_fpdec.rs:652
Function
Fmt32
(d: Dec32, s: i32)
src/oob_scale_fpdec.rs:886
Function
_bench_int
(c: &mut Criterion)
benches/vs_rust_decimal.rs:182
Method
add
(self, rhs: Self)
src/const_scale_fpdec.rs:422
Method
add
(self, rhs: Self)
src/oob_scale_fpdec.rs:508
Method
add_assign
(&mut self, rhs: Self)
src/const_scale_fpdec.rs:541
Method
add_assign
(&mut self, rhs: Self)
src/oob_scale_fpdec.rs:594
Method
checked_div_ext
works only when: diff_scale in range [-Self::DIGITS, Self::DIGITS] diff_scale = scale (self + rhs - result)
src/fpdec_inner.rs:85
Method
checked_from_int
(self, scale: i32)
src/fpdec_inner.rs:305
Method
checked_mul_ext
works only when: diff_scale in range [-Self::DIGITS, Self::DIGITS] diff_scale = scale (self + rhs - result)
src/fpdec_inner.rs:64
Function
criterion_benchmark
entry
benches/vs_rust_decimal.rs:488
Method
deserialize
(deserializer: D)
src/const_scale_fpdec.rs:650
next →
1–100 of 175, ranked by callers