rational: Implement approximation from floats and FromPrimitive for v…
…arious types
FromPrimitive is implemented for i8/16/32/64 and BigInt.
https://github.com/rust-num/num/issues/282
Complex: Use repr(C) and add documentation for what it means
Here's an ambitious proposal that puts currently practiced ffi usage of `Complex<f32/f64>` on sound footing.
Fixes #79
Current users appear to be:
- https://crates.io/crates/blas
+ Their use is not about Complex<f64> in an extern function's signature, but it is explicitly using that it is memory layout compatible.
Implement an iterator over the binomial coefficients
I'm not very happy with the excessive cloning, but to fix it the bounds on the type parameters would have to be excessive. We probably need something like [this](https://github.com/vks/discrete-log/blob/master/src/main.rs#L90) in `num-traits`.
bigint: Create the parsing error better for nested `+`
If a `+` is encountered in the middle of parsing a BigUint, this should
generate an `ParseIntError::InvalidDigit`. Since we can't create that
directly, we get it by trying to parse a `u64` from this point, but of
course `+` is a perfectly valid prefix to a `u64`.
Now we include the previous character in the string passed to `u64`, so it
has proper parsing context to understand what's in error.
Fixes#268.
If a `+` is encountered in the middle of parsing a BigUint, this should
generate an `ParseIntError::InvalidDigit`. Since we can't create that
directly, we get it by trying to parse a `u64` from this point, but of
course `+` is a perfectly valid prefix to a `u64`.
Now we include the previous character in the string passed to `u64`, so
it has proper parsing context to understand what's in error.
Fixes#268.
Bump rustc to 1.8 and revamp all CI
This bumps the minimum rustc to 1.8.0, "fixing" #257. I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.
This adds 1.15.0 to the CI matrix to build stable num-derive. We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.
The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden. It's also now consolidated into one test_full.sh
which considers $TRAVIS_RUST_VERSION as needed.
This bumps the minimum rustc to 1.8.0, "fixing" #257. I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.
This adds 1.15.0 to the CI matrix to build stable num-derive. We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.
The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden. It's also now consolidated into one test_full.sh
which considers $TRAVIS_RUST_VERSION as needed.