61 lines
3.3 KiB
Plaintext
61 lines
3.3 KiB
Plaintext
## Release v0.7.1 (27 Jan. 2022)
|
|
- Add the optional types `WideF32x8` and `WideBoolF32x8` for 8-lanes SIMD float operations.
|
|
|
|
## Release v0.7.0 (02 Jan. 2022)
|
|
- Remove the `Bounded` requirement from `RealField`. Replace it by methods returning `Option<Self>` so that they can
|
|
still be implemented by unbounded types (by returning `None`).
|
|
- The `ComplexField` trait derives from `FromPrimitive` again. We can actually keep this because all its methods
|
|
return `Option<Self>`, meaning that it could be implemented by any type.
|
|
- Add the `cuda` cargo feature that enables support for [Rust-Cuda](https://github.com/Rust-GPU/Rust-CUDA) by generating
|
|
the relevant cuda intrinsics for float operations when running on a cuda kernel.
|
|
|
|
|
|
## Release v0.6.0
|
|
- Replace all the `Copy` trait bounds by `Clone`, allowing more types to fulfill the requirements
|
|
of `ComplexField` and `RealField`.
|
|
- The `ComplexField` trait no longer derive from `FromPrimitive`.
|
|
|
|
## Release v0.5.0
|
|
- Update the `num-complex` 0.4 dependency.
|
|
|
|
## Release v0.4.0
|
|
- Update the `rand` 0.8 dependency.
|
|
- Add `SimdComplexField::simd_horizontal_sum` and `SimdComplexField::simd_horizontal_product`
|
|
for computing the sum or product of all the lanes of a single SIMD value.
|
|
|
|
## Release v0.3.0
|
|
This release includes a change that is not technically a breaking change because
|
|
it won't cause existing code to not compile anymore. However it is an important
|
|
semantic change to justify a major release:
|
|
- The arguments of `copysign` are now swapped: `a.copysign(b)` will copy the sign of `b` into `a` (the previous
|
|
behavior copied the sign of `a` into `b`). This change was needed to align with the argument order used by
|
|
the standard library, thus avoiding hard-to-debug errors due to mismatching conventions.
|
|
- The arguments of `simd_copysign` are now swapped too.
|
|
|
|
This release also update the `num-complex` dependency to its latest version 0.3.
|
|
|
|
## Release v0.2.4
|
|
- Make `Fixed.to_bits` and `Fixed::from_bits` const-fn.
|
|
- Make our `Fixed` wrapper type `repr(transparent)`.
|
|
|
|
## Release v0.2.3
|
|
- Add `.to_bits` to our fixed-point number newtype.
|
|
- Add `::from_bits` to our fixed-point number newtype.
|
|
- Add `Ord` implementation for our fixed-point number newtype.
|
|
- Add `Mul<int>, Div<int>, Rem<int>, MulAssign<int>, DivAssign<int>, RemAssign<int>` implementation for our fixed-point
|
|
number newtype, where `int` is the underlying integer used by the fixed-point number.
|
|
|
|
## Release v0.2.2
|
|
- Fix a compilation error when building simba with out `std` and with the `libm` feature.
|
|
|
|
## Release v0.2.1
|
|
- Add SIMD types named, e.g. `AutoF32x4`, based on auto-vectorization only. They don't call any SIMD intrinsics and let the compiler do the
|
|
vectorization, if it can.
|
|
|
|
## Release v0.2.0
|
|
- The use of `libm` in `#[no-std]` environments is now opt-in by enabling the `libm` feature.
|
|
- If the `libm` is not enabled in a `#[no-std]` environment, then no `RealField` or `ComplexField` impls will be provided for floats.
|
|
- Add the `libm_force` cargo feature that forces the use of `libm`, even when we don't target `no-std`.
|
|
- Add `copysign` to copy the sign from one number to another.
|
|
- Add `simd_horizontal_min`, `simd_horizontal_max` to compute the min/max among the lanes of a single SIMD number.
|
|
- Wrap all SIMD bools from `packed_simd` into our own `Simd<_>` newtype. |