#include <cstddef>
#include <cmath>
#include <memory>
#include "quit.h"
#include "oct-cmplx.h"
#include "oct-locbuf.h"
#include "oct-inttypes.h"
#include "Array.h"
#include "Array-util.h"
#include "bsxfun.h"
Go to the source code of this file.
Defines | |
#define | DEFMINMAXSPEC(T, F, OP) |
#define | DEFMXBINOP(F, OP) |
#define | DEFMXBINOPEQ(F, OP) |
#define | DEFMXBOOLOP(F, NOT1, OP, NOT2) |
#define | DEFMXBOOLOPEQ(F, OP) |
#define | DEFMXCMPOP(F, OP) |
#define | DEFMXMAPPER(F, FUN) |
#define | DEFMXMAPPER2(F, FUN) |
#define | DEFMXMAPPER2X(F, FUN) |
#define | DEFMXUNBOOLOP(F, OP) |
#define | DEFMXUNOP(F, OP) |
#define | DEFMXUNOPEQ(F, OP) |
#define | OP_CUM_FCN(F, TSRC, TRES, OP) |
#define | OP_CUM_FCN2(F, TSRC, TRES, OP) |
#define | OP_CUM_FCNN(F, TSRC, TRES) |
#define | OP_CUMMINMAX_FCN(F, OP) |
#define | OP_CUMMINMAX_FCN2(F, OP) |
#define | OP_CUMMINMAX_FCNN(F) |
#define | OP_MINMAX_FCN(F, OP) |
#define | OP_MINMAX_FCN2(F, OP) |
#define | OP_MINMAX_FCNN(F) |
#define | OP_RED_ALLC(ac, el) if (xis_false (el)) { ac = false; break; } else continue |
#define | OP_RED_ALLR(ac, el) ac &= xis_true (el) |
#define | OP_RED_ANYC(ac, el) if (xis_true (el)) { ac = true; break; } else continue |
#define | OP_RED_ANYR(ac, el) ac |= xis_true (el) |
#define | OP_RED_FCN(F, TSRC, TRES, OP, ZERO) |
#define | OP_RED_FCN2(F, TSRC, TRES, OP, ZERO) |
#define | OP_RED_FCNN(F, TSRC, TRES) |
#define | OP_RED_PROD(ac, el) ac *= el |
#define | OP_RED_SUM(ac, el) ac += el |
#define | OP_RED_SUMSQ(ac, el) ac += el*el |
#define | OP_RED_SUMSQC(ac, el) ac += cabsq (el) |
#define | OP_ROW_SHORT_CIRCUIT(F, PRED, ZERO) |
#define | PROMOTE_DOUBLE(T) typename subst_template_param<std::complex, T, double>::type |
Functions | |
template<class T > | |
T | cabsq (const std::complex< T > &c) |
template<class R , class X , class Y > | |
Array< R > | do_mm_binary_op (const Array< X > &x, const Array< Y > &y, void(*op)(size_t, R *, const X *, const Y *) throw(), void(*op1)(size_t, R *, X, const Y *) throw(), void(*op2)(size_t, R *, const X *, Y) throw(), const char *opname) |
template<class R , class X > | |
Array< R > & | do_mm_inplace_op (Array< R > &r, const Array< X > &x, void(*op)(size_t, R *, const X *) throw(), void(*op1)(size_t, R *, X) throw(), const char *opname) |
template<class R , class X , class Y > | |
Array< R > | do_ms_binary_op (const Array< X > &x, const Y &y, void(*op)(size_t, R *, const X *, Y) throw()) |
template<class R , class X > | |
Array< R > & | do_ms_inplace_op (Array< R > &r, const X &x, void(*op)(size_t, R *, X) throw()) |
template<class T > | |
bool | do_mx_check (const Array< T > &a, bool(*op)(size_t, const T *) throw()) |
template<class R , class T > | |
Array< R > | do_mx_cum_op (const Array< T > &src, int dim, void(*mx_cum_op)(const T *, R *, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R > | |
Array< R > | do_mx_cumminmax_op (const Array< R > &src, int dim, void(*mx_cumminmax_op)(const R *, R *, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R > | |
Array< R > | do_mx_cumminmax_op (const Array< R > &src, Array< octave_idx_type > &idx, int dim, void(*mx_cumminmax_op)(const R *, R *, octave_idx_type *, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R > | |
Array< R > | do_mx_diff_op (const Array< R > &src, int dim, octave_idx_type order, void(*mx_diff_op)(const R *, R *, octave_idx_type, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R > | |
Array< R > & | do_mx_inplace_op (Array< R > &r, void(*op)(size_t, R *) throw()) |
template<class R > | |
Array< R > | do_mx_minmax_op (const Array< R > &src, int dim, void(*mx_minmax_op)(const R *, R *, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R > | |
Array< R > | do_mx_minmax_op (const Array< R > &src, Array< octave_idx_type > &idx, int dim, void(*mx_minmax_op)(const R *, R *, octave_idx_type *, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R , class T > | |
Array< R > | do_mx_red_op (const Array< T > &src, int dim, void(*mx_red_op)(const T *, R *, octave_idx_type, octave_idx_type, octave_idx_type)) |
template<class R , class X , R fun> | |
Array< R > | do_mx_unary_map (const Array< X > &x) |
template<class R , class X > | |
Array< R > | do_mx_unary_op (const Array< X > &x, void(*op)(size_t, R *, const X *) throw()) |
template<class R , class X , class Y > | |
Array< R > | do_sm_binary_op (const X &x, const Array< Y > &y, void(*op)(size_t, R *, X, const Y *) throw()) |
void | get_extent_triplet (const dim_vector &dims, int &dim, octave_idx_type &l, octave_idx_type &n, octave_idx_type &u) |
template<class T > | |
bool | logical_value (const octave_int< T > &x) |
template<class T > | |
bool | logical_value (T x) |
template<class T > | |
bool | logical_value (const std::complex< T > &x) |
template<class T > | |
bool | mx_inline_all_finite (size_t n, const T *x) throw () |
template<class T > | |
bool | mx_inline_all_real (size_t n, const std::complex< T > *x) throw () |
template<class T > | |
bool | mx_inline_any_nan (size_t n, const T *x) throw () |
template<class T > | |
bool | mx_inline_any_negative (size_t n, const T *x) throw () |
template<class T > | |
bool | mx_inline_any_positive (size_t n, const T *x) throw () |
template<class T > | |
void | mx_inline_diff (const T *v, T *r, octave_idx_type n, octave_idx_type order) |
template<class T > | |
void | mx_inline_diff (const T *v, T *r, octave_idx_type m, octave_idx_type n, octave_idx_type order) |
template<class T > | |
void | mx_inline_diff (const T *v, T *r, octave_idx_type l, octave_idx_type n, octave_idx_type u, octave_idx_type order) |
template<class T1 , class T2 > | |
bool | mx_inline_equal (size_t n, const T1 *x, const T2 *y) throw () |
template<class R , class S > | |
void | mx_inline_fill (size_t n, R *r, S s) throw () |
template<class T > | |
void | mx_inline_imag (size_t n, T *r, const std::complex< T > *x) throw () |
template<class R , class X , R fun> | |
void | mx_inline_map (size_t n, R *r, const X *x) throw () |
template<class X > | |
void | mx_inline_not (size_t n, bool *r, const X *x) throw () |
void | mx_inline_not2 (size_t n, bool *r) throw () |
template<class T > | |
void | mx_inline_real (size_t n, T *r, const std::complex< T > *x) throw () |
template<class T > | |
T | mx_inline_xsum (const T *v, octave_idx_type n) |
template<class T > | |
void | mx_inline_xsum (const T *v, T *r, octave_idx_type m, octave_idx_type n) |
void | op_dble_sum (double &ac, float el) |
void | op_dble_sum (Complex &ac, const FloatComplex &el) |
template<class T > | |
void | op_dble_sum (double &ac, const octave_int< T > &el) |
template<class T > | |
void | twosum_accum (T &s, T &e, const T &x) |
bool | xis_false (double x) |
bool | xis_false (const Complex &x) |
template<class T > | |
bool | xis_false (T x) |
template<class T > | |
bool | xis_false (const octave_int< T > &x) |
bool | xis_false (float x) |
template<class T > | |
bool | xis_true (const octave_int< T > &x) |
bool | xis_true (double x) |
bool | xis_true (const Complex &x) |
bool | xis_true (float x) |
template<class T > | |
bool | xis_true (T x) |
#define DEFMINMAXSPEC | ( | T, | ||
F, | ||||
OP | ||||
) |
template <> \ inline void F<T> (size_t n, T *r, const T *x, T y) throw () \ { \ if (xisnan (y)) \ std::memcpy (r, x, n * sizeof (T)); \ else \ for (size_t i = 0; i < n; i++) r[i] = (x[i] OP y) ? x[i] : y; \ } \ template <> \ inline void F<T> (size_t n, T *r, T x, const T *y) throw () \ { \ if (xisnan (x)) \ std::memcpy (r, y, n * sizeof (T)); \ else \ for (size_t i = 0; i < n; i++) r[i] = (y[i] OP x) ? y[i] : x; \ }
Definition at line 272 of file mx-inlines.cc.
#define DEFMXBINOP | ( | F, | ||
OP | ||||
) |
template <class R, class X, class Y> \ inline void F (size_t n, R *r, const X *x, const Y *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = x[i] OP y[i]; } \ template <class R, class X, class Y> \ inline void F (size_t n, R *r, const X *x, Y y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = x[i] OP y; } \ template <class R, class X, class Y> \ inline void F (size_t n, R *r, X x, const Y *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = x OP y[i]; }
Definition at line 70 of file mx-inlines.cc.
#define DEFMXBINOPEQ | ( | F, | ||
OP | ||||
) |
template <class R, class X> \ inline void F (size_t n, R *r, const X *x) throw () \ { for (size_t i = 0; i < n; i++) r[i] OP x[i]; } \ template <class R, class X> \ inline void F (size_t n, R *r, X x) throw () \ { for (size_t i = 0; i < n; i++) r[i] OP x; }
Definition at line 86 of file mx-inlines.cc.
#define DEFMXBOOLOP | ( | F, | ||
NOT1, | ||||
OP, | ||||
NOT2 | ||||
) |
template <class X, class Y> \ inline void F (size_t n, bool *r, const X *x, const Y *y) throw () \ { \ for (size_t i = 0; i < n; i++) \ r[i] = (NOT1 logical_value (x[i])) OP (NOT2 logical_value (y[i])); \ } \ template <class X, class Y> \ inline void F (size_t n, bool *r, const X *x, Y y) throw () \ { \ const bool yy = (NOT2 logical_value (y)); \ for (size_t i = 0; i < n; i++) \ r[i] = (NOT1 logical_value (x[i])) OP yy; \ } \ template <class X, class Y> \ inline void F (size_t n, bool *r, X x, const Y *y) throw () \ { \ const bool xx = (NOT1 logical_value (x)); \ for (size_t i = 0; i < n; i++) \ r[i] = xx OP (NOT2 logical_value (y[i])); \ }
Definition at line 136 of file mx-inlines.cc.
#define DEFMXBOOLOPEQ | ( | F, | ||
OP | ||||
) |
template <class X> \ inline void F (size_t n, bool *r, const X *x) throw () \ { \ for (size_t i = 0; i < n; i++) \ r[i] OP logical_value (x[i]); \ } \ template <class X> \ inline void F (size_t n, bool *r, X x) throw () \ { for (size_t i = 0; i < n; i++) r[i] OP x; }
Definition at line 165 of file mx-inlines.cc.
#define DEFMXCMPOP | ( | F, | ||
OP | ||||
) |
template <class X, class Y> \ inline void F (size_t n, bool *r, const X *x, const Y *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = x[i] OP y[i]; } \ template <class X, class Y> \ inline void F (size_t n, bool *r, const X *x, Y y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = x[i] OP y; } \ template <class X, class Y> \ inline void F (size_t n, bool *r, X x, const Y *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = x OP y[i]; }
Definition at line 99 of file mx-inlines.cc.
#define DEFMXMAPPER | ( | F, | ||
FUN | ||||
) |
template <class T> \ inline void F (size_t n, T *r, const T *x) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x[i]); }
Definition at line 244 of file mx-inlines.cc.
#define DEFMXMAPPER2 | ( | F, | ||
FUN | ||||
) |
template <class T> \ inline void F (size_t n, T *r, const T *x, const T *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x[i], y[i]); } \ template <class T> \ inline void F (size_t n, T *r, const T *x, T y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x[i], y); } \ template <class T> \ inline void F (size_t n, T *r, T x, const T *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x, y[i]); }
Definition at line 257 of file mx-inlines.cc.
#define DEFMXMAPPER2X | ( | F, | ||
FUN | ||||
) |
template <class R, class X, class Y> \ inline void F (size_t n, R *r, const X *x, const Y *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x[i], y[i]); } \ template <class R, class X, class Y> \ inline void F (size_t n, R *r, const X *x, Y y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x[i], y); } \ template <class R, class X, class Y> \ inline void F (size_t n, R *r, X x, const Y *y) throw () \ { for (size_t i = 0; i < n; i++) r[i] = FUN (x, y[i]); }
Definition at line 296 of file mx-inlines.cc.
#define DEFMXUNBOOLOP | ( | F, | ||
OP | ||||
) |
template <class X> \ inline void F (size_t n, bool *r, const X *x) throw () \ { const X zero = X(); for (size_t i = 0; i < n; i++) r[i] = x[i] OP zero; }
Definition at line 62 of file mx-inlines.cc.
#define DEFMXUNOP | ( | F, | ||
OP | ||||
) |
template <class R, class X> \ inline void F (size_t n, R *r, const X *x) throw () \ { for (size_t i = 0; i < n; i++) r[i] = OP x[i]; }
Definition at line 48 of file mx-inlines.cc.
#define DEFMXUNOPEQ | ( | F, | ||
OP | ||||
) |
template <class R> \ inline void F (size_t n, R *r) throw () \ { for (size_t i = 0; i < n; i++) r[i] = OP r[i]; }
Definition at line 55 of file mx-inlines.cc.
#define OP_CUM_FCN | ( | F, | ||
TSRC, | ||||
TRES, | ||||
OP | ||||
) |
template <class T> \ inline void \ F (const TSRC *v, TRES *r, octave_idx_type n) \ { \ if (n) \ { \ TRES t = r[0] = v[0]; \ for (octave_idx_type i = 1; i < n; i++) \ r[i] = t = t OP v[i]; \ } \ }
Definition at line 618 of file mx-inlines.cc.
#define OP_CUM_FCN2 | ( | F, | ||
TSRC, | ||||
TRES, | ||||
OP | ||||
) |
template <class T> \ inline void \ F (const TSRC *v, TRES *r, octave_idx_type m, octave_idx_type n) \ { \ if (n) \ { \ for (octave_idx_type i = 0; i < m; i++) \ r[i] = v[i]; \ const T *r0 = r; \ for (octave_idx_type j = 1; j < n; j++) \ { \ r += m; v += m; \ for (octave_idx_type i = 0; i < m; i++) \ r[i] = r0[i] OP v[i]; \ r0 += m; \ } \ } \ }
Definition at line 635 of file mx-inlines.cc.
#define OP_CUM_FCNN | ( | F, | ||
TSRC, | ||||
TRES | ||||
) |
template <class T> \ inline void \ F (const TSRC *v, TRES *r, octave_idx_type l, \ octave_idx_type n, octave_idx_type u) \ { \ if (l == 1) \ { \ for (octave_idx_type i = 0; i < u; i++) \ { \ F (v, r, n); \ v += n; r += n; \ } \ } \ else \ { \ for (octave_idx_type i = 0; i < u; i++) \ { \ F (v, r, l, n); \ v += l*n; \ r += l*n; \ } \ } \ }
Definition at line 659 of file mx-inlines.cc.
#define OP_CUMMINMAX_FCN | ( | F, | ||
OP | ||||
) |
Definition at line 853 of file mx-inlines.cc.
#define OP_CUMMINMAX_FCN2 | ( | F, | ||
OP | ||||
) |
Definition at line 902 of file mx-inlines.cc.
#define OP_CUMMINMAX_FCNN | ( | F | ) |
Definition at line 980 of file mx-inlines.cc.
#define OP_MINMAX_FCN | ( | F, | ||
OP | ||||
) |
Definition at line 688 of file mx-inlines.cc.
#define OP_MINMAX_FCN2 | ( | F, | ||
OP | ||||
) |
Definition at line 729 of file mx-inlines.cc.
#define OP_MINMAX_FCNN | ( | F | ) |
Definition at line 800 of file mx-inlines.cc.
#define OP_RED_ALLC | ( | ac, | ||
el | ||||
) | if (xis_false (el)) { ac = false; break; } else continue |
Definition at line 496 of file mx-inlines.cc.
#define OP_RED_ALLR | ( | ac, | ||
el | ||||
) | ac &= xis_true (el) |
Definition at line 544 of file mx-inlines.cc.
#define OP_RED_ANYC | ( | ac, | ||
el | ||||
) | if (xis_true (el)) { ac = true; break; } else continue |
Definition at line 495 of file mx-inlines.cc.
#define OP_RED_ANYR | ( | ac, | ||
el | ||||
) | ac |= xis_true (el) |
Definition at line 543 of file mx-inlines.cc.
#define OP_RED_FCN | ( | F, | ||
TSRC, | ||||
TRES, | ||||
OP, | ||||
ZERO | ||||
) |
template <class T> \ inline TRES \ F (const TSRC* v, octave_idx_type n) \ { \ TRES ac = ZERO; \ for (octave_idx_type i = 0; i < n; i++) \ OP(ac, v[i]); \ return ac; \ }
Definition at line 498 of file mx-inlines.cc.
#define OP_RED_FCN2 | ( | F, | ||
TSRC, | ||||
TRES, | ||||
OP, | ||||
ZERO | ||||
) |
template <class T> \ inline void \ F (const TSRC* v, TRES *r, octave_idx_type m, octave_idx_type n) \ { \ for (octave_idx_type i = 0; i < m; i++) \ r[i] = ZERO; \ for (octave_idx_type j = 0; j < n; j++) \ { \ for (octave_idx_type i = 0; i < m; i++) \ OP(r[i], v[i]); \ v += m; \ } \ }
Definition at line 521 of file mx-inlines.cc.
#define OP_RED_FCNN | ( | F, | ||
TSRC, | ||||
TRES | ||||
) |
template <class T> \ inline void \ F (const TSRC *v, TRES *r, octave_idx_type l, \ octave_idx_type n, octave_idx_type u) \ { \ if (l == 1) \ { \ for (octave_idx_type i = 0; i < u; i++) \ { \ r[i] = F<T> (v, n); \ v += n; \ } \ } \ else \ { \ for (octave_idx_type i = 0; i < u; i++) \ { \ F (v, r, l, n); \ v += l*n; \ r += l; \ } \ } \ }
Definition at line 584 of file mx-inlines.cc.
#define OP_RED_PROD | ( | ac, | ||
el | ||||
) | ac *= el |
Definition at line 482 of file mx-inlines.cc.
#define OP_RED_SUM | ( | ac, | ||
el | ||||
) | ac += el |
Definition at line 481 of file mx-inlines.cc.
#define OP_RED_SUMSQ | ( | ac, | ||
el | ||||
) | ac += el*el |
Definition at line 483 of file mx-inlines.cc.
#define OP_RED_SUMSQC | ( | ac, | ||
el | ||||
) | ac += cabsq (el) |
Definition at line 484 of file mx-inlines.cc.
#define OP_ROW_SHORT_CIRCUIT | ( | F, | ||
PRED, | ||||
ZERO | ||||
) |
template <class T> \ inline void \ F (const T* v, bool *r, octave_idx_type m, octave_idx_type n) \ { \ if (n <= 8) \ return F ## _r (v, r, m, n); \ \ /* FIXME: it may be sub-optimal to allocate the buffer here. */ \ OCTAVE_LOCAL_BUFFER (octave_idx_type, iact, m); \ for (octave_idx_type i = 0; i < m; i++) iact[i] = i; \ octave_idx_type nact = m; \ for (octave_idx_type j = 0; j < n; j++) \ { \ octave_idx_type k = 0; \ for (octave_idx_type i = 0; i < nact; i++) \ { \ octave_idx_type ia = iact[i]; \ if (! PRED (v[ia])) \ iact[k++] = ia; \ } \ nact = k; \ v += m; \ } \ for (octave_idx_type i = 0; i < m; i++) r[i] = ! ZERO; \ for (octave_idx_type i = 0; i < nact; i++) r[iact[i]] = ZERO; \ }
Definition at line 553 of file mx-inlines.cc.
#define PROMOTE_DOUBLE | ( | T | ) | typename subst_template_param<std::complex, T, double>::type |
Definition at line 509 of file mx-inlines.cc.
T cabsq | ( | const std::complex< T > & | c | ) | [inline] |
Definition at line 457 of file mx-inlines.cc.
Array<R> do_mm_binary_op | ( | const Array< X > & | x, | |
const Array< Y > & | y, | |||
void(*)(size_t, R *, const X *, const Y *) throw op() | , | |||
void(*)(size_t, R *, X, const Y *) throw op1() | , | |||
void(*)(size_t, R *, const X *, Y) throw op2() | , | |||
const char * | opname | |||
) | [inline] |
Definition at line 362 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), do_bsxfun_op(), Array< T >::fortran_vec(), gripe_nonconformant(), is_valid_bsxfun(), Array< T >::length(), and base_qr< FloatComplexMatrix >::r.
Array<R>& do_mm_inplace_op | ( | Array< R > & | r, | |
const Array< X > & | x, | |||
void(*)(size_t, R *, const X *) throw op() | , | |||
void(*)(size_t, R *, X) throw op1() | , | |||
const char * | opname | |||
) | [inline] |
Definition at line 408 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), do_inplace_bsxfun_op(), Array< T >::fortran_vec(), gripe_nonconformant(), is_valid_inplace_bsxfun(), and Array< T >::length().
Array<R> do_ms_binary_op | ( | const Array< X > & | x, | |
const Y & | y, | |||
void(*)(size_t, R *, const X *, Y) throw op() | ||||
) | [inline] |
Definition at line 388 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), Array< T >::length(), and base_qr< FloatComplexMatrix >::r.
Array<R>& do_ms_inplace_op | ( | Array< R > & | r, | |
const X & | x, | |||
void(*)(size_t, R *, X) throw op() | ||||
) | [inline] |
Definition at line 429 of file mx-inlines.cc.
References Array< T >::fortran_vec(), and Array< T >::length().
bool do_mx_check | ( | const Array< T > & | a, | |
bool(*)(size_t, const T *) throw op() | ||||
) | [inline] |
Definition at line 448 of file mx-inlines.cc.
References Array< T >::data(), and Array< T >::numel().
Array<R> do_mx_cum_op | ( | const Array< T > & | src, | |
int | dim, | |||
void(*)(const T *, R *, octave_idx_type, octave_idx_type, octave_idx_type) | mx_cum_op | |||
) | [inline] |
Definition at line 1198 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), and get_extent_triplet().
Array<R> do_mx_cumminmax_op | ( | const Array< R > & | src, | |
int | dim, | |||
void(*)(const R *, R *, octave_idx_type, octave_idx_type, octave_idx_type) | mx_cumminmax_op | |||
) | [inline] |
Definition at line 1258 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), and get_extent_triplet().
Array<R> do_mx_cumminmax_op | ( | const Array< R > & | src, | |
Array< octave_idx_type > & | idx, | |||
int | dim, | |||
void(*)(const R *, R *, octave_idx_type *, octave_idx_type, octave_idx_type, octave_idx_type) | mx_cumminmax_op | |||
) | [inline] |
Definition at line 1274 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), and get_extent_triplet().
Array<R> do_mx_diff_op | ( | const Array< R > & | src, | |
int | dim, | |||
octave_idx_type | order, | |||
void(*)(const R *, R *, octave_idx_type, octave_idx_type, octave_idx_type, octave_idx_type) | mx_diff_op | |||
) | [inline] |
Definition at line 1293 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), get_extent_triplet(), dim_vector::length(), and dim_vector::resize().
Array<R>& do_mx_inplace_op | ( | Array< R > & | r, | |
void(*)(size_t, R *) throw op() | ||||
) | [inline] |
Definition at line 353 of file mx-inlines.cc.
References Array< T >::fortran_vec(), and Array< T >::numel().
Array<R> do_mx_minmax_op | ( | const Array< R > & | src, | |
int | dim, | |||
void(*)(const R *, R *, octave_idx_type, octave_idx_type, octave_idx_type) | mx_minmax_op | |||
) | [inline] |
Definition at line 1215 of file mx-inlines.cc.
References dim_vector::chop_trailing_singletons(), Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), get_extent_triplet(), and dim_vector::length().
Array<R> do_mx_minmax_op | ( | const Array< R > & | src, | |
Array< octave_idx_type > & | idx, | |||
int | dim, | |||
void(*)(const R *, R *, octave_idx_type *, octave_idx_type, octave_idx_type, octave_idx_type) | mx_minmax_op | |||
) | [inline] |
Definition at line 1235 of file mx-inlines.cc.
References dim_vector::chop_trailing_singletons(), Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), get_extent_triplet(), and dim_vector::length().
Array<R> do_mx_red_op | ( | const Array< T > & | src, | |
int | dim, | |||
void(*)(const T *, R *, octave_idx_type, octave_idx_type, octave_idx_type) | mx_red_op | |||
) | [inline] |
Definition at line 1174 of file mx-inlines.cc.
References dim_vector::chop_trailing_singletons(), Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), get_extent_triplet(), and dim_vector::length().
Definition at line 346 of file mx-inlines.cc.
Array<R> do_mx_unary_op | ( | const Array< X > & | x, | |
void(*)(size_t, R *, const X *) throw op() | ||||
) | [inline] |
Definition at line 327 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), Array< T >::numel(), and base_qr< FloatComplexMatrix >::r.
Array<R> do_sm_binary_op | ( | const X & | x, | |
const Array< Y > & | y, | |||
void(*)(size_t, R *, X, const Y *) throw op() | ||||
) | [inline] |
Definition at line 398 of file mx-inlines.cc.
References Array< T >::data(), Array< T >::dims(), Array< T >::fortran_vec(), Array< T >::length(), and base_qr< FloatComplexMatrix >::r.
void get_extent_triplet | ( | const dim_vector & | dims, | |
int & | dim, | |||
octave_idx_type & | l, | |||
octave_idx_type & | n, | |||
octave_idx_type & | u | |||
) | [inline] |
Definition at line 1143 of file mx-inlines.cc.
References dim_vector::first_non_singleton(), dim_vector::length(), and dim_vector::numel().
Referenced by do_mx_cum_op(), do_mx_cumminmax_op(), do_mx_diff_op(), do_mx_minmax_op(), do_mx_red_op(), and MArray< T >::idx_add_nd().
bool logical_value | ( | const octave_int< T > & | x | ) | [inline] |
Definition at line 121 of file mx-inlines.cc.
References octave_int< T >::value().
bool logical_value | ( | T | x | ) | [inline] |
Definition at line 118 of file mx-inlines.cc.
Referenced by mx_inline_not().
bool logical_value | ( | const std::complex< T > & | x | ) | [inline] |
Definition at line 119 of file mx-inlines.cc.
bool mx_inline_all_finite | ( | size_t | n, | |
const T * | x | |||
) | throw () [inline] |
Definition at line 194 of file mx-inlines.cc.
bool mx_inline_all_real | ( | size_t | n, | |
const std::complex< T > * | x | |||
) | throw () [inline] |
Definition at line 233 of file mx-inlines.cc.
Referenced by FloatComplexDiagMatrix::all_elements_are_real(), SparseComplexMatrix::all_elements_are_real(), and ComplexDiagMatrix::all_elements_are_real().
bool mx_inline_any_nan | ( | size_t | n, | |
const T * | x | |||
) | throw () [inline] |
Definition at line 181 of file mx-inlines.cc.
bool mx_inline_any_negative | ( | size_t | n, | |
const T * | x | |||
) | throw () [inline] |
Definition at line 207 of file mx-inlines.cc.
References x.
Referenced by FloatNDArray::any_element_is_negative(), FloatMatrix::any_element_is_negative(), NDArray::any_element_is_negative(), and Matrix::any_element_is_negative().
bool mx_inline_any_positive | ( | size_t | n, | |
const T * | x | |||
) | throw () [inline] |
Definition at line 220 of file mx-inlines.cc.
References x.
Referenced by FloatNDArray::any_element_is_positive(), FloatMatrix::any_element_is_positive(), NDArray::any_element_is_positive(), and Matrix::any_element_is_positive().
void mx_inline_diff | ( | const T * | v, | |
T * | r, | |||
octave_idx_type | n, | |||
octave_idx_type | order | |||
) |
Definition at line 1034 of file mx-inlines.cc.
References dif(), and OCTAVE_LOCAL_BUFFER.
Referenced by mx_inline_diff().
void mx_inline_diff | ( | const T * | v, | |
T * | r, | |||
octave_idx_type | m, | |||
octave_idx_type | n, | |||
octave_idx_type | order | |||
) |
Definition at line 1075 of file mx-inlines.cc.
References OCTAVE_LOCAL_BUFFER.
void mx_inline_diff | ( | const T * | v, | |
T * | r, | |||
octave_idx_type | l, | |||
octave_idx_type | n, | |||
octave_idx_type | u, | |||
octave_idx_type | order | |||
) | [inline] |
Definition at line 1116 of file mx-inlines.cc.
References mx_inline_diff().
bool mx_inline_equal | ( | size_t | n, | |
const T1 * | x, | |||
const T2 * | y | |||
) | throw () [inline] |
Definition at line 438 of file mx-inlines.cc.
Referenced by FloatRowVector::operator==(), FloatMatrix::operator==(), FloatDiagMatrix::operator==(), FloatComplexRowVector::operator==(), FloatColumnVector::operator==(), FloatComplexMatrix::operator==(), FloatComplexDiagMatrix::operator==(), FloatComplexColumnVector::operator==(), RowVector::operator==(), Matrix::operator==(), DiagMatrix::operator==(), ColumnVector::operator==(), ComplexRowVector::operator==(), ComplexMatrix::operator==(), charMatrix::operator==(), ComplexDiagMatrix::operator==(), ComplexColumnVector::operator==(), and boolMatrix::operator==().
void mx_inline_fill | ( | size_t | n, | |
R * | r, | |||
S | s | |||
) | throw () [inline] |
Definition at line 45 of file mx-inlines.cc.
References base_qr< FloatComplexMatrix >::r.
void mx_inline_imag | ( | size_t | n, | |
T * | r, | |||
const std::complex< T > * | x | |||
) | throw () [inline] |
Definition at line 253 of file mx-inlines.cc.
References imag(), base_qr< FloatComplexMatrix >::r, and x.
void mx_inline_map | ( | size_t | n, | |
R * | r, | |||
const X * | x | |||
) | throw () [inline] |
Definition at line 319 of file mx-inlines.cc.
References base_qr< FloatComplexMatrix >::r, and x.
void mx_inline_not | ( | size_t | n, | |
bool * | r, | |||
const X * | x | |||
) | throw () |
Definition at line 125 of file mx-inlines.cc.
References logical_value(), base_qr< FloatComplexMatrix >::r, and x.
void mx_inline_not2 | ( | size_t | n, | |
bool * | r | |||
) | throw () [inline] |
Definition at line 131 of file mx-inlines.cc.
References base_qr< FloatComplexMatrix >::r.
void mx_inline_real | ( | size_t | n, | |
T * | r, | |||
const std::complex< T > * | x | |||
) | throw () [inline] |
Definition at line 250 of file mx-inlines.cc.
References base_qr< FloatComplexMatrix >::r, real, and x.
T mx_inline_xsum | ( | const T * | v, | |
octave_idx_type | n | |||
) | [inline] |
Definition at line 1340 of file mx-inlines.cc.
References twosum_accum().
void mx_inline_xsum | ( | const T * | v, | |
T * | r, | |||
octave_idx_type | m, | |||
octave_idx_type | n | |||
) | [inline] |
Definition at line 1351 of file mx-inlines.cc.
References OCTAVE_LOCAL_BUFFER, and twosum_accum().
Definition at line 486 of file mx-inlines.cc.
void op_dble_sum | ( | Complex & | ac, | |
const FloatComplex & | el | |||
) | [inline] |
Definition at line 488 of file mx-inlines.cc.
void op_dble_sum | ( | double & | ac, | |
const octave_int< T > & | el | |||
) | [inline] |
Definition at line 491 of file mx-inlines.cc.
References octave_int< T >::double_value().
void twosum_accum | ( | T & | s, | |
T & | e, | |||
const T & | x | |||
) | [inline] |
Definition at line 1330 of file mx-inlines.cc.
Referenced by mx_inline_xsum().
Definition at line 472 of file mx-inlines.cc.
Definition at line 479 of file mx-inlines.cc.
bool xis_false | ( | T | x | ) | [inline] |
Definition at line 464 of file mx-inlines.cc.
bool xis_false | ( | const octave_int< T > & | x | ) | [inline] |
Definition at line 469 of file mx-inlines.cc.
References octave_int< T >::value().
Definition at line 474 of file mx-inlines.cc.
bool xis_true | ( | const octave_int< T > & | x | ) | [inline] |
Definition at line 467 of file mx-inlines.cc.
References octave_int< T >::value().
Definition at line 471 of file mx-inlines.cc.
References xisnan().
Definition at line 478 of file mx-inlines.cc.
References xisnan().
Definition at line 473 of file mx-inlines.cc.
References xisnan().
bool xis_true | ( | T | x | ) | [inline] |
Definition at line 462 of file mx-inlines.cc.