rust/library/core/tests
bors b8536c1aa1 Auto merge of #116176 - FedericoStra:isqrt, r=dtolnay
Add "integer square root" method to integer primitive types

For every suffix `N` among `8`, `16`, `32`, `64`, `128` and `size`, this PR adds the methods

```rust
const fn uN::isqrt() -> uN;
const fn iN::isqrt() -> iN;
const fn iN::checked_isqrt() -> Option<iN>;
```

to compute the [integer square root](https://en.wikipedia.org/wiki/Integer_square_root), addressing issue #89273.

The implementation is based on the [base 2 digit-by-digit algorithm](https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Binary_numeral_system_(base_2)) on Wikipedia, which after some benchmarking has proved to be faster than both binary search and Heron's/Newton's method. I haven't had the time to understand and port [this code](http://atoms.alife.co.uk/sqrt/SquareRoot.java) based on lookup tables instead, but I'm not sure whether it's worth complicating such a function this much for relatively little benefit.
2023-09-29 07:35:44 +00:00
..
fmt Update format_args!() test to account for inlining. 2023-03-16 11:21:50 +01:00
hash fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
iter Implement Step for AsciiChar 2023-08-14 01:34:47 -04:00
net Fix SocketAddrV6: Display tests 2023-06-14 15:21:15 -04:00
num isqrt: disable long running tests in Miri 2023-09-28 17:43:01 +02:00
ops Expand the docs for ops::ControlFlow a bit 2021-02-06 22:36:05 -08:00
panic Fix test (location_const_file) 2022-10-08 11:48:53 +00:00
alloc.rs Re-optimize Layout::array 2022-07-13 17:07:41 -07:00
any.rs core/any: remove Provider trait 2023-08-13 13:07:53 -06:00
array.rs ignore core, alloc and test tests that require unwinding on panic=abort 2023-06-13 15:53:24 +02:00
ascii.rs introduce {char, u8}::is_ascii_octdigit 2022-09-27 11:55:13 +05:30
asserting.rs Spelling library/ 2023-04-26 02:10:22 -04:00
atomic.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
bool.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
cell.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
char.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
clone.rs Bump to latest beta compiler 2023-05-30 08:00:10 -04:00
cmp.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
const_ptr.rs cleanup code w/ pointers in std a little 2022-08-05 16:47:49 +04:00
convert.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
error.rs core/any: remove Provider trait 2023-08-13 13:07:53 -06:00
future.rs enable test_join test in Miri 2023-07-03 14:05:55 +02:00
intrinsics.rs Switch bootstrap cfgs 2022-02-25 08:00:52 -05:00
lazy.rs Rollup merge of #110419 - jsoref:spelling-library, r=jyn514 2023-04-26 18:51:41 +02:00
lib.rs Auto merge of #116176 - FedericoStra:isqrt, r=dtolnay 2023-09-29 07:35:44 +00:00
macros.rs Add the cfg_match! macro 2023-09-23 14:23:51 -03:00
manually_drop.rs Flip cfg's for bootstrap bump 2023-07-12 21:38:55 -04:00
mem.rs Bump to latest beta compiler 2023-05-30 08:00:10 -04:00
nonzero.rs Implement Neg for signed non-zero integers. 2023-04-20 14:27:29 +09:00
ops.rs Test not never 2021-11-21 19:10:39 -08:00
option.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
panic.rs Add newlines 2022-09-27 19:23:52 +00:00
pattern.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
pin_macro.rs Write {ui,} tests for pin_macro and pin! 2022-02-14 16:56:37 +01:00
pin.rs Make some methods of Pin<&mut T> unstable const 2020-09-18 19:23:50 +02:00
ptr.rs Extend unused_must_use to cover block exprs 2023-06-15 17:59:13 +08:00
result.rs Remove unstable Result::into_ok_or_err 2022-08-17 17:20:42 -07:00
simd.rs Introduce core::simd trait imports in tests 2022-07-20 18:08:20 -07:00
slice.rs Add more comprehensive tests for is_sorted and friends 2023-06-16 03:04:34 -04:00
str_lossy.rs Expose Utf8Lossy as Utf8Chunks 2022-08-20 12:49:20 -04:00
str.rs Update paths in comments. 2022-12-30 14:00:42 +01:00
task.rs Remove test of static Context 2023-01-02 10:33:23 -08:00
time.rs Fix implementation of Duration::checked_div 2023-07-30 04:00:02 -04:00
tuple.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
unicode.rs revert changes to unicode stability 2022-07-08 21:18:15 +00:00
waker.rs libcore tests: avoid int2ptr casts 2022-06-27 13:30:44 -04:00