@@ -8,6 +8,131 @@ and this project adheres to
88
99## [ Unreleased]
1010
11+ ## [ 0.2.12] ( https://github.com/tgross35/rust-libm/compare/libm-v0.2.11...libm-v0.2.12 ) - 2025-02-11
12+
13+ ### Other
14+
15+ - Add ` roundeven{,f,f16,f128} `
16+ - Add ` fminimum ` , ` fmaximum ` , ` fminimum_num ` , and ` fmaximum_num `
17+ - Combine ` fmin{,f,f16,f128} ` and ` fmax{,f,f16,128} ` into a single file
18+ - Small refactor of bigint tests
19+ - Eliminate the use of ` force_eval! ` in ` ceil ` , ` floor ` , and ` trunc `
20+ - Migrate away from nonfunctional ` fenv ` stubs
21+ - Introduce a trait constant for the minimum positive normal value
22+ - Implement ` u256 ` with two ` u128 ` s rather than ` u64 `
23+ - Replace an ` assert! ` with ` debug_assert! ` in ` u256::shr `
24+ - Add simple icount benchmarks for ` u256 ` operations
25+ - Port the CORE-MATH version of ` cbrt `
26+ - Add an enum representation of rounding mode
27+ - Uncomment some hex float tests that should work now
28+ - Convert ` fmaf ` to a generic implementation
29+ - Remove or reduce the scope of ` allow(unused) ` where possible
30+ - fix exponent calculation for subnormals
31+ - Add better edge case testing for ` scalbn `
32+ - Add ` fmaf128 `
33+ - Make it possible to use ` hf32! ` and similar macros outside of ` libm `
34+ - Improve tidy output
35+ - Ensure zero has the correct sign
36+ - Start converting ` fma ` to a generic function
37+ - Add checks via annotation that lists are sorted or exhaustive
38+ - Do not add ` libm_helper.rs ` to the sources list
39+ - Add ` scalbnf16 ` , ` scalbnf128 ` , ` ldexpf16 ` , and ` ldexpf128 `
40+ - Fix hex float trait recursion problem
41+ - Rename ` EXP_MAX ` to ` EXP_SAT `
42+ - Specify license as just MIT
43+ - Introduce a wrapper type for IEEE hex float formatting
44+ - Support parsing NaN and infinities from the ` hf* ` functions
45+ - Switch musl from a script download to a submodule
46+ - Ignore specific ` atan2 ` and ` sin ` tests on i586
47+ - Rework the available Cargo profiles
48+ - Remove remnants of the ` checked ` feature
49+ - Upgrade all dependencies to the latest version
50+ - Add ` fmodf128 `
51+ - Add ` fmodf16 ` using the generic implementation
52+ - Add a generic version of ` fmod `
53+ - Add ` fminf16 ` , ` fmaxf16 ` , ` fminf128 ` , and ` fmaxf128 `
54+ - Add a generic version of ` fmin ` and ` fmax `
55+ - Add ` roundf16 ` and ` roundf128 `
56+ - Add a generic version of ` round `
57+ - Add a generic version of ` scalbn `
58+ - Change ` from_parts ` to take a ` u32 ` exponent rather than ` i32 `
59+ - Add ` hf16! ` and ` hf128! `
60+ - Add ` rintf16 ` and ` rintf128 `
61+ - Add a generic version of ` rint `
62+ - Adjust ` ceil ` style to be more similar to ` floor `
63+ - Add ` floorf16 ` and ` floorf128 `
64+ - Add a generic version of ` floor `
65+ - Add ` ceilf16 ` and ` ceilf128 `
66+ - Add a generic version of ` ceil `
67+ - Make ` Float::exp ` return an unsigned integer
68+ - Shift then mask, rather than mask then shift
69+ - Add ` sqrtf16 ` and ` sqrtf128 `
70+ - Copy the u256 implementation from compiler_builtins
71+ - Port the most recent version of Musl's ` sqrt ` as a generic algorithm
72+ - Ignore files relevant to benchmarking
73+ - Add benchmarks using iai-callgrind
74+ - Adjust precision and add xfails based on new tests
75+ - Simplify and optimize ` fdim ` ([ #442 ] ( https://github.com/tgross35/rust-libm/pull/442 ) )
76+ - Don't set ` codegen-units=1 ` by default in CI
77+ - Add ` fdimf16 ` and ` fdimf128 `
78+ - Add a generic version of ` fdim `
79+ - Add ` truncf16 ` and ` truncf128 `
80+ - Add a generic version of ` trunc `
81+ - Add a utility crate for quick evaluation
82+ - Enable ` build-mpfr ` and ` build-musl ` by default
83+ - Rename the ` test-multiprecision ` feature to ` build-mpfr `
84+ - Introduce arch::aarch64 and use it for rint{,f}
85+ - Use wasm32 arch intrinsics for rint{,f}
86+ - Expose C versions of ` libm ` functions in the ` cb ` crate
87+ - Add ` biteq ` and ` exp_unbiased ` to ` Float `
88+ - Add a ` release-checked ` profile with debug and overflow assertions
89+ - Remove ` ExpInt ` from ` Float ` , always use ` i32 ` instead
90+ - Split ` cast ` into ` cast ` and ` cast_lossy `
91+ - Use ` core::arch::wasm ` functions rather than intrinsics
92+ - Account for optimization levels other than numbers
93+ - Replace "intrinsic" config with "arch" config
94+ - Don't use intrinsics abs for ` f16 ` and ` f128 ` on wasm32
95+ - Remove an unused ` feature = "force-soft-floats" ` gate
96+ - Switch from using ` unstable-intrinsics ` to ` intrinsics_enabled `
97+ - Add test infrastructure for ` f16 ` and ` f128 `
98+ - Add ` fabsf16 ` , ` fabsf128 ` , ` copysignf16 ` , and ` copysignf128 `
99+ - Enable ` f16 ` and ` f128 ` when creating the API change list
100+ - Add more detailed definition output for ` update-api-list.py `
101+ - Rename ` unstable-test-support ` to ` unstable-public-internals `
102+ - Add a way for tests to log to a file
103+ - Use intrinsics for ` abs ` and ` copysign ` when available
104+ - Rename generic ` abs ` to ` fabs `
105+ - Use ` rustdoc ` output to create a list of public API
106+ - Remove an ` is_nan ` workaround that is no longer needed
107+ - Update and slightly refactor some of the ` Float ` trait
108+ - Add ` f16 ` and ` f128 ` configuration from ` compiler-builtins `
109+ - Introduce generic ` abs ` and ` copysign `
110+ - Fix new ` clippy::precedence ` lints
111+ - Introduce helper types for accessing trait items
112+ - Fix a bug in ` abs_diff `
113+ - Remove tests against system musl
114+ - Use ` https: ` links in ` README.md `
115+ - Move some numeric trait logic to default implementations
116+ - Resolve clippy errors in ` libm ` tests and check this in CI
117+ - Add some more basic docstrings ([ #352 ] ( https://github.com/tgross35/rust-libm/pull/352 ) )
118+ - Introduce ` hf32! ` and ` hf64! ` macros for hex float support
119+ - Fix errors reported by Clippy in ` libm `
120+ - Expose the ` support ` module publicly with a test feature
121+ - Update libm ` Float ` and ` Int ` with functions from the test traits
122+ - Change prefixes used by the ` Float ` trait
123+ - Remove ` libm-bench `
124+ - Rename ` canonical_name ` to ` base_name `
125+ - Add float and integer traits from compiler-builtins
126+ - Move architecture-specific code to ` src/math/arch `
127+ - Update ` select_implementation ` to accept arch configuration
128+ - Add an "arch" Cargo feature that is on by default
129+ - Vendor ` cfg_if::cfg_if! `
130+ - Make use of ` select_implementation `
131+ - Introduce a ` select_implementation ` macro
132+ - Introduce ` math::arch::intrinsics `
133+ - Replace ` feature = "unstable-intrinsics" ` with ` intrinsics_enabled `
134+ - Move the existing "unstable" feature to "unstable-intrinsics"
135+
11136## [ 0.2.11] ( https://github.com/rust-lang/libm/compare/libm-v0.2.10...libm-v0.2.11 ) - 2024-10-28
12137
13138### Fixed
0 commit comments