Documentation
¶
Index ¶
- func MultiScalarMulLowLevel[PP GroupElementPtrLowLevel[PP, P], P any](out *P, points []*P, scalars [][]byte)
- func ScalarMulLowLevel[PP GroupElementPtrLowLevel[PP, P], P any](out, pp *P, s []byte)
- type FiniteFieldElementLowLevel
- type FiniteFieldElementPtrLowLevel
- type FiniteGroupElementLowLevel
- type FiniteGroupElementPtrLowLevel
- type GroupElementLowLevel
- type GroupElementPtrLowLevel
- type MonoidElementLowLevel
- type MonoidElementPtrLowLevel
- type PrimeFieldElementLowLevel
- type PrimeFieldElementPtrLowLevel
- type RingElementLowLevel
- type RingElementPtrLowLevel
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MultiScalarMulLowLevel ¶
func MultiScalarMulLowLevel[PP GroupElementPtrLowLevel[PP, P], P any]( out *P, points []*P, scalars [][]byte, )
MultiScalarMulLowLevel performs a Pippenger-style multi-scalar multiplication:
sum_i scalars[i] * points[i]
using a fixed window size w.
It assumes S.Bytes() is little-endian (LSB at index 0).
func ScalarMulLowLevel ¶
func ScalarMulLowLevel[PP GroupElementPtrLowLevel[PP, P], P any](out, pp *P, s []byte)
Types ¶
type FiniteFieldElementLowLevel ¶
type FiniteFieldElementLowLevel[E finiteFieldElementLowLevel[E]] finiteFieldElementLowLevel[E]
type FiniteFieldElementPtrLowLevel ¶
type FiniteFieldElementPtrLowLevel[E FiniteFieldElementLowLevel[E], T any] interface { *T FiniteFieldElementLowLevel[E] }
type FiniteGroupElementLowLevel ¶
type FiniteGroupElementLowLevel[E finiteGroupElementLowLevel[E]] finiteGroupElementLowLevel[E]
type FiniteGroupElementPtrLowLevel ¶
type FiniteGroupElementPtrLowLevel[E FiniteGroupElementLowLevel[E], T any] interface { *T FiniteGroupElementLowLevel[E] }
type GroupElementLowLevel ¶
type GroupElementLowLevel[E groupElementLowLevel[E]] groupElementLowLevel[E]
type GroupElementPtrLowLevel ¶
type GroupElementPtrLowLevel[E GroupElementLowLevel[E], T any] interface { *T GroupElementLowLevel[E] }
type MonoidElementLowLevel ¶
type MonoidElementLowLevel[E monoidElementLowLevel[E]] monoidElementLowLevel[E]
type MonoidElementPtrLowLevel ¶
type MonoidElementPtrLowLevel[E MonoidElementLowLevel[E], T any] interface { *T MonoidElementLowLevel[E] }
type PrimeFieldElementLowLevel ¶
type PrimeFieldElementLowLevel[E primeFieldElementLowLevel[E]] primeFieldElementLowLevel[E]
type PrimeFieldElementPtrLowLevel ¶
type PrimeFieldElementPtrLowLevel[E PrimeFieldElementLowLevel[E], T any] interface { *T PrimeFieldElementLowLevel[E] }
type RingElementLowLevel ¶
type RingElementLowLevel[E ringElementLowLevel[E]] ringElementLowLevel[E]
type RingElementPtrLowLevel ¶
type RingElementPtrLowLevel[E RingElementLowLevel[E], T any] interface { *T RingElementLowLevel[E] }
Directories
¶
| Path | Synopsis |
|---|---|
|
Package fields provides low-level field element traits used by generated finite field implementations.
|
Package fields provides low-level field element traits used by generated finite field implementations. |
Click to show internal directories.
Click to hide internal directories.