MCPcopy Create free account

hub / github.com/remyoudompheng/bigfft / functions

Functions136 in github.com/remyoudompheng/bigfft

↓ 23 callersFunctionbenchmarkMulFFT
(b *testing.B, sizex, sizey int)
fft_test.go:255
↓ 21 callersFunctionparseHex
parseHex reads an hex-formatted number modulo 2^bits+1.
fermat_test.go:14
↓ 20 callersFunctionbenchmarkMulBig
(b *testing.B, sizex, sizey int)
fft_test.go:243
↓ 17 callersFunctionbenchmarkMul
(b *testing.B, sizex, sizey int)
fft_test.go:298
↓ 17 callersFunctiontestFourier
(t *testing.T, N int, k uint)
fft_test.go:80
↓ 10 callersFunctionrndNat
(n int)
fft_test.go:202
↓ 9 callersMethodMul
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 callersMethodAdd
Add computes addition mod 2^n+1.
fermat.go:116
↓ 7 callersMethodShift
Shift computes (x << k) mod (2^n+1).
fermat.go:43
↓ 7 callersFunctionbenchmarkScanBig
(n int, b *testing.B)
scan_test.go:53
↓ 7 callersFunctionbenchmarkScanFast
func BenchmarkScanFast100M(b *testing.B) { benchmarkScanFast(100e6, b) }
scan_test.go:36
↓ 6 callersFunctionaddVW
go:linkname addVW math/big.addVW
arith_decl.go:21
↓ 6 callersFunctionpolyFromNat
polyFromNat slices the number x into a polynomial with 1<<k coefficients made of m words.
fft.go:119
↓ 5 callersFunctionfourier
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 callersFunctionsubVV
go:linkname subVV math/big.subVV
arith_decl.go:18
↓ 4 callersMethodInt
Int evaluates back a poly to its integer value.
fft.go:136
↓ 4 callersFunctionMul
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 callersMethodShiftHalf
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 callersMethodSub
Sub computes substraction mod 2^n+1.
fermat.go:126
↓ 4 callersFunctioncmpFourier
cmpFourier computes the Fourier transform of src and compares it to the FFT result.
fft_test.go:104
↓ 4 callersFunctioncompare
(t *testing.T, prefix string, a, b fermat)
fermat_test.go:27
↓ 4 callersFunctionfftSize
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 callersMethodnorm
()
fermat.go:16
↓ 4 callersFunctionroundDur
(d time.Duration)
calibrate_test.go:27
↓ 3 callersMethodTransform
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 callersFunctioncmpnat
(t *testing.T, x, y nat)
fft_test.go:10
↓ 3 callersFunctionrndStr
(n int)
scan_test.go:61
↓ 3 callersFunctionsubVW
go:linkname subVW math/big.subVW
arith_decl.go:24
↓ 3 callersFunctionvalueSize
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 callersFunctionFromDecimalString
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 callersMethodInvTransform
InvTransform reconstructs p (modulo X^K - 1) from its values at θ^i for i = 0..K-1.
fft.go:212
↓ 2 callersFunctionaddVV
go:linkname addVV math/big.addVV
arith_decl.go:15
↓ 2 callersFunctionmeasureFFTSize
(w int, k uint)
calibrate_test.go:84
↓ 2 callersFunctionmulFFT
(x, y *big.Int)
fft.go:41
↓ 1 callersFunctionaddMulVVW
go:linkname addMulVVW math/big.addMulVVW
arith_decl.go:33
↓ 1 callersFunctionbasicMul
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 callersMethodchunkSize
(size int)
scan.go:23
↓ 1 callersFunctionfftmul
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 callersFunctionlogbig
(t *testing.T, n *Int)
fft_test.go:234
↓ 1 callersFunctionmeasureMul
measureMul benchmarks math/big versus FFT for a given input size (in bits).
calibrate_test.go:16
↓ 1 callersMethodpower
(k uint)
scan.go:35
↓ 1 callersMethodscan
(z *big.Int, str string)
scan.go:51
↓ 1 callersFunctionshlVU
go:linkname shlVU math/big.shlVU
arith_decl.go:27
↓ 1 callersFunctiontrim
(n nat)
fft.go:158
FunctionBenchmarkMulBig_100Mb
(b *testing.B)
fft_test.go:279
FunctionBenchmarkMulBig_100kb
(b *testing.B)
fft_test.go:270
FunctionBenchmarkMulBig_10Mb
(b *testing.B)
fft_test.go:276
FunctionBenchmarkMulBig_10kb
(b *testing.B)
fft_test.go:268
FunctionBenchmarkMulBig_1Mb
(b *testing.B)
fft_test.go:273
FunctionBenchmarkMulBig_1kb
(b *testing.B)
fft_test.go:267
FunctionBenchmarkMulBig_1x10Mb
(b *testing.B)
fft_test.go:331
FunctionBenchmarkMulBig_1x20Mb
(b *testing.B)
fft_test.go:332
FunctionBenchmarkMulBig_1x50Mb
(b *testing.B)
fft_test.go:333
FunctionBenchmarkMulBig_1x5Mb
(b *testing.B)
fft_test.go:330
FunctionBenchmarkMulBig_200kb
(b *testing.B)
fft_test.go:271
FunctionBenchmarkMulBig_20Mb
(b *testing.B)
fft_test.go:277
FunctionBenchmarkMulBig_2Mb
(b *testing.B)
fft_test.go:274
FunctionBenchmarkMulBig_500kb
(b *testing.B)
fft_test.go:272
FunctionBenchmarkMulBig_50Mb
(b *testing.B)
fft_test.go:278
FunctionBenchmarkMulBig_50kb
(b *testing.B)
fft_test.go:269
FunctionBenchmarkMulBig_5Mb
(b *testing.B)
fft_test.go:275
FunctionBenchmarkMulBig_5x20Mb
(b *testing.B)
fft_test.go:334
FunctionBenchmarkMulBig_5x50Mb
(b *testing.B)
fft_test.go:335
FunctionBenchmarkMulFFT_100Mb
(b *testing.B)
fft_test.go:293
FunctionBenchmarkMulFFT_100kb
(b *testing.B)
fft_test.go:284
FunctionBenchmarkMulFFT_10Mb
(b *testing.B)
fft_test.go:290
FunctionBenchmarkMulFFT_10kb
(b *testing.B)
fft_test.go:282
FunctionBenchmarkMulFFT_1Gb
(b *testing.B)
fft_test.go:296
FunctionBenchmarkMulFFT_1Mb
(b *testing.B)
fft_test.go:287
FunctionBenchmarkMulFFT_1kb
(b *testing.B)
fft_test.go:281
FunctionBenchmarkMulFFT_1x10Mb
(b *testing.B)
fft_test.go:338
FunctionBenchmarkMulFFT_1x20Mb
(b *testing.B)
fft_test.go:339
FunctionBenchmarkMulFFT_1x50Mb
(b *testing.B)
fft_test.go:340
FunctionBenchmarkMulFFT_1x5Mb
(b *testing.B)
fft_test.go:337
FunctionBenchmarkMulFFT_200Mb
(b *testing.B)
fft_test.go:294
FunctionBenchmarkMulFFT_200kb
(b *testing.B)
fft_test.go:285
FunctionBenchmarkMulFFT_20Mb
(b *testing.B)
fft_test.go:291
FunctionBenchmarkMulFFT_2Mb
(b *testing.B)
fft_test.go:288
FunctionBenchmarkMulFFT_500Mb
(b *testing.B)
fft_test.go:295
FunctionBenchmarkMulFFT_500kb
(b *testing.B)
fft_test.go:286
FunctionBenchmarkMulFFT_50Mb
(b *testing.B)
fft_test.go:292
FunctionBenchmarkMulFFT_50kb
(b *testing.B)
fft_test.go:283
FunctionBenchmarkMulFFT_5Mb
(b *testing.B)
fft_test.go:289
FunctionBenchmarkMulFFT_5x20Mb
(b *testing.B)
fft_test.go:341
FunctionBenchmarkMulFFT_5x50Mb
(b *testing.B)
fft_test.go:342
FunctionBenchmarkMul_100Mb
(b *testing.B)
fft_test.go:320
FunctionBenchmarkMul_100kb
(b *testing.B)
fft_test.go:311
FunctionBenchmarkMul_10Mb
(b *testing.B)
fft_test.go:317
FunctionBenchmarkMul_1Mb
(b *testing.B)
fft_test.go:314
FunctionBenchmarkMul_1x10Mb
(b *testing.B)
fft_test.go:324
FunctionBenchmarkMul_1x20Mb
(b *testing.B)
fft_test.go:325
FunctionBenchmarkMul_1x50Mb
(b *testing.B)
fft_test.go:326
FunctionBenchmarkMul_1x5Mb
Unbalanced multiplication benchmarks
fft_test.go:323
FunctionBenchmarkMul_200kb
(b *testing.B)
fft_test.go:312
FunctionBenchmarkMul_20Mb
(b *testing.B)
fft_test.go:318
FunctionBenchmarkMul_2Mb
(b *testing.B)
fft_test.go:315
FunctionBenchmarkMul_500kb
(b *testing.B)
fft_test.go:313
FunctionBenchmarkMul_50Mb
(b *testing.B)
fft_test.go:319
FunctionBenchmarkMul_50kb
(b *testing.B)
fft_test.go:310
FunctionBenchmarkMul_5Mb
(b *testing.B)
fft_test.go:316
next →1–100 of 136, ranked by callers