rust-num / num-rational

Generic Rational numbers for Rust
Apache License 2.0
144 stars 50 forks source link

Try to avoid cloning #110

Open konsumlamm opened 2 years ago

konsumlamm commented 2 years ago

Currently, the arithmetic operations do a lot of clones. However, this is quite inefficient when using types with non-trivial Clone impls, such as BigInt in BigRational. We could instead do the operations on references, to avoid the cloning. However, since the impls use the Integer trait, which only supports arithmetic operations on owned values, it seems this would need new trait bounds (like NumRef or RefNum).