nil::crypto3::math::polynomial Namespace Reference

Functions

template<typename FieldType >
void kronecker_substitution (std::vector< typename FieldType::value_type > &v3, const std::vector< typename FieldType::value_type > &v1, const std::vector< typename FieldType::value_type > &v2)
 Given two polynomial vectors, A and B, the function performs polynomial multiplication and returns the resulting polynomial vector. The implementation makes use of [Harvey 07, Multipoint Kronecker Substitution, Section 2.1] and [Gathen and Gerhard, Modern Computer Algebra 3rd Ed., Section 8.4]. More...
 
template<typename FieldType >
void multiplication_on_kronecker (std::vector< typename FieldType::value_type > &c, const std::vector< typename FieldType::value_type > &a, const std::vector< typename FieldType::value_type > &b)
 

Function Documentation

◆ kronecker_substitution()

template<typename FieldType >
void nil::crypto3::math::polynomial::kronecker_substitution ( std::vector< typename FieldType::value_type > &  v3,
const std::vector< typename FieldType::value_type > &  v1,
const std::vector< typename FieldType::value_type > &  v2 
)

Given two polynomial vectors, A and B, the function performs polynomial multiplication and returns the resulting polynomial vector. The implementation makes use of [Harvey 07, Multipoint Kronecker Substitution, Section 2.1] and [Gathen and Gerhard, Modern Computer Algebra 3rd Ed., Section 8.4].

◆ multiplication_on_kronecker()

template<typename FieldType >
void nil::crypto3::math::polynomial::multiplication_on_kronecker ( std::vector< typename FieldType::value_type > &  c,
const std::vector< typename FieldType::value_type > &  a,
const std::vector< typename FieldType::value_type > &  b 
)

Perform the multiplication of two polynomials, polynomial A * polynomial B, using Kronecker Substitution, and stores result in polynomial C.