Commit Graph

16 Commits

Author SHA1 Message Date
Mara Bos 4374d5461e Update tests. 2025-03-10 12:20:05 +01:00
Mara Bos fb9ce02976 Limit formatting width and precision to 16 bits. 2025-03-10 12:20:05 +01:00
Trevor Gross 19a909ae0e dec2flt: Refactor float traits
A lot of the magic constants can be turned into expressions. This
reduces some code duplication.

Additionally, add traits to make these operations fully generic. This
will make it easier to support `f16` and `f128`.
2025-03-02 09:35:42 +00:00
Trevor Gross 6c34daff57 dec2flt: Rename fields to be consistent with documented notation 2025-03-02 07:08:01 +00:00
Trevor Gross 626d2c5eed dec2flt: Rename Number to Decimal
The previous commit renamed `Decimal` to `DecimalSeq`. Now, rename the
type that represents a decimal floating point number to be `Decimal`.

Additionally, add some tests for internal behavior.
2025-03-02 07:08:01 +00:00
Trevor Gross 49a2d4c757 dec2flt: Rename Decimal to DecimalSeq
This module currently contains two decimal types, `Decimal` and
`Number`. These names don't provide a whole lot of insight into what
exactly they are, and `Number` is actually the one that is more like an
expected `Decimal` type.

In accordance with this, rename the existing `Decimal` to `DecimalSeq`.
This highlights that it contains a sequence of decimal digits, rather
than representing a base-10 floating point (decimal) number.

Additionally, add some tests to validate internal behavior.
2025-03-02 07:08:00 +00:00
Ralf Jung 31388f5280 checked_ilog tests: deal with a bit of float imprecision 2025-02-27 15:38:22 +01:00
Ralf Jung 5e4c582b3e disable a potentially bogus test on Miri 2025-02-25 09:35:28 +01:00
Jacob Pratt 31640178bd Rollup merge of #137393 - chorman0773:unbounded-shifts-stabilize, r=Amanieu
Stabilize `unbounded_shifts`

This stabilizes and const-stabilizes `<iN>::unbounded_shl` and `<uN>::unbounded_shr` from https://github.com/rust-lang/rust/issues/129375.
2025-02-24 02:11:34 -05:00
Matthias Krüger 1df3a35bca Rollup merge of #136910 - okaneco:sig_ones, r=thomcc
Implement feature `isolate_most_least_significant_one` for integer types

Accepted ACP - https://github.com/rust-lang/libs-team/issues/467
Tracking issue - #136909

Implement ACP for functions that isolate the most significant set bit and least significant set bit on unsigned, signed, and `NonZero` integers.

Add function `isolate_most_significant_one`
Add function `isolate_least_significant_one`

---

This PR adds the following impls
```rust
impl {u8, u16, u32, u64, u128, usize} {
    const fn isolate_most_significant_one(self) -> Self;
    const fn isolate_least_significant_one(self) -> Self;
}
impl {i8, i16, i32, i64, i128, isize} {
    const fn isolate_most_significant_one(self) -> Self;
    const fn isolate_least_significant_one(self) -> Self;
}
impl NonZeroT {
    const fn isolate_most_significant_one(self) -> Self;
    const fn isolate_least_significant_one(self) -> Self;
}
```
Example behavior
```rust
assert_eq!(u8::isolate_most_significant_one(0b01100100), 0b01000000);
assert_eq!(u8::isolate_least_significant_one(0b01100100), 0b00000100);
```
2025-02-22 11:36:42 +01:00
Connor Horman f1c21c9fc6 Fix unbounded_shifts tests 2025-02-21 18:13:30 +00:00
Connor Horman a3f389745e Stabilize unbounded_shifts 2025-02-21 16:58:37 +00:00
okaneco 97bc99a18f Implement feature isolate_most_least_significant_one for integer types
Implement accepted ACP for functions that isolate the most significant
set bit and least significant set bit on unsigned, signed, and NonZero
integers.

Add function `isolate_most_significant_one`
Add function `isolate_least_significant_one`
Add tests
2025-02-20 05:19:06 -05:00
Eric Huss b7c975b22e library: Update rand to 0.9.0 2025-02-13 12:20:55 -08:00
Michael Goulet a4e7f8f9bf Mark extern blocks as unsafe 2025-02-09 17:11:13 +00:00
bjorn3 b6a3841942 Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00