Comments (6)
* BinopAssign<&int> for BigInt
I think this is the only one missing -- the rest should be covered by macro forwarding.
from num-bigint.
We shouldn't remove anything -- references can be a big saver when clones can be avoided. The assign ops should be implemented for references too.
from num-bigint.
I ran the test at my criterion.rs benchmark suite to check the influence of passing integers by reference instead of by value.
While I am currently running the tests with all integers instead of only u128, I still believe that passing by reference is actually not recommendable. There seems to be a non negligible performance hit when passing &u128
instead of u128
.
from num-bigint.
first bench this, by value
then this, by ref
don't have a lot of time right now, but by ref seems to mostly hurt the performance.
from num-bigint.
Oh, yeah, I was only thinking of &
among BigUint
parameters. For primitive integers, it is a bit wasteful, but consistent with the std
implementions. I think it's a matter of convenience for when you already have a reference. That case ought to be roughly equal for performance whether it's dereferenced before the operator or within, so it might as well be made easy for ergonomics.
from num-bigint.
I didn't know Add<&Self>
is implemented for number types. 😮
So we should probably implemented the following binops for all integers to be similar to std
:
Binop<BigInt> for int
Binop<&BigInt> for int
Binop<int> for BigInt
Binop<&int> for BigInt
Binop<int> for &BigInt
Binop<&int> for &BigInt
BinopAssign<int> for BigInt
BinopAssign<&int> for BigInt
BinopAssign<Bigint> for int
BinopAssign<&Bigint> for int
I might implement this if it is desired.
from num-bigint.
Related Issues (20)
- Is there a reason that `Copy` isn't implemented for `BigInt` and `BigUint` HOT 3
- `test_convert_f32` test failed on `i686-pc-windows-*` target HOT 8
- Whether to enable simd support? HOT 2
- Absolute value HOT 6
- Compiling Bigint Without Cargo HOT 1
- Debug output doesn't honor formatting specifier x HOT 1
- to_str_radix produces odd number of digits HOT 2
- Build script could be replaced with const fn HOT 4
- Incorrect handling of "_" chars in decimal part of number HOT 1
- From f64 HOT 2
- BigInt absolute value as a BigUint value HOT 2
- Add is_negative and is_non_negative HOT 1
- BigInt::parse_bytes converting a string with '_' as bigint with base 36 which isn't expected. HOT 2
- Feature Request: Ref type for {BigInt|BigUint} HOT 2
- Ability to create const BigUint etc. HOT 2
- Add powi method for `Sign` enum HOT 1
- re-export num_traits HOT 1
- Possible Incompleteness HOT 2
- Mixed-algorithm GCD (potential optimization) HOT 1
- x86_64-unknown-linux-gnux32 no longer works with 0.4.5 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from num-bigint.