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); }
183 retval.
insert (a, nr_insert);
194 retval.
insert (a, nr_insert);
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); }
260 octave::err_nonconformant (
"operator +=",
len, a_len);
279 octave::err_nonconformant (
"operator -=",
len, a_len);
310 octave::err_nonconformant (
"operator *", nr, nc, a_len, 1);
322 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (
"N", 1),
327 F77_CHAR_ARG_LEN (1)));
354 octave::err_nonconformant (
"operator *", nr, nc, a_len, 1);
356 if (nc == 0 || nr == 0)
365 result.
elem (i) = 0.0;
379 octave::err_nonconformant (
"operator *", nr, nc, a_len, 1);
381 if (nc == 0 || nr == 0)
390 result.
elem (i) = 0.0;
404 octave::err_nonconformant (
"operator *", nr, nc, a_len, 1);
406 if (nc == 0 || nr == 0)
415 result.
elem (i) = 0.0;
430 double absres = std::abs (res);
433 if (std::abs (
elem (i)) < absres)
436 absres = std::abs (res);
450 double absres = std::abs (res);
453 if (std::abs (
elem (i)) > absres)
456 absres = std::abs (res);
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)
T & xelem(octave_idx_type n)
Size of the specified dimension.
T & elem(octave_idx_type n)
Size of the specified dimension.
octave_idx_type rows() const
octave_idx_type cols() const
const T * data() const
Size of the specified dimension.
T * rwdata()
Size of the specified dimension.
octave_idx_type numel() const
Number of elements in the array.
ComplexColumnVector & fill(double val)
ComplexColumnVector & insert(const ColumnVector &a, octave_idx_type r)
ComplexColumnVector & operator+=(const ColumnVector &a)
void clear(octave_idx_type n)
ComplexColumnVector extract(octave_idx_type r1, octave_idx_type r2) const
ComplexRowVector hermitian() const
ComplexRowVector transpose() const
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
octave_idx_type rows() const
T elem(octave_idx_type r, octave_idx_type c) const
octave_idx_type cols() const
Template for N-dimensional array classes with like-type math operators.
MArray< T > transpose() const
MArray< T > hermitian(T(*fcn)(const T &)=nullptr) 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_sub2(std::size_t n, R *r, const X *x)
void mx_inline_add2(std::size_t n, R *r, const X *x)
bool mx_inline_equal(std::size_t n, const T1 *x, const T2 *y)
std::complex< double > Complex