Navigation

Operators and Keywords

Function List:

C++ API

oct-inttypes.h File Reference

#include <climits>
#include <cstdlib>
#include <limits>
#include <iosfwd>
#include "lo-traits.h"
#include "lo-math.h"
#include "lo-mappers.h"
Include dependency graph for oct-inttypes.h:

Go to the source code of this file.

Classes

struct  query_integer_type< qsize, qsigned >
class  octave_int_cmp_op
class  octave_int_cmp_op::prom< T1, T2 >
class  octave_int_cmp_op::uiop< xop, size >
class  octave_int_base< T >
class  octave_int_arith_base< T, is_signed >
class  octave_int_arith_base< T, false >
class  octave_int_arith_base< T, true >
class  octave_int_arith< T >
class  octave_int< T >

Defines

#define REGISTER_INT_TYPE(TYPE)
#define REGISTER_OCTAVE_CMP_OP(NM, OP)
#define REGISTER_OCTAVE_CONST_OP(NM, value)
#define DEFINE_LONG_DOUBLE_CMP_OP(T1, T2)
#define OCTAVE_INT_UN_OP(OPNAME, NAME)
#define OCTAVE_INT_BIN_OP(OP, NAME, ARGT)
#define OCTAVE_INT_CMP_OP(OP, NAME)
#define OCTAVE_INT_BITCMP_OP(OP)
#define OCTAVE_INT_DOUBLE_BIN_OP0(OP)
#define OCTAVE_INT_DOUBLE_BIN_OP(OP)
#define OCTAVE_INT_DOUBLE_CMP_OP(OP, NAME)
#define OCTAVE_INT_FLOAT_BIN_OP(OP)
#define OCTAVE_INT_FLOAT_CMP_OP(OP)

Typedefs

typedef octave_int< int8_t > octave_int8
typedef octave_int< int16_t > octave_int16
typedef octave_int< int32_t > octave_int32
typedef octave_int< int64_t > octave_int64
typedef octave_int< uint8_t > octave_uint8
typedef octave_int< uint16_t > octave_uint16
typedef octave_int< uint32_t > octave_uint32
typedef octave_int< uint64_t > octave_uint64

Functions

template<class T >
octave_int_abs (T x)
 REGISTER_INT_TYPE (int8_t)
 REGISTER_INT_TYPE (uint8_t)
 REGISTER_INT_TYPE (int16_t)
 REGISTER_INT_TYPE (uint16_t)
 REGISTER_INT_TYPE (int32_t)
 REGISTER_INT_TYPE (uint32_t)
 REGISTER_INT_TYPE (int64_t)
 REGISTER_INT_TYPE (uint64_t)
template<class T >
octave_int< T > rem (const octave_int< T > &x, const octave_int< T > &y)
template<class T >
octave_int< T > mod (const octave_int< T > &x, const octave_int< T > &y)
template<class T >
bool xisnan (const octave_int< T > &)
template<class T >
OCTAVE_API octave_int< T > pow (const octave_int< T > &, const octave_int< T > &)
template<class T >
OCTAVE_API octave_int< T > pow (const double &a, const octave_int< T > &b)
template<class T >
OCTAVE_API octave_int< T > pow (const octave_int< T > &a, const double &b)
template<class T >
OCTAVE_API octave_int< T > powf (const float &a, const octave_int< T > &b)
template<class T >
OCTAVE_API octave_int< T > powf (const octave_int< T > &a, const float &b)
template<class T >
std::ostream & operator<< (std::ostream &os, const octave_int< T > &ival)
template<class T >
std::istream & operator>> (std::istream &is, octave_int< T > &ival)
template<class T >
octave_int< T > bitshift (const octave_int< T > &a, int n, const octave_int< T > &mask=std::numeric_limits< T >::max())
template<class T >
octave_int< T > xmax (const octave_int< T > &x, const octave_int< T > &y)
template<class T >
octave_int< T > xmin (const octave_int< T > &x, const octave_int< T > &y)

Define Documentation

#define DEFINE_LONG_DOUBLE_CMP_OP (   T1,
  T2 
)
Value:
template <class xop> static OCTAVE_API bool \
  emulate_mop (T1, T2); \
  template <class xop> \
  static bool \
  mop (T1 x, T2 y) \
    { \
      return emulate_mop<xop> (x, y); \
    }
#define OCTAVE_INT_BIN_OP (   OP,
  NAME,
  ARGT 
)
Value:
inline octave_int<T> \
  operator OP (const ARGT& y) const \
  { return octave_int_arith<T>::NAME (ival, y); } \
  inline octave_int<T>& \
  operator OP##= (const ARGT& y) \
  { \
    ival = octave_int_arith<T>::NAME (ival, y); \
    return *this; \
  }
#define OCTAVE_INT_BITCMP_OP (   OP  ) 
Value:
template <class T> \
  octave_int<T> \
  operator OP (const octave_int<T>& x, const octave_int<T>& y) \
  { return x.value () OP y.value (); }
#define OCTAVE_INT_CMP_OP (   OP,
  NAME 
)
Value:
template<class T1, class T2> \
  inline bool \
  operator OP (const octave_int<T1>& x, const octave_int<T2>& y) \
  { return octave_int_cmp_op::op<octave_int_cmp_op::NAME, T1, T2> \
    (x.value (), y.value ()); }
#define OCTAVE_INT_DOUBLE_BIN_OP (   OP  ) 
Value:
OCTAVE_INT_DOUBLE_BIN_OP0(OP) \
  template <> \
  OCTAVE_API octave_int64 \
  operator OP (const double&, const octave_int64&); \
  template <> \
  OCTAVE_API octave_uint64 \
  operator OP (const double&, const octave_uint64&); \
  template <> \
  OCTAVE_API octave_int64 \
  operator OP (const octave_int64&, const double&); \
  template <> \
  OCTAVE_API octave_uint64 \
  operator OP (const octave_uint64&, const double&);
#define OCTAVE_INT_DOUBLE_BIN_OP0 (   OP  ) 
Value:
template <class T> \
  inline octave_int<T> \
  operator OP (const octave_int<T>& x, const double& y) \
  { return octave_int<T> (static_cast<double> (x) OP y); } \
  template <class T> \
  inline octave_int<T> \
  operator OP (const double& x, const octave_int<T>& y) \
  { return octave_int<T> (x OP static_cast<double> (y)); } \
#define OCTAVE_INT_DOUBLE_CMP_OP (   OP,
  NAME 
)
Value:
template <class T> \
  inline bool \
  operator OP (const octave_int<T>& x, const double& y) \
  { return octave_int_cmp_op::mop<octave_int_cmp_op::NAME> (x.value (), y); } \
  template <class T> \
  inline bool \
  operator OP (const double& x, const octave_int<T>& y) \
  { return octave_int_cmp_op::mop<octave_int_cmp_op::NAME> (x, y.value ()); }
#define OCTAVE_INT_FLOAT_BIN_OP (   OP  ) 
Value:
template <class T> \
  inline octave_int<T> \
  operator OP (const octave_int<T>& x, float y) \
  { return x OP static_cast<double> (y); } \
  template <class T> \
  inline octave_int<T> \
  operator OP (float x, const octave_int<T>& y) \
  { return static_cast<double> (x) OP y; }
#define OCTAVE_INT_FLOAT_CMP_OP (   OP  ) 
Value:
template <class T> \
  inline bool \
  operator OP (const octave_int<T>& x, const float& y) \
  { return x OP static_cast<double> (y); } \
  template <class T> \
  bool \
  operator OP (const float& x, const octave_int<T>& y) \
  { return static_cast<double> (x) OP y; }
#define OCTAVE_INT_UN_OP (   OPNAME,
  NAME 
)
Value:
inline octave_int<T> \
  OPNAME () const \
  { return octave_int_arith<T>::NAME (ival); }
#define REGISTER_INT_TYPE (   TYPE  ) 
Value:
template <> \
class query_integer_type<sizeof (TYPE), std::numeric_limits<TYPE>::is_signed> \
{ \
public: \
  static const bool registered = true; \
  typedef TYPE type; \
}
#define REGISTER_OCTAVE_CMP_OP (   NM,
  OP 
)
Value:
class NM \
    { \
    public: \
      static const bool ltval = (0 OP 1), gtval = (1 OP 0); \
      template <class T> \
      static bool op (T x, T y) { return x OP y; } \
    }
#define REGISTER_OCTAVE_CONST_OP (   NM,
  value 
)
Value:
class NM \
    { \
    public: \
      static const bool ltval = value, gtval = value; \
      template <class T> \
      static bool op (T, T) { return value; } \
    }

Typedef Documentation

typedef octave_int<int16_t> octave_int16
typedef octave_int<int32_t> octave_int32
typedef octave_int<int64_t> octave_int64
typedef octave_int<int8_t> octave_int8
typedef octave_int<uint16_t> octave_uint16
typedef octave_int<uint32_t> octave_uint32
typedef octave_int<uint64_t> octave_uint64
typedef octave_int<uint8_t> octave_uint8

Function Documentation

template<class T >
octave_int<T> bitshift ( const octave_int< T > &  a,
int  n,
const octave_int< T > &  mask = std::numeric_limits<T>::max () 
)
template<class T >
octave_int<T> mod ( const octave_int< T > &  x,
const octave_int< T > &  y 
) [inline]
template<class T >
T octave_int_abs ( x  )  [inline]
template<class T >
std::ostream& operator<< ( std::ostream &  os,
const octave_int< T > &  ival 
) [inline]
template<class T >
std::istream& operator>> ( std::istream &  is,
octave_int< T > &  ival 
) [inline]
template<class T >
OCTAVE_API octave_int<T> pow ( const octave_int< T > &  ,
const octave_int< T > &   
)
template<class T >
OCTAVE_API octave_int<T> pow ( const double &  a,
const octave_int< T > &  b 
)
template<class T >
OCTAVE_API octave_int<T> pow ( const octave_int< T > &  a,
const double &  b 
)
template<class T >
OCTAVE_API octave_int<T> powf ( const octave_int< T > &  a,
const float &  b 
)
template<class T >
OCTAVE_API octave_int<T> powf ( const float &  a,
const octave_int< T > &  b 
)
REGISTER_INT_TYPE ( uint32_t   ) 
REGISTER_INT_TYPE ( int64_t   ) 
REGISTER_INT_TYPE ( uint16_t   ) 
REGISTER_INT_TYPE ( uint64_t   ) 
REGISTER_INT_TYPE ( int8_t   ) 
REGISTER_INT_TYPE ( uint8_t   ) 
REGISTER_INT_TYPE ( int16_t   ) 
REGISTER_INT_TYPE ( int32_t   ) 
template<class T >
octave_int<T> rem ( const octave_int< T > &  x,
const octave_int< T > &  y 
) [inline]
template<class T >
bool xisnan ( const octave_int< T > &   )  [inline]
template<class T >
octave_int<T> xmax ( const octave_int< T > &  x,
const octave_int< T > &  y 
)
template<class T >
octave_int<T> xmin ( const octave_int< T > &  x,
const octave_int< T > &  y 
)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines