23 #if defined (HAVE_CONFIG_H) 42 DEFNDUNOP_OP (uminus, float_complex_matrix, float_complex_array, -)
50 error (
"transpose not defined for N-D objects");
61 error (
"complex-conjugate transpose not defined for N-D objects");
72 DEFNDBINOP_OP (add, float_complex_matrix, float_complex_matrix,
73 float_complex_array, float_complex_array, +)
74 DEFNDBINOP_OP (sub, float_complex_matrix, float_complex_matrix,
75 float_complex_array, float_complex_array, -)
77 DEFBINOP_OP (mul, float_complex_matrix, float_complex_matrix, *)
79 DEFBINOP (div, float_complex_matrix, float_complex_matrix)
96 error (
"can't do A ^ B for A and B both matrices");
99 DEFBINOP (ldiv, float_complex_matrix, float_complex_matrix)
158 DEFBINOP (trans_ldiv, float_complex_matrix, float_complex_matrix)
174 DEFBINOP (herm_ldiv, float_complex_matrix, float_complex_matrix)
191 float_complex_array, float_complex_array,
mx_el_lt)
193 float_complex_array, float_complex_array,
mx_el_le)
195 float_complex_array, float_complex_array,
mx_el_eq)
197 float_complex_array, float_complex_array,
mx_el_ge)
199 float_complex_array, float_complex_array,
mx_el_gt)
201 float_complex_array, float_complex_array,
mx_el_ne)
203 DEFNDBINOP_FN (el_mul, float_complex_matrix, float_complex_matrix,
204 float_complex_array, float_complex_array,
product)
205 DEFNDBINOP_FN (el_div, float_complex_matrix, float_complex_matrix,
206 float_complex_array, float_complex_array,
quotient)
207 DEFNDBINOP_FN (el_pow, float_complex_matrix, float_complex_matrix,
210 DEFBINOP (el_ldiv, float_complex_matrix, float_complex_matrix)
221 DEFNDBINOP_FN (el_and, float_complex_matrix, float_complex_matrix,
223 DEFNDBINOP_FN (el_or, float_complex_matrix, float_complex_matrix,
224 float_complex_array, float_complex_array,
mx_el_or)
226 DEFNDCATOP_FN (fcm_fcm, float_complex_matrix, float_complex_matrix,
227 float_complex_array, float_complex_array,
concat)
230 float_complex_array, float_complex_array,
concat)
233 float_complex_array, float_complex_array,
concat)
236 float_complex_array, assign)
238 float_complex_array, assign)
240 float_complex_array, assign)
242 complex_array, assign)
247 float_complex_matrix, float_complex_array, +=)
249 float_complex_matrix, float_complex_array, -=)
ComplexColumnVector quotient_eq(ComplexColumnVector &x, const ComplexColumnVector &y)
ComplexColumnVector product(const ComplexColumnVector &x, const ComplexColumnVector &y)
#define INSTALL_ASSIGNOP_TI(ti, op, t1, t2, f)
octave_value op_mul_trans(const octave_value &a1, const octave_value &a2)
FloatComplexMatrix transpose(void) const
FloatComplexNDArray float_complex_array_value(bool=false) const
octave_value op_uplus(const octave_value &a)
#define DEFBINOP(name, t1, t2)
FloatComplexMatrix float_complex_matrix_value(bool=false) const
octave_value op_el_pow(const octave_value &a1, const octave_value &a2)
#define DEFBINOPX(name, t1, t2)
#define INSTALL_BINOP_TI(ti, op, t1, t2, f)
characters Given a string matrix
octave_value op_eq(const octave_value &a1, const octave_value &a2)
#define DEFNDASSIGNOP_FNOP(name, t1, t2, f, fnop)
#define DEFNULLASSIGNOP_FN(name, t, f)
octave_value op_el_ldiv(const octave_value &a1, const octave_value &a2)
static void transpose(octave_idx_type N, const octave_idx_type *ridx, const octave_idx_type *cidx, octave_idx_type *ridx2, octave_idx_type *cidx2)
void install_fcm_fcm_ops(octave::type_info &ti)
ComplexNDArray concat(NDArray &ra, ComplexNDArray &rb, const Array< octave_idx_type > &ra_idx)
boolMatrix mx_el_le(const boolMatrix &m1, const boolMatrix &m2)
FloatComplexNDArray float_complex_array_value(bool=false) const
void error(const char *fmt,...)
octave_value op_pow(const octave_value &a1, const octave_value &a2)
#define INSTALL_NCUNOP_TI(ti, op, t, f)
#define DEFNDBINOP_FN(name, t1, t2, e1, e2, f)
FloatComplexMatrix hermitian(void) const
ComplexMatrix mul_trans(const ComplexMatrix &m, const SparseComplexMatrix &a)
#define DEFBINOP_OP(name, t1, t2, op)
const octave_base_value & a2
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
#define INSTALL_UNOP_TI(ti, op, t, f)
octave_value op_div(const octave_value &a1, const octave_value &a2)
FloatComplexMatrix float_complex_matrix_value(bool=false) const
octave_value op_el_or(const octave_value &a1, const octave_value &a2)
ComplexColumnVector quotient(const ComplexColumnVector &x, const ComplexColumnVector &y)
boolMatrix mx_el_ge(const boolMatrix &m1, const boolMatrix &m2)
octave_value op_not(const octave_value &a)
ComplexMatrix herm_mul(const SparseComplexMatrix &m, const ComplexMatrix &a)
boolMatrix mx_el_gt(const boolMatrix &m1, const boolMatrix &m2)
#define INSTALL_CATOP_TI(ti, t1, t2, f)
octave_value op_trans_mul(const octave_value &a1, const octave_value &a2)
octave_value op_transpose(const octave_value &a)
octave_value elem_xpow(double a, const SparseMatrix &b)
octave_value op_el_and(const octave_value &a1, const octave_value &a2)
octave_int< T > pow(const octave_int< T > &a, const octave_int< T > &b)
ComplexMatrix mul_herm(const ComplexMatrix &m, const SparseComplexMatrix &a)
octave_value op_mul_herm(const octave_value &a1, const octave_value &a2)
Matrix xleftdiv(const SparseMatrix &a, const Matrix &b, MatrixType &typ)
boolMatrix mx_el_ne(const boolMatrix &m1, const boolMatrix &m2)
octave_value op_le(const octave_value &a1, const octave_value &a2)
octave_value op_lt(const octave_value &a1, const octave_value &a2)
octave_value op_el_div(const octave_value &a1, const octave_value &a2)
ComplexMatrix xgemm(const ComplexMatrix &a, const ComplexMatrix &b, blas_trans_type transa, blas_trans_type transb)
return octave_value(v1.char_array_value() . concat(v2.char_array_value(), ra_idx),((a1.is_sq_string()||a2.is_sq_string()) ? '\'' :'"'))
const octave_char_matrix & v2
boolMatrix mx_el_or(const boolMatrix &m1, const boolMatrix &m2)
#define DEFNDASSIGNOP_FN(name, t1, t2, e, f)
Matrix xdiv(const Matrix &a, const SparseMatrix &b, MatrixType &typ)
octave_value op_ne(const octave_value &a1, const octave_value &a2)
ComplexMatrix trans_mul(const SparseComplexMatrix &m, const ComplexMatrix &a)
boolMatrix mx_el_and(const boolMatrix &m1, const boolMatrix &m2)
MatrixType matrix_type(void) const
#define DEFNDASSIGNOP_OP(name, t1, t2, f, op)
octave_value op_add(const octave_value &a1, const octave_value &a2)
octave_value op_ldiv(const octave_value &a1, const octave_value &a2)
#define DEFNDCMPLXCMPOP_FN(name, t1, t2, e1, e2, f)
octave_value op_sub(const octave_value &a1, const octave_value &a2)
boolMatrix mx_el_lt(const boolMatrix &m1, const boolMatrix &m2)
octave_value op_el_mul(const octave_value &a1, const octave_value &a2)
octave_value op_herm_mul(const octave_value &a1, const octave_value &a2)
#define DEFNDUNOP_OP(name, t, e, op)
octave_value op_hermitian(const octave_value &a)
octave_value op_ge(const octave_value &a1, const octave_value &a2)
#define DEFNDBINOP_OP(name, t1, t2, e1, e2, op)
#define DEFNDCATOP_FN(name, t1, t2, e1, e2, f)
boolMatrix mx_el_eq(const boolMatrix &m1, const boolMatrix &m2)
octave_value op_uminus(const octave_value &a)
octave_value op_mul(const octave_value &a1, const octave_value &a2)
ComplexColumnVector product_eq(ComplexColumnVector &x, const ComplexColumnVector &y)
octave_value op_gt(const octave_value &a1, const octave_value &a2)
#define DEFNCUNOP_METHOD(name, t, method)