Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/remyoudompheng/bigfft
/ functions
Functions
136 in github.com/remyoudompheng/bigfft
⨍
Functions
136
◇
Types & classes
6
↓ 23 callers
Function
benchmarkMulFFT
(b *testing.B, sizex, sizey int)
fft_test.go:255
↓ 21 callers
Function
parseHex
parseHex reads an hex-formatted number modulo 2^bits+1.
fermat_test.go:14
↓ 20 callers
Function
benchmarkMulBig
(b *testing.B, sizex, sizey int)
fft_test.go:243
↓ 17 callers
Function
benchmarkMul
(b *testing.B, sizex, sizey int)
fft_test.go:298
↓ 17 callers
Function
testFourier
(t *testing.T, N int, k uint)
fft_test.go:80
↓ 10 callers
Function
rndNat
(n int)
fft_test.go:202
↓ 9 callers
Method
Mul
Mul multiplies p and q modulo X^K-1, where K = 1<<p.k. The product is done via a Fourier transform.
fft.go:169
↓ 7 callers
Method
Add
Add computes addition mod 2^n+1.
fermat.go:116
↓ 7 callers
Method
Shift
Shift computes (x << k) mod (2^n+1).
fermat.go:43
↓ 7 callers
Function
benchmarkScanBig
(n int, b *testing.B)
scan_test.go:53
↓ 7 callers
Function
benchmarkScanFast
func BenchmarkScanFast100M(b *testing.B) { benchmarkScanFast(100e6, b) }
scan_test.go:36
↓ 6 callers
Function
addVW
go:linkname addVW math/big.addVW
arith_decl.go:21
↓ 6 callers
Function
polyFromNat
polyFromNat slices the number x into a polynomial with 1<<k coefficients made of m words.
fft.go:119
↓ 5 callers
Function
fourier
fourier performs an unnormalized Fourier transform of src, a length 1<<k vector of numbers modulo b^n+1 where b = 1<<_W.
fft.go:302
↓ 5 callers
Function
subVV
go:linkname subVV math/big.subVV
arith_decl.go:18
↓ 4 callers
Method
Int
Int evaluates back a poly to its integer value.
fft.go:136
↓ 4 callers
Function
Mul
Mul computes the product x*y and returns z. It can be used instead of the Mul method of *big.Int from math/big package.
fft.go:32
↓ 4 callers
Method
ShiftHalf
ShiftHalf shifts x by k/2 bits the left. Shifting by 1/2 bit is multiplication by sqrt(2) mod 2^n+1 which is 2^(3n/4) - 2^(n/4). A temporary buffer mu
fermat.go:101
↓ 4 callers
Method
Sub
Sub computes substraction mod 2^n+1.
fermat.go:126
↓ 4 callers
Function
cmpFourier
cmpFourier computes the Fourier transform of src and compares it to the FFT result.
fft_test.go:104
↓ 4 callers
Function
compare
(t *testing.T, prefix string, a, b fermat)
fermat_test.go:27
↓ 4 callers
Function
fftSize
returns the FFT length k, m the number of words per chunk such that m << k is larger than the number of words in x*y.
fft.go:74
↓ 4 callers
Method
norm
()
fermat.go:16
↓ 4 callers
Function
roundDur
(d time.Duration)
calibrate_test.go:27
↓ 3 callers
Method
Transform
Transform evaluates p at θ^i for i = 0...K-1, where θ is a K-th primitive root of unity in Z/(b^n+1)Z.
fft.go:192
↓ 3 callers
Function
cmpnat
(t *testing.T, x, y nat)
fft_test.go:10
↓ 3 callers
Function
rndStr
(n int)
scan_test.go:61
↓ 3 callers
Function
subVW
go:linkname subVW math/big.subVW
arith_decl.go:24
↓ 3 callers
Function
valueSize
valueSize returns the length (in words) to use for polynomial coefficients, to compute a correct product of polynomials P*Q where deg(P*Q) < K (== 1<<
fft.go:95
↓ 2 callers
Function
FromDecimalString
FromDecimalString converts the base 10 string representation of a natural (non-negative) number into a *big.Int. Its asymptotic complexity is less tha
scan.go:11
↓ 2 callers
Method
InvTransform
InvTransform reconstructs p (modulo X^K - 1) from its values at θ^i for i = 0..K-1.
fft.go:212
↓ 2 callers
Function
addVV
go:linkname addVV math/big.addVV
arith_decl.go:15
↓ 2 callers
Function
measureFFTSize
(w int, k uint)
calibrate_test.go:84
↓ 2 callers
Function
mulFFT
(x, y *big.Int)
fft.go:41
↓ 1 callers
Function
addMulVVW
go:linkname addMulVVW math/big.addMulVVW
arith_decl.go:33
↓ 1 callers
Function
basicMul
copied from math/big basicMul multiplies x and y and leaves the result in z. The (non-normalized) result is placed in z[0 : len(x) + len(y)].
fermat.go:206
↓ 1 callers
Method
chunkSize
(size int)
scan.go:23
↓ 1 callers
Function
fftmul
A FFT size of K=1<<k is adequate when K is about 2*sqrt(N) where N = x.Bitlen() + y.Bitlen().
fft.go:55
↓ 1 callers
Function
logbig
(t *testing.T, n *Int)
fft_test.go:234
↓ 1 callers
Function
measureMul
measureMul benchmarks math/big versus FFT for a given input size (in bits).
calibrate_test.go:16
↓ 1 callers
Method
power
(k uint)
scan.go:35
↓ 1 callers
Method
scan
(z *big.Int, str string)
scan.go:51
↓ 1 callers
Function
shlVU
go:linkname shlVU math/big.shlVU
arith_decl.go:27
↓ 1 callers
Function
trim
(n nat)
fft.go:158
Function
BenchmarkMulBig_100Mb
(b *testing.B)
fft_test.go:279
Function
BenchmarkMulBig_100kb
(b *testing.B)
fft_test.go:270
Function
BenchmarkMulBig_10Mb
(b *testing.B)
fft_test.go:276
Function
BenchmarkMulBig_10kb
(b *testing.B)
fft_test.go:268
Function
BenchmarkMulBig_1Mb
(b *testing.B)
fft_test.go:273
Function
BenchmarkMulBig_1kb
(b *testing.B)
fft_test.go:267
Function
BenchmarkMulBig_1x10Mb
(b *testing.B)
fft_test.go:331
Function
BenchmarkMulBig_1x20Mb
(b *testing.B)
fft_test.go:332
Function
BenchmarkMulBig_1x50Mb
(b *testing.B)
fft_test.go:333
Function
BenchmarkMulBig_1x5Mb
(b *testing.B)
fft_test.go:330
Function
BenchmarkMulBig_200kb
(b *testing.B)
fft_test.go:271
Function
BenchmarkMulBig_20Mb
(b *testing.B)
fft_test.go:277
Function
BenchmarkMulBig_2Mb
(b *testing.B)
fft_test.go:274
Function
BenchmarkMulBig_500kb
(b *testing.B)
fft_test.go:272
Function
BenchmarkMulBig_50Mb
(b *testing.B)
fft_test.go:278
Function
BenchmarkMulBig_50kb
(b *testing.B)
fft_test.go:269
Function
BenchmarkMulBig_5Mb
(b *testing.B)
fft_test.go:275
Function
BenchmarkMulBig_5x20Mb
(b *testing.B)
fft_test.go:334
Function
BenchmarkMulBig_5x50Mb
(b *testing.B)
fft_test.go:335
Function
BenchmarkMulFFT_100Mb
(b *testing.B)
fft_test.go:293
Function
BenchmarkMulFFT_100kb
(b *testing.B)
fft_test.go:284
Function
BenchmarkMulFFT_10Mb
(b *testing.B)
fft_test.go:290
Function
BenchmarkMulFFT_10kb
(b *testing.B)
fft_test.go:282
Function
BenchmarkMulFFT_1Gb
(b *testing.B)
fft_test.go:296
Function
BenchmarkMulFFT_1Mb
(b *testing.B)
fft_test.go:287
Function
BenchmarkMulFFT_1kb
(b *testing.B)
fft_test.go:281
Function
BenchmarkMulFFT_1x10Mb
(b *testing.B)
fft_test.go:338
Function
BenchmarkMulFFT_1x20Mb
(b *testing.B)
fft_test.go:339
Function
BenchmarkMulFFT_1x50Mb
(b *testing.B)
fft_test.go:340
Function
BenchmarkMulFFT_1x5Mb
(b *testing.B)
fft_test.go:337
Function
BenchmarkMulFFT_200Mb
(b *testing.B)
fft_test.go:294
Function
BenchmarkMulFFT_200kb
(b *testing.B)
fft_test.go:285
Function
BenchmarkMulFFT_20Mb
(b *testing.B)
fft_test.go:291
Function
BenchmarkMulFFT_2Mb
(b *testing.B)
fft_test.go:288
Function
BenchmarkMulFFT_500Mb
(b *testing.B)
fft_test.go:295
Function
BenchmarkMulFFT_500kb
(b *testing.B)
fft_test.go:286
Function
BenchmarkMulFFT_50Mb
(b *testing.B)
fft_test.go:292
Function
BenchmarkMulFFT_50kb
(b *testing.B)
fft_test.go:283
Function
BenchmarkMulFFT_5Mb
(b *testing.B)
fft_test.go:289
Function
BenchmarkMulFFT_5x20Mb
(b *testing.B)
fft_test.go:341
Function
BenchmarkMulFFT_5x50Mb
(b *testing.B)
fft_test.go:342
Function
BenchmarkMul_100Mb
(b *testing.B)
fft_test.go:320
Function
BenchmarkMul_100kb
(b *testing.B)
fft_test.go:311
Function
BenchmarkMul_10Mb
(b *testing.B)
fft_test.go:317
Function
BenchmarkMul_1Mb
(b *testing.B)
fft_test.go:314
Function
BenchmarkMul_1x10Mb
(b *testing.B)
fft_test.go:324
Function
BenchmarkMul_1x20Mb
(b *testing.B)
fft_test.go:325
Function
BenchmarkMul_1x50Mb
(b *testing.B)
fft_test.go:326
Function
BenchmarkMul_1x5Mb
Unbalanced multiplication benchmarks
fft_test.go:323
Function
BenchmarkMul_200kb
(b *testing.B)
fft_test.go:312
Function
BenchmarkMul_20Mb
(b *testing.B)
fft_test.go:318
Function
BenchmarkMul_2Mb
(b *testing.B)
fft_test.go:315
Function
BenchmarkMul_500kb
(b *testing.B)
fft_test.go:313
Function
BenchmarkMul_50Mb
(b *testing.B)
fft_test.go:319
Function
BenchmarkMul_50kb
(b *testing.B)
fft_test.go:310
Function
BenchmarkMul_5Mb
(b *testing.B)
fft_test.go:316
next →
1–100 of 136, ranked by callers