Comments (3)
I don't sure it's an "incorrect". Same for gmplib:
$ cat a.c
#include <stdio.h>
#include <gmp.h>
int
main(int argc, char* argv[])
{
int base = 42, x[2] = {35, 36};
mpz_t n;
mpz_init(n);
for (int i = 0; i < 2; i++) {
mpz_set_si(n, x[i]);
fprintf(stdout, "%d: ", x[i]);
mpz_out_str(stdout, base, n);
fprintf(stdout, "\n");
}
mpz_clear(n);
return 0;
}
$ cc a.c -lgmp && ./a.out
35: Z
36: a
"For bases up to 36, case is ignored; upper-case and lower-case letters have the same value. For bases 37 to 62, upper-case letter represent the usual 10..35 while lower-case letter represent 36..61." (c) https://gmplib.org/manual/I_002fO-of-Integers
But maybe we should expand the digits docstring with this remark.
from gmpy.
Xmm.. turns out that you cannot apply the upper() operator to numbers.. Yes, it really would be reasonable to reflect this moment in the documentation, perhaps even in a separate section and especially case about the nomenclature of numbers. Because there is apparently no single and clear nomenclature for writing numbers with a non-standard base - there exist recommendations to exclude 'I' and 'O' (but for some reason not lowercase 'L') so as not to confuse them with similar numbers. However the gmplib docs doesn't specify that.
Anyway, there is still a problem in the code - lowercase letters are iterated from 'a' to 'f', while uppercase letters are in the full range.
from gmpy.
Xmm.. turns out that you cannot apply the upper() operator to numbers..
You can. But in general, this will be a different digit.
Yes, it really would be reasonable to reflect this moment in the documentation
On another hand, the gmpy2 is just a wrapper. So, in case of doubts - see the documentation of the GMP library (or MPFR/MPC).
However the gmplib docs doesn't specify that.
They do. That specification was quoted in the above post.
lowercase letters are iterated from 'a' to 'f'
No. That's only because you have used base=42.
>>> mpz(35).digits(62)
'Z'
>>> mpz(61).digits(62)
'z'
from gmpy.
Related Issues (20)
- bit_count() not found HOT 3
- Build failure on CPython 3.13 (dev)
- test failures with mpfr 4.2.1 (change in MPFR formatted functions) HOT 32
- New version? 🤔 HOT 15
- 2.1.5: test suite fails with errors `invalid option: '+SKIP_MPC_LESS_THAN_110'` HOT 9
- 2.1.5: *.h and *.pxd files are installed HOT 5
- Is the `is_strong_bpsw_prp` code correct? HOT 2
- Assessment of the difficulty in porting CPU architecture for the gmpy
- Description of `is_euler_prp` HOT 1
- mpz object missing to_bytes() method HOT 4
- complex conjugate crash HOT 2
- Linux wheels in the latest release (2.2.0a1) are broken HOT 10
- What is the paper that `is_extra_strong_lucas_prp` is referring to? HOT 4
- About the case where `k=0` is input to `lucasu_mod` and `lucasv_mod` HOT 2
- gmpy-2.1.5 fails to compile with python-3.12 HOT 11
- cython C-API is broken in published wheels (and in the build_wheels.yml CI workflow) HOT 9
- Pip install build fails, can't find mpc.h HOT 6
- Deprecate local_context()? HOT 18
- Impending release of gmpy2 2.2.0a2 HOT 10
- Issue with large factorial HOT 6
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 gmpy.