diff --git a/Cargo.lock b/Cargo.lock index bd61331..e694bfc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "dfp-number-sys" -version = "0.1.0" +version = "0.0.20" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index 26486d0..7ab2b7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dfp-number-sys" -version = "0.1.0" +version = "0.0.20" authors = ["Dariusz Depta "] description = "Rust bindings for IntelĀ® Decimal Floating-Point Math Library" documentation = "https://docs.rs/dfp-number-sys" diff --git a/src/bid128_000.rs b/src/bid128_000.rs index e1ad571..f321bf7 100644 --- a/src/bid128_000.rs +++ b/src/bid128_000.rs @@ -152,7 +152,7 @@ pub const BID128_MINUS_BILLION: BID128 = BID128 { //====================================================================================================================== extern "C" { - fn __bid128_abs(x: BID128) -> BID128; + fn __bid128_abs(x: BID128, flags: *mut c_uint) -> BID128; fn __bid128_acos(x: BID128, round: c_uint, flags: *mut c_uint) -> BID128; fn __bid128_add(x: BID128, y: BID128, round: c_uint, flags: *mut c_uint) -> BID128; fn __bid128_copy(x: BID128) -> BID128; @@ -212,13 +212,16 @@ extern "C" { /// /// ``` /// use dfp_number_sys::bid128_000::*; +/// use dfp_number_sys::FB_CLEAR; /// /// let x = bid128_from_int32(-2); -/// let y = bid128_abs(x); +/// let mut flags = FB_CLEAR; +/// let y = bid128_abs(x, &mut flags); /// assert_eq!("+2E+0", bid128_quiet_to_string(y)); +/// assert_eq!(flags, FB_CLEAR); /// ``` -pub fn bid128_abs(x: BID128) -> BID128 { - unsafe { __bid128_abs(x) } +pub fn bid128_abs(x: BID128, flags: &mut u32) -> BID128 { + unsafe { __bid128_abs(x, flags) } } pub fn bid128_acos(x: BID128, round: u32, flags: &mut u32) -> BID128 { diff --git a/tests/bid128_000/bid128_abs.rs b/tests/bid128_000/bid128_abs.rs index c1a4323..64838b1 100644 --- a/tests/bid128_000/bid128_abs.rs +++ b/tests/bid128_000/bid128_abs.rs @@ -3,10 +3,14 @@ use dfp_number_sys::bid128_000::*; #[test] fn _0001() { - eq("+2E+0", bid128_abs(bid128_from_int32(2))); + let mut flags = FB_CLEAR; + eq("+2E+0", bid128_abs(d128("2"), &mut flags)); + assert_eq!(flags, FB_CLEAR); } #[test] fn _0002() { - eq("+2E+0", bid128_abs(bid128_from_int32(-2))); + let mut flags = FB_CLEAR; + eq("+2E+0", bid128_abs(d128("-2"), &mut flags)); + assert_eq!(flags, FB_CLEAR); }