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... | |