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::octave_int_cmp_op::prom< T1, T2 >
class  octave_int_cmp_op::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 octave_inttypes_h   1
#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 >
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 >
bool xisnan (const octave_int< T > &)
template<class T >
OCTAVE_API octave_int< Tpow (const octave_int< T > &, const octave_int< T > &)
template<class T >
OCTAVE_API octave_int< Tpow (const double &a, const octave_int< T > &b)
template<class T >
OCTAVE_API octave_int< Tpow (const octave_int< T > &a, const double &b)
template<class T >
OCTAVE_API octave_int< Tpowf (const float &a, const octave_int< T > &b)
template<class T >
OCTAVE_API octave_int< Tpowf (const octave_int< T > &a, const float &b)
template<class T >
std::ostreamoperator<< (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< Tbitshift (const octave_int< T > &a, int n, const octave_int< T > &mask=std::numeric_limits< T >::max())

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 octave_inttypes_h   1

#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 () 
) [inline]

template<class T >
T octave_int_abs ( T  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 > &  a,
const double b 
) [inline]

template<class T >
OCTAVE_API octave_int<T> pow ( const double a,
const octave_int< T > &  b 
) [inline]

template<class T >
OCTAVE_API octave_int<T> pow ( const octave_int< T > &  ,
const octave_int< T > &   
) [inline]

template<class T >
OCTAVE_API octave_int<T> powf ( const octave_int< T > &  a,
const float b 
) [inline]

template<class T >
OCTAVE_API octave_int<T> powf ( const float a,
const octave_int< T > &  b 
) [inline]

REGISTER_INT_TYPE ( uint64_t   ) 

REGISTER_INT_TYPE ( int64_t   ) 

REGISTER_INT_TYPE ( uint32_t   ) 

REGISTER_INT_TYPE ( int32_t   ) 

REGISTER_INT_TYPE ( uint16_t   ) 

REGISTER_INT_TYPE ( int16_t   ) 

REGISTER_INT_TYPE ( uint8_t   ) 

REGISTER_INT_TYPE ( int8_t   ) 

template<class T >
bool xisnan ( const octave_int< T > &   )  [inline]