MCPcopy Create free account

hub / github.com/crate-crypto/go-ipa / functions

Functions304 in github.com/crate-crypto/go-ipa

↓ 199 callersMethodMul
API with assembly impl Mul z = x * y mod q see https://hackmd.io/@zkteam/modular_multiplication
bandersnatch/fr/element.go:288
↓ 72 callersMethodEqual
Equal returns z == x
bandersnatch/fr/element.go:170
↓ 59 callersMethodFromMont
FromMont converts z in place (i.e. mutates) from Montgomery to regular representation sets and returns z = z * 1
bandersnatch/fr/element.go:302
↓ 53 callersMethodSetUint64
SetUint64 z = v, sets z LSB to v (non-Montgomery form) and convert z to Montgomery form
bandersnatch/fr/element.go:92
↓ 47 callersMethodAdd
Add z = x + y mod q
bandersnatch/fr/element.go:308
↓ 43 callersMethodToBigIntRegular
ToBigIntRegular returns z as a big.Int in regular form
bandersnatch/fr/element.go:668
↓ 39 callersMethodCmp
Cmp compares (lexicographic order) z and x and returns: -1 if z < x 0 if z == x +1 if z > x
bandersnatch/fr/element.go:190
↓ 35 callersMethodAdd
Add sets p to p1+p2.
banderwagon/element.go:374
↓ 32 callersFunctionModulus
Modulus returns q as a big.Int q = 13108968793781547619861935127046491459309155893440570251786403306729687672801
bandersnatch/fr/element.go:61
↓ 32 callersMethodSetRandom
SetRandom sets z to a random element < q
bandersnatch/fr/element.go:238
↓ 29 callersMethodBytes
Bytes returns the compressed serialized version of the element.
banderwagon/element.go:44
↓ 29 callersFunctionmadd2
madd2 hi, lo = a*b + c + d
bandersnatch/fr/arith.go:42
↓ 28 callersMethodIsZero
IsZero returns z == 0
bandersnatch/fr/element.go:175
↓ 28 callersFunctionmsmProcessChunkPointAffine
(chunk uint64, chRes chan<- PointProj, buckets []PointProj, c uint64, points []PointAffine, scalars []fr.
bandersnatch/multiexp.go:391
↓ 27 callersMethodToBigInt
ToBigInt returns z as a big.Int in Montgomery form
bandersnatch/fr/element.go:657
↓ 24 callersFunctionOne
One returns 1 (in montgommery form)
bandersnatch/fr/element.go:263
↓ 23 callersMethodSquare
Square z = x * x mod q see https://hackmd.io/@zkteam/modular_multiplication
bandersnatch/fr/element.go:295
↓ 23 callersMethodSub
Sub z = x - y mod q
bandersnatch/fr/element.go:320
↓ 22 callersFunctionNewTranscript
(label string)
common/transcript.go:19
↓ 22 callersMethodSet
Set z = x
bandersnatch/fr/element.go:98
↓ 22 callersMethodSub
Sub sets p to p1-p2.
banderwagon/element.go:386
↓ 22 callersFunctiongen
()
bandersnatch/fr/element_test.go:1769
↓ 20 callersFunctionpartitionScalars
partitionScalars compute, for each scalars over c-bit wide windows, nbChunk digits if the digit is larger than 2^{c-1}, then, we borrow 2^c from the
bandersnatch/multiexp.go:57
↓ 19 callersMethodEqual
Equal returns true if p and other represent the same point.
banderwagon/element.go:322
↓ 19 callersMethodInverse
Inverse z = x^-1 mod q Algorithm 16 in "Efficient Software-Implementation of Finite Fields with Applications to Cryptography" if x == 0, sets and retu
bandersnatch/fr/element.go:931
↓ 18 callersMethodNeg
Neg z = q - x
bandersnatch/fr/element.go:326
↓ 17 callersMethodChallengeScalar
Computes a challenge based off of the state of the transcript Hash the transcript state, then reduce the hash modulo the size of the scalar field No
common/transcript.go:66
↓ 16 callersMethodWrite
Write serializes the IPA proof to the given writer.
ipa/prover.go:166
↓ 16 callersFunctiondegree
(p []fr.Element)
ipa/barycentric_test.go:414
↓ 15 callersFunctionOne
One returns the field element 1.
bandersnatch/fp/fp.go:14
↓ 15 callersFunctionmsmReduceChunkPointAffine
msmReduceChunkPointAffine reduces the weighted sum of the buckets into the result of the multiExp
bandersnatch/multiexp.go:357
↓ 14 callersMethodAppendScalar
Appends a Scalar to the transcript Converts the scalar to 32 bytes, then appends it to the state
common/transcript.go:40
↓ 14 callersMethodDouble
Double z = x + x mod q, aka Lsh 1
bandersnatch/fr/element.go:314
↓ 14 callersMethodExp
Exp z = x^exponent mod q
bandersnatch/fr/element.go:608
↓ 13 callersMethodAppendPoint
Appends a Point to the transcript Compresses the Point into a 32 byte slice, then appends it to the state
common/transcript.go:50
↓ 13 callersMethodSetBytes
SetBytes deserializes a compressed group element from buf. This method does all the proper checks assuming the bytes come from an untrusted source.
banderwagon/element.go:228
↓ 13 callersMethodbiggerOrEqualModulus
()
bandersnatch/fr/element_test.go:1744
↓ 12 callersMethodDiv
Div z = x*y^-1 mod q
bandersnatch/fr/element.go:152
↓ 12 callersFunctionZero
Zero returns 0 (in montgommery form) This is not strictly needed, as the default value for u64s is zero
bandersnatch/fr/element.go:278
↓ 11 callersMethodCommit
Commit calculates the Pedersen Commitment of a polynomial polynomial in evaluation form using the SRS.
ipa/config.go:63
↓ 11 callersMethodEqual
Equal checks if two IPA proofs are equal.
ipa/prover.go:214
↓ 11 callersMethodSetOne
SetOne z = 1 (in Montgomery form)
bandersnatch/fr/element.go:143
↓ 10 callersMethodDouble
Double sets p to 2*p1.
banderwagon/element.go:368
↓ 10 callersMethodSetString
SetString creates a big.Int with s (in base 10) and calls SetBigInt on z
bandersnatch/fr/element.go:814
↓ 9 callersMethodSet
Set sets p to p1.
banderwagon/element.go:419
↓ 9 callersMethodSetBytes
SetBytes interprets e as the bytes of a big-endian unsigned integer, sets z to that value (in Montgomery form), and returns z.
bandersnatch/fr/element.go:706
↓ 8 callersFunctionInnerProd
InnerProd computes the inner product of a and b.
ipa/config.go:76
↓ 8 callersFunctionTestPoly256
(polynomial ...uint64)
test_helper/poly.go:11
↓ 8 callersMethodevaluate
(point fr.Element)
ipa/barycentric_test.go:330
↓ 8 callersFunctionmadd0
madd0 hi = a*b + c (discards lo bits)
bandersnatch/fr/arith.go:24
↓ 7 callersMethodBytesLE
Bytes returns the regular (non montgomery) value of z as a little-endian byte array.
bandersnatch/fr/element.go:687
↓ 7 callersMethodDomainSep
(label []byte)
common/transcript.go:56
↓ 7 callersMethodNormalize
Normalize returns a point in affine form. If the point is at infinity, returns an error.
banderwagon/element.go:403
↓ 7 callersMethodScalarMul
ScalarMul sets p to p1*s.
banderwagon/element.go:433
↓ 7 callersMethodSetZero
SetZero z = 0
bandersnatch/fr/element.go:134
↓ 7 callersMethodSqrt
Sqrt z = √x mod q if the square root doesn't exist (x is not a square mod q) Sqrt leaves z unchanged and returns nil
bandersnatch/fr/element.go:863
↓ 6 callersFunctionCreateMultiProof
CreateMultiProof creates a multi-proof for several polynomials in evaluation form. The list of triplets (C, Fs, Z) represents each polynomial commitme
multiproof.go:54
↓ 6 callersFunctionMultiExpAffine
MultiExp implements section 4 of https://eprint.iacr.org/2012/549.pdf
bandersnatch/multiexp.go:175
↓ 6 callersMethodSetBigInt
SetBigInt sets z to v (regular form) and returns z in Montgomery form
bandersnatch/fr/element.go:762
↓ 6 callersFunctionZero
Zero returns the field element 0.
bandersnatch/fp/fp.go:19
↓ 6 callersFunctioncommit
commit commits to a polynomial using the input group elements
ipa/config.go:68
↓ 6 callersFunctionmadd1
madd1 hi, lo = a*b + c
bandersnatch/fr/arith.go:33
↓ 5 callersMethodBytes
Bytes returns the regular (non montgomery) value of z as a big-endian byte array.
bandersnatch/fr/element.go:675
↓ 5 callersFunctionCheckMultiProof
CheckMultiProof verifies a multi-proof for several polynomials in evaluation form. The list of triplets (C, Y, Z) represents each polynomial commitmen
multiproof.go:171
↓ 5 callersFunctionMultiExp
MultiExp implements section 4 of https://eprint.iacr.org/2012/549.pdf Note: We rely on this algortithm not use Equal functionality, since it is called
bandersnatch/multiexp.go:188
↓ 5 callersFunction_mulGeneric
Generic (no ADX instructions, no AMD64) versions of multiplication and squaring algorithms
bandersnatch/fr/element.go:333
↓ 4 callersFunctionBatchInvert
BatchInvert returns a new slice with every element inverted. Uses Montgomery batch inversion trick
bandersnatch/fr/element.go:555
↓ 4 callersFunctionBatchNormalize
BatchNormalize normalizes a slice of group elements.
banderwagon/element.go:81
↓ 4 callersFunctionCheckIPAProof
CheckIPAProof verifies an IPA proof for a committed polynomial in evaluation form. It verifies that `proof` is a valid proof for the polynomial at the
ipa/verifier.go:14
↓ 4 callersMethodComputeBarycentricCoefficients
ComputeBarycentricCoefficients, computes the coefficients `bary_coeffs` for a point `z` such that when we have a polynomial `p` in lagrange basis, the
ipa/barycentric.go:105
↓ 4 callersFunctionCreateIPAProof
CreateIPAProof creates an IPA proof for a committed polynomial in evaluation form. `a` are the evaluation of the polynomial in the domain, and `evalPo
ipa/prover.go:58
↓ 4 callersFunctionExecute
Execute process in parallel the work function
common/parallel/execute.go:23
↓ 4 callersFunctionGetEdwardsCurve
()
bandersnatch/multiexp_test.go:720
↓ 4 callersMethodLexicographicallyLargest
LexicographicallyLargest returns true if this element is strictly lexicographically larger than its negation, false otherwise
bandersnatch/fr/element.go:220
↓ 4 callersFunctionMinusOne
One returns 1 (in montgommery form)
bandersnatch/fr/element.go:270
↓ 4 callersFunctionNewPrecompMSM
NewPrecompMSM creates a new MSMPrecomp.
banderwagon/precomp.go:35
↓ 4 callersMethodSetBytesUncompressed
SetBytesUncompressed deserializes an uncompressed group element from buf. This method does all the proper checks assuming the bytes come from an untru
banderwagon/element.go:241
↓ 4 callersFunction_addGeneric
(z, x, y *Element)
bandersnatch/fr/element.go:452
↓ 4 callersFunction_subGeneric
(z, x, y *Element)
bandersnatch/fr/element.go:490
↓ 4 callersFunctiondomainToFr
(in uint8)
multiproof.go:258
↓ 4 callersMethodinterpolate
(t *testing.T)
ipa/barycentric_test.go:340
↓ 4 callersFunctionmadd3
(a, b, c, d, e uint64)
bandersnatch/fr/arith.go:52
↓ 4 callersFunctionmsmC16
(p *PointProj,points []PointAffine, scalars []fr.Element, splitFirstChunk bool)
bandersnatch/multiexp.go:1086
↓ 4 callersFunctionmulByConstant
(z *Element, c uint8)
bandersnatch/fr/element.go:530
↓ 3 callersFunctionBatchInvert
BatchInvert computes the inverse of a slice of field elements.
bandersnatch/fp/fp.go:36
↓ 3 callersFunctionGetPointFromX
(x *fp.Element, choose_largest bool)
bandersnatch/bandersnatch.go:60
↓ 3 callersMethodIsUint64
IsUint64 returns true if z[0] >= 0 and all other words are 0
bandersnatch/fr/element.go:180
↓ 3 callersMethodMSM
MSM calculates the 256-MSM of the given scalars on the fixed basis. It automatically detects how many non-zero scalars there are and parallelizes the
banderwagon/precomp.go:63
↓ 3 callersFunctionMultiScalar
MultiScalar computes the multi scalar multiplication of points and scalars.
ipa/config.go:49
↓ 3 callersMethodNeg
Neg sets p to -p1.
banderwagon/element.go:427
↓ 3 callersFunctionNewPrecomputedWeights
NewPrecomputedWeights generates the precomputed weights for the barycentric formula.
ipa/barycentric.go:25
↓ 3 callersFunctionPowersOf
Returns powers of x from 0 to degree-1 <1, x, x^2, x^3, x^4,...,x^(degree-1)> TODO This method is used in two places; one is to evaluate a polynomial
common/common.go:21
↓ 3 callersFunctionReadPoint
(r io.Reader)
common/common.go:32
↓ 3 callersFunctionScalarEqualHex
(t *testing.T, scalar fr.Element, expected string)
test_helper/poly.go:36
↓ 3 callersMethodSetBytesLE
SetBytes interprets e as the bytes of a little-endian unsigned integer, sets z to that value (in Montgomery form), and returns z.
bandersnatch/fr/element.go:722
↓ 3 callersMethodString
String returns the string form of an Element in Montgomery form
bandersnatch/fr/element.go:638
↓ 3 callersMethodToMont
ToMont converts z to Montgomery form sets and returns z = z * r^2
bandersnatch/fr/element.go:628
↓ 3 callersFunction_doubleGeneric
(z, x *Element)
bandersnatch/fr/element.go:471
↓ 3 callersFunction_negGeneric
(z, x *Element)
bandersnatch/fr/element.go:505
↓ 3 callersFunction_reduceGeneric
(z *Element)
bandersnatch/fr/element.go:517
next →1–100 of 304, ranked by callers