xgcd.hpp File Reference
#include <algorithm>
#include <vector>
#include <boost/math/tools/polynomial_gcd.hpp>
#include <boost/integer/extended_euclidean.hpp>
#include <nil/crypto3/math/polynomial/basic_operations.hpp>
+ Include dependency graph for xgcd.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 nil
 
 nil::crypto3
 
 nil::crypto3::math
 

Functions

template<typename Range1 , typename Range2 , typename Range3 , typename Range4 , typename Range5 >
void nil::crypto3::math::extended_euclidean (const Range1 &a, const Range2 &b, Range3 &g, Range4 &u, Range5 &v)
 Perform the standard Extended Euclidean Division algorithm. Input: Polynomial A, Polynomial B. Output: Polynomial G, Polynomial U, Polynomial V, such that G = (A * U) + (B * V). More...