GNU Octave  4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Macros | Functions
gcd.cc File Reference
#include "dNDArray.h"
#include "CNDArray.h"
#include "fNDArray.h"
#include "fCNDArray.h"
#include "lo-mappers.h"
#include "oct-binmap.h"
#include "defun.h"
#include "error.h"
#include "oct-obj.h"
Include dependency graph for gcd.cc:

Go to the source code of this file.

Macros

#define MAKE_INT_BRANCH(X)
 
#define MAKE_INT_BRANCH(X)
 

Functions

template<typename FP >
static void divide (const std::complex< FP > &a, const std::complex< FP > &b, std::complex< FP > &q, std::complex< FP > &r)
 
template<class NDA >
static octave_value do_extended_gcd (const octave_value &a, const octave_value &b, octave_value &x, octave_value &y)
 
template<class NDA >
static octave_value do_simple_gcd (const octave_value &a, const octave_value &b)
 
static double extended_gcd (double a, double b, double &x, double &y)
 
template<typename FP >
static std::complex< FP > extended_gcd (const std::complex< FP > &a, const std::complex< FP > &b, std::complex< FP > &x, std::complex< FP > &y)
 
template<class T >
static octave_int< T > extended_gcd (const octave_int< T > &a, const octave_int< T > &b, octave_int< T > &x, octave_int< T > &y)
 
OCTAVE_EXPORT octave_value_list Fgcd (const octave_value_list &args, int nargout)
 
static double simple_gcd (double a, double b)
 
template<typename FP >
static std::complex< FP > simple_gcd (const std::complex< FP > &a, const std::complex< FP > &b)
 
template<class T >
static octave_int< T > simple_gcd (const octave_int< T > &a, const octave_int< T > &b)
 

Macro Definition Documentation

#define MAKE_INT_BRANCH (   X)
Value:
case btyp_ ## X: \
retval = do_simple_gcd<X ## NDArray> (a, b); \
break
#define MAKE_INT_BRANCH (   X)
Value:
case btyp_ ## X: \
retval = do_extended_gcd<X ## NDArray> (a, b, x, y); \
break
F77_RET_T const double * x

Function Documentation

template<typename FP >
static void divide ( const std::complex< FP > &  a,
const std::complex< FP > &  b,
std::complex< FP > &  q,
std::complex< FP > &  r 
)
static

Definition at line 64 of file gcd.cc.

References floor(), imag(), and real().

Referenced by extended_gcd(), and simple_gcd().

template<class NDA >
static octave_value do_extended_gcd ( const octave_value a,
const octave_value b,
octave_value x,
octave_value y 
)
static

Definition at line 318 of file gcd.cc.

References octave_value::dims(), extended_gcd(), gripe_nonconformant(), and octave_value::is_scalar_type().

Referenced by Fgcd().

template<class NDA >
static octave_value do_simple_gcd ( const octave_value a,
const octave_value b 
)
static

Definition at line 238 of file gcd.cc.

References octave_value::is_scalar_type(), and simple_gcd().

Referenced by Fgcd().

static double extended_gcd ( double  a,
double  b,
double x,
double y 
)
static

Definition at line 119 of file gcd.cc.

References floor(), and xisinteger().

Referenced by do_extended_gcd().

template<typename FP >
static std::complex<FP> extended_gcd ( const std::complex< FP > &  a,
const std::complex< FP > &  b,
std::complex< FP > &  x,
std::complex< FP > &  y 
)
static

Definition at line 157 of file gcd.cc.

References abs(), divide(), and xisinteger().

template<class T >
static octave_int<T> extended_gcd ( const octave_int< T > &  a,
const octave_int< T > &  b,
octave_int< T > &  x,
octave_int< T > &  y 
)
static

Definition at line 205 of file gcd.cc.

References octave_int< T >::abs(), and octave_int< T >::signum().

OCTAVE_EXPORT octave_value_list Fgcd ( const octave_value_list args,
int  nargout 
)
static double simple_gcd ( double  a,
double  b 
)
static

Definition at line 40 of file gcd.cc.

References xisinteger().

Referenced by do_simple_gcd().

template<typename FP >
static std::complex<FP> simple_gcd ( const std::complex< FP > &  a,
const std::complex< FP > &  b 
)
static

Definition at line 77 of file gcd.cc.

References abs(), divide(), and xisinteger().

template<class T >
static octave_int<T> simple_gcd ( const octave_int< T > &  a,
const octave_int< T > &  b 
)
static

Definition at line 103 of file gcd.cc.

References octave_int< T >::abs().