nil::crypto3::algebra::fields::field< ModulusBits > Struct Template Reference

#include <field.hpp>

+ Collaboration diagram for nil::crypto3::algebra::fields::field< ModulusBits >:

Public Types

typedef nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::cpp_int_backend< 16 *modulus_bits, 16 *modulus_bits, nil::crypto3::multiprecision::unsigned_magnitude, nil::crypto3::multiprecision::unchecked, void > > extended_integral_type
 
typedef nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::cpp_int_backend< modulus_bits, modulus_bits, nil::crypto3::multiprecision::unsigned_magnitude, nil::crypto3::multiprecision::unchecked, void > > integral_type
 
typedef nil::crypto3::multiprecision::backends::cpp_int_backend< modulus_bits, modulus_bits, nil::crypto3::multiprecision::signed_magnitude, nil::crypto3::multiprecision::unchecked, void > modular_backend
 
typedef nil::crypto3::multiprecision::modular_params< modular_backendmodular_params_type
 
typedef nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::modular_adaptor< modular_backend, nil::crypto3::multiprecision::backends::modular_params_rt< modular_backend > > > modular_type
 

Static Public Attributes

constexpr static const std::size_t modulus_bits = ModulusBits
 
constexpr static const std::size_t number_bits = ModulusBits
 

Detailed Description

template<std::size_t ModulusBits>
struct nil::crypto3::algebra::fields::field< ModulusBits >

Arithmetic in the finite field F[p], for prime p of fixed length.

This class implements Fp-arithmetic, for a large prime p, using a fixed number of words. It is optimized for tight memory consumption, so the modulus p is passed as a template parameter, to avoid per-element overheads.

Member Typedef Documentation

◆ extended_integral_type

template<std::size_t ModulusBits>
typedef nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::cpp_int_backend< 16 * modulus_bits, 16 * modulus_bits, nil::crypto3::multiprecision::unsigned_magnitude, nil::crypto3::multiprecision::unchecked, void> > nil::crypto3::algebra::fields::field< ModulusBits >::extended_integral_type

◆ integral_type

template<std::size_t ModulusBits>
typedef nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::cpp_int_backend< modulus_bits, modulus_bits, nil::crypto3::multiprecision::unsigned_magnitude, nil::crypto3::multiprecision::unchecked, void> > nil::crypto3::algebra::fields::field< ModulusBits >::integral_type

◆ modular_backend

template<std::size_t ModulusBits>
typedef nil::crypto3::multiprecision::backends::cpp_int_backend< modulus_bits, modulus_bits, nil::crypto3::multiprecision::signed_magnitude, nil::crypto3::multiprecision::unchecked, void> nil::crypto3::algebra::fields::field< ModulusBits >::modular_backend

◆ modular_params_type

template<std::size_t ModulusBits>
typedef nil::crypto3::multiprecision::modular_params<modular_backend> nil::crypto3::algebra::fields::field< ModulusBits >::modular_params_type

◆ modular_type

template<std::size_t ModulusBits>
typedef nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::modular_adaptor<modular_backend, nil::crypto3::multiprecision::backends::modular_params_rt<modular_backend> > > nil::crypto3::algebra::fields::field< ModulusBits >::modular_type

Member Data Documentation

◆ modulus_bits

template<std::size_t ModulusBits>
constexpr static const std::size_t nil::crypto3::algebra::fields::field< ModulusBits >::modulus_bits = ModulusBits
staticconstexpr

◆ number_bits

template<std::size_t ModulusBits>
constexpr static const std::size_t nil::crypto3::algebra::fields::field< ModulusBits >::number_bits = ModulusBits
staticconstexpr

The documentation for this struct was generated from the following file: