gcd.hpp File Reference

#include "config.hpp"
#include "type_traits.hpp"
#include "factory.hpp"
#include "cmp.hpp"
#include "vector.hpp"
#include "std_import.hpp"
#include "gcd.cpp"

Go to the source code of this file.

Namespaces

namespace  Arageli

The Euclidean algorithm.

template<typename T, typename T_factory>
Arageli::euclid (T a, T b, const T_factory &tfctr)
 Processes the Euclidean algorithm on a and b.
template<typename T>
Arageli::euclid (const T &a, const T &b)
 Processes the Euclidean algorithm on a and b.
template<typename T, typename T_factory>
Arageli::euclid_binary (T a, T b, const T_factory &tfctr)
 Processes the Euclidean algorithm on a and b.
template<typename T>
Arageli::euclid_binary (const T &a, const T &b)
 Processes the Euclidean algorithm on a and b.
template<typename T, bool REFCNT, typename T_factory, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::euclid (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b, const T_factory &tfctr)
 Computes Euclidean algorithm for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::euclid (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b)
 Computes Euclidean algorithm for each corresponding pair of a and b.
template<typename T, typename T_factory>
Arageli::euclid_bezout (const T &a, const T &b, T &u, T &v, const T_factory &tfctr)
 The greatest common divisor and Bezout's coefficients.
template<typename T>
Arageli::euclid_bezout (const T &a, const T &b, T &u, T &v)
 The greatest common divisor and Bezout's coefficients.

The GCD and LCM algorithms.

template<typename T, typename T_factory>
Arageli::gcd (const T &a, const T &b, const T_factory &tfctr, const type_category::type &)
template<typename T, typename T_factory>
Arageli::gcd (const T &a, const T &b, const T_factory &tfctr, const type_category::integer &)
template<typename T, typename T_factory>
Arageli::gcd (const T &a, const T &b, const T_factory &tfctr)
 Computes GCD for a and b.
template<typename T>
Arageli::gcd (const T &a, const T &b)
 Computes GCD for a and b.
template<typename T1, typename T2>
T1 Arageli::gcd (const T1 &a, const T2 &b)
 Computes GCD for a and b.
template<typename T, bool REFCNT, typename T_factory>
Arageli::gcd (const vector< T, REFCNT > &x, const T_factory &tfctr)
 Computes GCD for all items of vector 'x'.
template<typename T, bool REFCNT>
Arageli::gcd (const vector< T, REFCNT > &x)
 Computes GCD for all items of vector 'x'.
template<typename T>
Arageli::gcd3 (const T &a, const T &b, const T &c)
 Compute GCD(a, b, c).
template<typename T>
Arageli::gcdex (const T &a, const T &b, T &u, T &v, T &w, T &z)
 Extended GCD; abs(u*z - w*v) == 1; a*w + b*z == 0.
template<typename T>
Arageli::gcdex (const T &a, const T &b, const T &N, T &u, T &v, T &w, T &z)
template<typename T, bool REFCNT, typename T_factory, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::gcd_vec (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b, const T_factory &tfctr)
 Computes GCD for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T_factory, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::gcd (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b, const T_factory &tfctr)
 Computes GCD for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T_factory>
vector< T, REFCNT > Arageli::gcd (const vector< T, REFCNT > &a, const vector< T, REFCNT > &b, const T_factory &tfctr)
 Computes GCD for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::gcd (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b)
 Computes GCD for each corresponding pair of a and b.
template<typename T, bool REFCNT>
vector< T, REFCNT > Arageli::gcd (const vector< T, REFCNT > &a, const vector< T, REFCNT > &b)
 Computes GCD for each corresponding pair of a and b.
template<typename T, typename T_factory>
Arageli::lcm (const T &a, const T &b, const T_factory &tfctr)
 Computes LCM for a and b.
template<typename T>
Arageli::lcm (const T &a, const T &b)
 Computes LCM for a and b.
template<typename T, bool REFCNT, typename T_factory>
Arageli::lcm (const vector< T, REFCNT > &x, const T_factory &tfctr)
 Computes LCM for all items of vector 'x'.
template<typename T, bool REFCNT>
Arageli::lcm (const vector< T, REFCNT > &x)
 Computes LCM for all items of vector 'x'.
template<typename T, bool REFCNT, typename T_factory, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::lcm_vec (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b, const T_factory &tfctr)
 Computes LCM for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T_factory, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::lcm (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b, const T_factory &tfctr)
 Computes LCM for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T_factory>
vector< T, REFCNT > Arageli::lcm (const vector< T, REFCNT > &a, const vector< T, REFCNT > &b, const T_factory &tfctr)
 Computes LCM for each corresponding pair of a and b.
template<typename T, bool REFCNT, typename T1, bool REFCNT1>
vector< T, REFCNT > Arageli::lcm (const vector< T, REFCNT > &a, const vector< T1, REFCNT1 > &b)
 Computes LCM for each corresponding pair of a and b.
template<typename T, bool REFCNT>
vector< T, REFCNT > Arageli::lcm (const vector< T, REFCNT > &a, const vector< T, REFCNT > &b)

A test for relative primality.

template<typename T, typename T_factory>
bool Arageli::is_coprime (const T &a, const T &b, const T_factory &tfctr)
 Returns true if two objects are coprime.
template<typename T>
bool Arageli::is_coprime (const T &a, const T &b)
 Returns true if two objects are coprime.
template<typename T, bool REFCNT, typename T_factory>
bool Arageli::is_coprime (const vector< T, REFCNT > &x, const T_factory &tfctr)
 Returns true if all objects in the vector are coprime.
template<typename T, bool REFCNT>
bool Arageli::is_coprime (const vector< T, REFCNT > &x)
 Returns true if all objects in the vector are coprime.

Defines

#define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_GCD


Define Documentation

#define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_GCD

Definition at line 333 of file gcd.hpp.


Generated on Thu Aug 31 17:38:17 2006 for Arageli by  doxygen 1.4.7