Josh Stone
f6dc4d29a4
Add thorough tests of float to int edge cases
2018-03-10 23:05:02 -08:00
Josh Stone
b025c273c7
Rewrite range checks in float ToPrimitive macros
2018-03-10 23:01:30 -08:00
Dan Barella
8e27c7327d
Rename some tests.
2018-03-10 15:14:23 -08:00
Dan Barella
aab7098acd
Reformat macros.
2018-03-10 15:14:23 -08:00
Alexander Popiak
c32cb5c65b
Patch in apopiak@'s changes from github.com/rust-num/num/pull/135/.
2018-03-10 15:14:23 -08:00
Dan Barella
ab8fda7654
Change assert form.
2018-03-10 15:14:23 -08:00
Dan Barella
ecb0816c83
Remove an unneeded assert.
2018-03-10 15:14:23 -08:00
Dan Barella
3534a89858
Don't use assert_ne!
...
`num` is tested against `rust 1.8.0`, which doesn't include
`assert_ne!` -- so we use a plain ol' `assert` instead.
2018-03-10 15:14:23 -08:00
Dan Barella
f99aa0e181
Check overflow when casting floats to integers.
...
This change adds some new macro rules used when converting from floats
to integers. There are two macro rule variants, one for signed ints, one
for unsigned ints.
Among other things, this change specifically addresses the overflow case
documented in https://github.com/rust-num/num-traits/issues/12
2018-03-10 15:14:23 -08:00
bors[bot]
aa36cdb206
Merge #42
...
42: Release 0.2.1 r=cuviper a=cuviper
2018-03-01 23:29:38 +00:00
Josh Stone
ab0de9c329
Release 0.2.1
2018-03-01 14:20:57 -08:00
bors[bot]
5f906234bc
Merge #41
...
41: Various improvements to FloatCore r=vks a=cuviper
- New macros simplify forwarding method implementations.
- `Float` and `Real` use this to compact their implementations.
- `FloatCore` now forwards `std` implementations when possible.
- `FloatCore` now requires `NumCast`, like `Float does.
- New additions to `FloatCore`:
- Constants like `min_value()` -> `f64::MIN`
- Rounding methods `floor`, `ceil`, `round`, `trunc`, `fract`
- `integer_decode` matching `Float`'s
- Fix NAN sign handling in `FloatCore` (rust-num/num#312 , rust-lang/rust#42425 )
- Fix overflow in `FloatCore::powi` exponent negation.
- Add doctests to all `FloatCore` methods.
2018-03-01 20:57:29 +00:00
Josh Stone
04a3f2a591
Comment the Rust version for NAN.is_sign_* behavior
2018-02-28 11:43:55 -08:00
Josh Stone
080f6f259e
Comment the i32::MIN case for FloatCore::powi
2018-02-28 11:33:34 -08:00
Josh Stone
aa9ceba628
Add doctests to FloatCore
2018-02-27 22:12:37 -08:00
Josh Stone
ec3cd50f3d
Weaken the std f32::to_degrees/to_radians tests
2018-02-27 22:10:46 -08:00
Josh Stone
ac6eca4b66
Use more FloatCore in src/sign.rs
2018-02-27 21:50:44 -08:00
Josh Stone
36c7e324db
Fix FloatCore::powi with i32::MIN exponent
2018-02-27 21:34:01 -08:00
Josh Stone
964a7e52a8
Reinstate NAN-sign fixes in FloatCore
...
Formerly changed on the next branch, part of rust-num/num#319 .
2018-02-27 21:03:30 -08:00
Josh Stone
8d16921579
allow unused macros
2018-02-27 17:09:43 -08:00
Josh Stone
6fa29be7c0
Use macros for more float constants
2018-02-27 17:09:43 -08:00
Josh Stone
83d498d0be
Add integer_decode to FloatCore
2018-02-27 16:33:04 -08:00
Josh Stone
f365a4205f
Add rounding methods to FloatCore
2018-02-27 16:33:04 -08:00
Josh Stone
99c6cc11ba
Add more constants to FloatCore
2018-02-27 16:33:04 -08:00
Josh Stone
7d6575da0f
Add NumCast to FloatCore, matching Float
2018-02-27 16:33:04 -08:00
Josh Stone
ac503261ca
Forward FloatCore to inherent methods when possible
2018-02-27 16:33:04 -08:00
Josh Stone
c848562fcf
Use forwarding macros to implement Float and Real
2018-02-27 16:33:04 -08:00
bors[bot]
dc6a125a9c
Merge #37
...
37: Add Inv and Pow traits. r=cuviper a=clarcharr
This is not a breaking change, and closes #34 and #38 .
This doesn't add any impls for the other `num` crates, just floats with `std` enabled. The trait has to be added before those other crates can be updated.
2018-02-27 19:56:30 +00:00
Clar Charr
79b557f040
Ensure infalliability of conversions, avoid closures.
2018-02-27 14:06:46 -05:00
Clar Charr
aca8dc8149
Remove Pow<u64> (accidentally added).
2018-02-27 13:25:53 -05:00
Clar Charr
61a6acc9c2
Add more Pow implementations.
2018-02-27 13:25:53 -05:00
Clar Charr
5d6933f34a
Fix doc tests.
2018-02-27 13:25:53 -05:00
Clar Charr
ce3badca57
Move Pow to pow module.
2018-02-27 13:25:53 -05:00
Clar Charr
c1f4118b4e
Fix Inv trait, add Pow trait.
2018-02-27 13:25:53 -05:00
Clar Charr
5bdff3f0ff
Add Inv trait.
2018-02-27 13:25:53 -05:00
bors[bot]
3431da80a2
Merge #39
...
39: Add is_one. r=cuviper a=clarcharr
Implements the version recommended in #5 . That issue should remain open to track the breaking-change version.
2018-02-23 22:58:39 +00:00
Clar Charr
51dad501aa
Add #[inline] to is_one.
2018-02-23 17:44:07 -05:00
Clar Charr
45856ee846
Make doc comment less scary.
2018-02-23 17:21:47 -05:00
Clar Charr
9461cd84f2
Add is_one.
2018-02-19 15:05:11 -05:00
bors[bot]
bfd62d4638
Merge #32
...
32: Implement CoreFloat trait r=cuviper a=vks
This is a subset of the `Float` trait, but works with `no_std`.
Some code was simplified by using `CoreFloat`.
2018-02-07 22:26:47 +00:00
Vinzent Steinberg
52bc8eb22b
Mention FloatCore in README
2018-02-07 12:47:12 +01:00
Vinzent Steinberg
d115dadeb1
Don't re-export FloatCore
...
This avoids breaking `use num_traits::*`.
2018-02-07 12:42:30 +01:00
Vinzent Steinberg
1db660ed56
Inline only actual trait implementations
2018-02-07 12:38:01 +01:00
Vinzent Steinberg
efad5329b4
Rename CoreFloat to FloatCore
2018-02-07 12:34:14 +01:00
Josh Stone
a062bed8b2
link more release notes
2018-02-06 20:49:17 -08:00
bors[bot]
17cc9c1e75
Merge #33
...
33: Release 0.2.0 r=cuviper a=cuviper
2018-02-07 01:12:45 +00:00
Josh Stone
2566d53ad2
Bump to 0.2.0 final
2018-02-06 17:01:43 -08:00
Josh Stone
aa9ea42f9e
Add release notes for 0.2.0
2018-02-06 17:01:31 -08:00
Vinzent Steinberg
8a7f383eb1
Implement CoreFloat trait
...
This is a subset of the `Float` trait, but works with `no_std`.
Some code was simplified by using `CoreFloat`.
2018-02-02 19:48:25 +01:00
Josh Stone
47515a10e1
Add a min-rustc badge and document compatibility
2018-02-02 10:24:14 -08:00