26 #if defined (HAVE_CONFIG_H)
68 if (r < 0 || r + a_len >
numel ())
69 (*current_liboctave_error_handler) (
"range error for insert");
87 if (r < 0 || r + a_len >
numel ())
88 (*current_liboctave_error_handler) (
"range error for insert");
138 if (r1 < 0 || r2 < 0 || r1 >=
len || r2 >=
len)
139 (*current_liboctave_error_handler) (
"range error for fill");
141 if (r1 > r2) { std::swap (r1, r2); }
160 if (r1 < 0 || r2 < 0 || r1 >=
len || r2 >=
len)
161 (*current_liboctave_error_handler) (
"range error for fill");
163 if (r1 > r2) { std::swap (r1, r2); }
213 return do_mx_unary_map<double, Complex, std::abs> (*
this);
219 return do_mx_unary_map<Complex, Complex, std::conj<double>> (a);
227 if (r1 > r2) { std::swap (r1, r2); }
304 F77_INT nr = octave::to_f77_int (
m.rows ());
305 F77_INT nc = octave::to_f77_int (
m.cols ());
322 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (
"N", 1),
327 F77_CHAR_ARG_LEN (1)));
348 F77_INT nr = octave::to_f77_int (
m.rows ());
349 F77_INT nc = octave::to_f77_int (
m.cols ());
356 if (nc == 0 || nr == 0)
362 result.
elem (i) = a.
elem (i) *
m.elem (i, i);
365 result.
elem (i) = 0.0;
373 F77_INT nr = octave::to_f77_int (
m.rows ());
374 F77_INT nc = octave::to_f77_int (
m.cols ());
381 if (nc == 0 || nr == 0)
387 result.
elem (i) = a.
elem (i) *
m.elem (i, i);
390 result.
elem (i) = 0.0;
398 F77_INT nr = octave::to_f77_int (
m.rows ());
399 F77_INT nc = octave::to_f77_int (
m.cols ());
406 if (nc == 0 || nr == 0)
412 result.
elem (i) = a.
elem (i) *
m.elem (i, i);
415 result.
elem (i) = 0.0;
469 os << a.
elem (i) <<
"\n";
ComplexColumnVector conj(const ComplexColumnVector &a)
std::istream & operator>>(std::istream &is, ComplexColumnVector &a)
std::ostream & operator<<(std::ostream &os, const ComplexColumnVector &a)
ComplexColumnVector operator*(const ComplexMatrix &m, const ColumnVector &a)
Array< T > & insert(const Array< T > &a, const Array< octave_idx_type > &idx)
Insert an array into another at a specified position.
T & xelem(octave_idx_type n)
Size of the specified dimension.
octave_idx_type numel(void) const
Number of elements in the array.
T & elem(octave_idx_type n)
Size of the specified dimension.
const T * data(void) const
Size of the specified dimension.
const T * fortran_vec(void) const
Size of the specified dimension.
ColumnVector abs(void) const
ComplexColumnVector & fill(double val)
ComplexColumnVector & insert(const ColumnVector &a, octave_idx_type r)
ComplexColumnVector & operator+=(const ColumnVector &a)
ComplexColumnVector extract(octave_idx_type r1, octave_idx_type r2) const
ComplexRowVector transpose(void) const
ComplexRowVector hermitian(void) const
ComplexColumnVector(void)
ComplexColumnVector stack(const ColumnVector &a) const
ComplexColumnVector & operator-=(const ColumnVector &a)
bool operator==(const ComplexColumnVector &a) const
bool operator!=(const ComplexColumnVector &a) const
ComplexColumnVector extract_n(octave_idx_type r1, octave_idx_type n) const
Template for N-dimensional array classes with like-type math operators.
MArray< T > hermitian(T(*fcn)(const T &)=nullptr) const
MArray< T > transpose(void) const
#define F77_DBLE_CMPLX_ARG(x)
#define F77_XFCN(f, F, args)
octave_f77_int_type F77_INT
#define F77_CONST_DBLE_CMPLX_ARG(x)
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
void mx_inline_add2(size_t n, R *r, const X *x)
void mx_inline_sub2(size_t n, R *r, const X *x)
bool mx_inline_equal(size_t n, const T1 *x, const T2 *y)
void err_nonconformant(const char *op, octave_idx_type op1_len, octave_idx_type op2_len)
std::complex< double > Complex
octave_value::octave_value(const Array< char > &chm, char type) return retval