This repository has been archived by the owner on Oct 6, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathTODO
49 lines (38 loc) · 1.56 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
GMP has mpz_divexact(q,n,d), we should have zdiv_exact(q,n,d).
It uses optimised division algorithm that requires that d|n.
Add zsets_radix
Add zstr_radix
Can zmodpowu and zmodpow be improved using some other algorithm?
Is it worth implementing precomputed optimal
addition-chain exponentiation in zpowu?
Test big endian
Test always having .used > 0 for zero
Test negative/non-negative instead of sign
Test long .sign
Test always having .chars % 4 == 0
Test reusing objects in the temp-stack
Test optimisation of zmul:
bc = [(Hb * Hc) << (m2 << 1)]
+ [(Hb * Hc) << m2]
- [(Hb - Lb)(Hc - Lc) << m2]
+ [(Lb * Lc) << m2]
+ (Lb * Lc)
Would zmul be faster if we split only one of the
factors until they are both approximately the same
size?
Add entropy test for zrand.
Should zmodpowu, zmodpow, zmodmul, and zmodsqr be removed?
I need to research how important these are.
They are important for cryptography, but we do not care about that.
They are important for discrete/abstract mathematics, but bignum probably isn't in those cases?
Add CPU-warmup loop to benchmarks.
If ondemand scaling is available but not set, set it.
If the current frequency is not the minimum, run a
catch-fire loop until the CPU is throttled to the
minimum frequency.
This loop shall be done after help variables have
been assigned values, as this can help the warmup.
benchmark with worst case, average case, and best case input.
zadd, zsub: benchmark both dense and sparse integers.
Feedback on error handling:
http://bbs.progrider.org/prog/read/1457215529/31,47