Module algebra

Module algebra 

Source
Expand description

Provides traits for algebraic operations.

These traits are designed to lean on the existing Rust operations in std::ops, so that the familiar +, +=, etc. operators can be used. The traits are also designed with performant implementations in mind, so implementations try to use methods which don’t require copying unnecessarily.

Traits§

Additive
A type that supports addition, subtraction, and negation.
CryptoGroup
A group suitable for use in cryptography.
Field
An instance of a mathematical Field.
HashToGroup
A CryptoGroup which supports obliviously sampling elements.
Multiplicative
A type that supports multiplication.
Object
A basic trait we expect algebraic data structures to implement.
Random
A trait for objects that can be randomly sampled.
Ring
An instance of a mathematical Ring.
Space
A type which implements Additive, and supports scaling by some other type.

Functions§

msm_naive
A naive implementation of Space::msm.