メインページ   クラス階層   構成   ファイル一覧   構成メンバ   ファイルメンバ  

mx-inlines.cc の解説

#include <cstddef>
#include "oct-cmplx.h"

mx-inlines.ccのインクルード依存関係図

Include dependency graph

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

Included by dependency graph

ソースコードを見る。

マクロ定義

#define octave_mx_inlines_h   1
#define VS_OP_FCN(F, OP)
#define VS_OP(F, OP, R, V, S)
#define VS_OPS(R, V, S)
#define SV_OP_FCN(F, OP)
#define SV_OP(F, OP, R, S, V)
#define SV_OPS(R, S, V)
#define VV_OP_FCN(F, OP)
#define VV_OP(F, OP, R, T1, T2)
#define VV_OPS(R, T1, T2)
#define VS_OP2(F, OP, V, S)
#define VS_OP2S(V, S)
#define VV_OP2(F, OP, T1, T2)
#define VV_OP2S(T1, T2)
#define OP_EQ_FCN(T1, T2)
#define OP_DUP_FCN(OP, F, R, T)
#define MX_CUMULATIVE_OP(RET_TYPE, ELT_TYPE, OP)
#define MX_BASE_REDUCTION_OP(RET_TYPE, ROW_EXPR, COL_EXPR, INIT_VAL, MT_RESULT)
#define MX_REDUCTION_OP_ROW_EXPR(OP)   retval.elem (i, 0) OP elem (i, j)
#define MX_REDUCTION_OP_COL_EXPR(OP)   retval.elem (0, j) OP elem (i, j)
#define MX_REDUCTION_OP(RET_TYPE, OP, INIT_VAL, MT_RESULT)
#define MX_ANY_ALL_OP_ROW_CODE(TEST_OP, TEST_TRUE_VAL)
#define MX_ANY_ALL_OP_COL_CODE(TEST_OP, TEST_TRUE_VAL)
#define MX_ANY_ALL_OP(DIM, INIT_VAL, TEST_OP, TEST_TRUE_VAL)
#define MX_ALL_OP(DIM)   MX_ANY_ALL_OP (DIM, true, ==, false)
#define MX_ANY_OP(DIM)   MX_ANY_ALL_OP (DIM, false, !=, true)
#define MX_ND_ALL_EXPR   elem (iter_idx) == 0
#define MX_ND_ANY_EXPR   elem (iter_idx) != 0
#define MX_ND_ALL_EVAL(TEST_EXPR)
#define MX_ND_ANY_EVAL(TEST_EXPR)
#define MX_ND_REDUCTION(EVAL_EXPR, END_EXPR, VAL, ACC_DECL, RET_TYPE, RET_ELT_TYPE)
#define MX_ND_REAL_OP_REDUCTION(ASN_EXPR, INIT_VAL)
#define MX_ND_COMPLEX_OP_REDUCTION(ASN_EXPR, INIT_VAL)
#define MX_ND_ANY_ALL_REDUCTION(EVAL_EXPR, VAL)   MX_ND_REDUCTION (EVAL_EXPR, , VAL, , boolNDArray, bool)
#define MX_ND_CUMULATIVE_OP(RET_TYPE, ACC_TYPE, VAL, OP)


マクロ定義の解説

#define MX_ALL_OP DIM       MX_ANY_ALL_OP (DIM, true, ==, false)
 

mx-inlines.cc349 行で定義されています。

呼出 Matrix::all(), ComplexMatrix::all(), charMatrix::all(), と boolMatrix::all().

#define MX_ANY_ALL_OP DIM,
INIT_VAL,
TEST_OP,
TEST_TRUE_VAL   
 

値:

MX_BASE_REDUCTION_OP (boolMatrix, \
                        MX_ANY_ALL_OP_ROW_CODE (TEST_OP, TEST_TRUE_VAL), \
                        MX_ANY_ALL_OP_COL_CODE (TEST_OP, TEST_TRUE_VAL), \
                        INIT_VAL, INIT_VAL)

mx-inlines.cc343 行で定義されています。

#define MX_ANY_ALL_OP_COL_CODE TEST_OP,
TEST_TRUE_VAL   
 

値:

if (elem (i, j) TEST_OP 0.0) \
    { \
      retval.elem (0, j) = TEST_TRUE_VAL; \
      break; \
    }

mx-inlines.cc336 行で定義されています。

#define MX_ANY_ALL_OP_ROW_CODE TEST_OP,
TEST_TRUE_VAL   
 

値:

if (elem (i, j) TEST_OP 0.0) \
    { \
      retval.elem (i, 0) = TEST_TRUE_VAL; \
      break; \
    }

mx-inlines.cc329 行で定義されています。

#define MX_ANY_OP DIM       MX_ANY_ALL_OP (DIM, false, !=, true)
 

mx-inlines.cc351 行で定義されています。

呼出 Matrix::any(), ComplexMatrix::any(), charMatrix::any(), と boolMatrix::any().

#define MX_BASE_REDUCTION_OP RET_TYPE,
ROW_EXPR,
COL_EXPR,
INIT_VAL,
MT_RESULT   
 

mx-inlines.cc272 行で定義されています。

呼出 Matrix::sumsq(), と ComplexMatrix::sumsq().

#define MX_CUMULATIVE_OP RET_TYPE,
ELT_TYPE,
OP   
 

mx-inlines.cc232 行で定義されています。

呼出 Matrix::cumprod(), ComplexMatrix::cumprod(), Matrix::cumsum(), と ComplexMatrix::cumsum().

#define MX_ND_ALL_EVAL TEST_EXPR   
 

値:

if (TEST_EXPR) \
   { \
     if (dim > -1) \
       iter_idx (dim) = 0; \
     retval (iter_idx) = 0; \
     break; \
   } \
 else \
   { \
     if (dim > -1) \
       iter_idx (dim) = 0; \
     retval (iter_idx) = 1; \
   } \

mx-inlines.cc357 行で定義されています。

呼出 streamoff_array::all(), intNDArray< T >::all(), NDArray::all(), ComplexNDArray::all(), charNDArray::all(), boolNDArray::all(), と intNDArray< T >::any().

#define MX_ND_ALL_EXPR   elem (iter_idx) == 0
 

mx-inlines.cc353 行で定義されています。

呼出 streamoff_array::all(), NDArray::all(), と boolNDArray::all().

#define MX_ND_ANY_ALL_REDUCTION EVAL_EXPR,
VAL       MX_ND_REDUCTION (EVAL_EXPR, , VAL, , boolNDArray, bool)
 

mx-inlines.cc498 行で定義されています。

呼出 streamoff_array::all(), intNDArray< T >::all(), NDArray::all(), ComplexNDArray::all(), charNDArray::all(), boolNDArray::all(), streamoff_array::any(), intNDArray< T >::any(), NDArray::any(), ComplexNDArray::any(), charNDArray::any(), と boolNDArray::any().

#define MX_ND_ANY_EVAL TEST_EXPR   
 

値:

if (TEST_EXPR) \
   { \
     if (dim > -1) \
       iter_idx (dim) = 0; \
     retval (iter_idx) = 1; \
     break; \
   }

mx-inlines.cc372 行で定義されています。

呼出 streamoff_array::any(), NDArray::any(), ComplexNDArray::any(), charNDArray::any(), と boolNDArray::any().

#define MX_ND_ANY_EXPR   elem (iter_idx) != 0
 

mx-inlines.cc355 行で定義されています。

呼出 streamoff_array::any(), NDArray::any(), と boolNDArray::any().

#define MX_ND_COMPLEX_OP_REDUCTION ASN_EXPR,
INIT_VAL   
 

値:

MX_ND_REDUCTION (acc ASN_EXPR, retval.elem (iter_idx) = acc, \
                   INIT_VAL, Complex acc = INIT_VAL, ComplexNDArray, Complex)

mx-inlines.cc494 行で定義されています。

呼出 ComplexNDArray::prod(), ComplexNDArray::sum(), と ComplexNDArray::sumsq().

#define MX_ND_CUMULATIVE_OP RET_TYPE,
ACC_TYPE,
VAL,
OP   
 

mx-inlines.cc501 行で定義されています。

呼出 NDArray::cumprod(), ComplexNDArray::cumprod(), NDArray::cumsum(), と ComplexNDArray::cumsum().

#define MX_ND_REAL_OP_REDUCTION ASN_EXPR,
INIT_VAL   
 

値:

MX_ND_REDUCTION (acc ASN_EXPR, retval.elem (iter_idx) = acc, \
                   INIT_VAL, double acc = INIT_VAL, NDArray, double)

mx-inlines.cc490 行で定義されています。

呼出 NDArray::prod(), NDArray::sum(), と NDArray::sumsq().

#define MX_ND_REDUCTION EVAL_EXPR,
END_EXPR,
VAL,
ACC_DECL,
RET_TYPE,
RET_ELT_TYPE   
 

mx-inlines.cc382 行で定義されています。

#define MX_REDUCTION_OP RET_TYPE,
OP,
INIT_VAL,
MT_RESULT   
 

値:

MX_BASE_REDUCTION_OP (RET_TYPE, \
                        MX_REDUCTION_OP_ROW_EXPR (OP), \
                        MX_REDUCTION_OP_COL_EXPR (OP), \
                        INIT_VAL, MT_RESULT)

mx-inlines.cc323 行で定義されています。

呼出 Matrix::prod(), ComplexMatrix::prod(), Matrix::sum(), と ComplexMatrix::sum().

#define MX_REDUCTION_OP_COL_EXPR OP       retval.elem (0, j) OP elem (i, j)
 

mx-inlines.cc320 行で定義されています。

#define MX_REDUCTION_OP_ROW_EXPR OP       retval.elem (i, 0) OP elem (i, j)
 

mx-inlines.cc317 行で定義されています。

#define octave_mx_inlines_h   1
 

mx-inlines.cc24 行で定義されています。

#define OP_DUP_FCN OP,
F,
R,
 
 

値:

static inline R * \
  F (const T *x, size_t n) \
  { \
    R *r = 0; \
    if (n > 0) \
      { \
        r = new R [n]; \
        for (size_t i = 0; i < n; i++) \
          r[i] = OP (x[i]); \
      } \
    return r; \
  }

mx-inlines.cc199 行で定義されています。

#define OP_EQ_FCN T1,
T2   
 

値:

static inline bool \
  mx_inline_equal (const T1 *x, const T2 *y, size_t n) \
  { \
    for (size_t i = 0; i < n; i++) \
      if (x[i] != y[i]) \
        return false; \
    return true; \
  }

mx-inlines.cc184 行で定義されています。

#define SV_OP F,
OP,
R,
S,
 
 

値:

static inline R * \
  F (S s, const V *v, size_t n) \
  { \
    R *r = 0; \
    if (n > 0) \
      { \
        r = new R [n]; \
        F ## _sv (r, s, v, n); \
      } \
    return r; \
  }

mx-inlines.cc82 行で定義されています。

#define SV_OP_FCN F,
OP   
 

値:

template <class R, class S, class V> \
  inline void \
  F ## _sv (R *r, S s, const V *v, size_t n) \
  { \
    for (size_t i = 0; i < n; i++) \
      r[i] = s OP v[i]; \
  } \

mx-inlines.cc68 行で定義されています。

#define SV_OPS R,
S,
 
 

値:

SV_OP (mx_inline_add,      +, R, S, V) \
  SV_OP (mx_inline_subtract, -, R, S, V) \
  SV_OP (mx_inline_multiply, *, R, S, V) \
  SV_OP (mx_inline_divide,   /, R, S, V)

mx-inlines.cc95 行で定義されています。

#define VS_OP F,
OP,
R,
V,
 
 

値:

static inline R * \
  F (const V *v, size_t n, S s) \
  { \
    R *r = 0; \
    if (n > 0) \
      { \
        r = new R [n]; \
        F ## _vs (r, v, n, s); \
      } \
    return r; \
  }

mx-inlines.cc44 行で定義されています。

#define VS_OP2 F,
OP,
V,
 
 

値:

static inline V * \
  F (V *v, size_t n, S s) \
  { \
    for (size_t i = 0; i < n; i++) \
      v[i] OP s; \
    return v; \
  }

mx-inlines.cc144 行で定義されています。

#define VS_OP2S V,
 
 

値:

VS_OP2 (mx_inline_add2,      +=, V, S) \
  VS_OP2 (mx_inline_subtract2, -=, V, S) \
  VS_OP2 (mx_inline_multiply2, *=, V, S) \
  VS_OP2 (mx_inline_divide2,   /=, V, S) \
  VS_OP2 (mx_inline_copy,       =, V, S)

mx-inlines.cc153 行で定義されています。

#define VS_OP_FCN F,
OP   
 

値:

template <class R, class V, class S> \
  inline void \
  F ## _vs (R *r, const V *v, size_t n, S s) \
  { \
    for (size_t i = 0; i < n; i++) \
      r[i] = v[i] OP s; \
  }

mx-inlines.cc30 行で定義されています。

#define VS_OPS R,
V,
 
 

値:

VS_OP (mx_inline_add,      +, R, V, S) \
  VS_OP (mx_inline_subtract, -, R, V, S) \
  VS_OP (mx_inline_multiply, *, R, V, S) \
  VS_OP (mx_inline_divide,   /, R, V, S)

mx-inlines.cc57 行で定義されています。

#define VV_OP F,
OP,
R,
T1,
T2   
 

値:

static inline R * \
  F (const T1 *v1, const T2 *v2, size_t n) \
  { \
    R *r = 0; \
    if (n > 0) \
      { \
        r = new R [n]; \
        F ## _vv (r, v1, v2, n); \
      } \
    return r; \
  }

mx-inlines.cc120 行で定義されています。

#define VV_OP2 F,
OP,
T1,
T2   
 

値:

static inline T1 * \
  F (T1 *v1, const T2 *v2, size_t n) \
  { \
    for (size_t i = 0; i < n; i++) \
      v1[i] OP v2[i]; \
    return v1; \
  }

mx-inlines.cc164 行で定義されています。

#define VV_OP2S T1,
T2   
 

値:

VV_OP2 (mx_inline_add2,      +=, T1, T2) \
  VV_OP2 (mx_inline_subtract2, -=, T1, T2) \
  VV_OP2 (mx_inline_multiply2, *=, T1, T2) \
  VV_OP2 (mx_inline_divide2,   /=, T1, T2) \
  VV_OP2 (mx_inline_copy,       =, T1, T2)

mx-inlines.cc173 行で定義されています。

#define VV_OP_FCN F,
OP   
 

値:

template <class R, class T1, class T2> \
  inline void \
  F ## _vv (R *r, const T1 *v1, const T2 *v2, size_t n) \
  { \
    for (size_t i = 0; i < n; i++) \
      r[i] = v1[i] OP v2[i]; \
  } \

mx-inlines.cc106 行で定義されています。

#define VV_OPS R,
T1,
T2   
 

値:

VV_OP (mx_inline_add,      +, R, T1, T2) \
  VV_OP (mx_inline_subtract, -, R, T1, T2) \
  VV_OP (mx_inline_multiply, *, R, T1, T2) \
  VV_OP (mx_inline_divide,   /, R, T1, T2)

mx-inlines.cc133 行で定義されています。


Wed Dec 29 12:36:57 2004に生成されました。 doxygen1.2.18
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送