26 #if defined (HAVE_CONFIG_H)
32 #include <type_traits>
65 if (c < 0 || c + a_len >
numel ())
66 (*current_liboctave_error_handler) (
"range error for insert");
84 if (c < 0 || c + a_len >
numel ())
85 (*current_liboctave_error_handler) (
"range error for insert");
135 if (c1 < 0 || c2 < 0 || c1 >=
len || c2 >=
len)
136 (*current_liboctave_error_handler) (
"range error for fill");
138 if (c1 > c2) { std::swap (c1, c2); }
157 if (c1 < 0 || c2 < 0 || c1 >=
len || c2 >=
len)
158 (*current_liboctave_error_handler) (
"range error for fill");
160 if (c1 > c2) { std::swap (c1, c2); }
180 retval.
insert (a, nc_insert);
191 retval.
insert (a, nc_insert);
210 return do_mx_unary_map<Complex, Complex, std::conj<double>> (a);
218 if (c1 > c2) { std::swap (c1, c2); }
297 retval.
resize (a_nc, 0.0);
307 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (
"T", 1),
310 F77_CHAR_ARG_LEN (1)));
333 double absres = std::abs (res);
336 if (std::abs (
elem (i)) < absres)
339 absres = std::abs (res);
353 double absres = std::abs (res);
356 if (std::abs (
elem (i)) > absres)
359 absres = std::abs (res);
372 os <<
' ' << a.
elem (i);
447 typedef std::make_unsigned<octave_idx_type>::type unsigned_octave_idx_type;
449 unsigned_octave_idx_type
n = n_in;
453 retval.
xelem (0) = x1;
457 bool isnan_delta =
false;
458 Complex delta = (x2 - x1) / (
n - 1.0);
468 unsigned_octave_idx_type n2 =
n/2;
469 for (unsigned_octave_idx_type i = 1; i < n2; i++)
471 retval.
xelem (i) = x1 +
static_cast<double> (i)*delta;
472 retval.
xelem (
n-1-i) = x2 -
static_cast<double> (i)*delta;
477 retval.
xelem (n2) = 0;
488 retval.
xelem (n2) = c;
std::istream & operator>>(std::istream &is, ComplexRowVector &a)
ComplexRowVector conj(const ComplexRowVector &a)
ComplexRowVector operator*(const ComplexRowVector &v, const ComplexMatrix &a)
std::ostream & operator<<(std::ostream &os, const ComplexRowVector &a)
ComplexRowVector linspace(const Complex &x1, const Complex &x2, octave_idx_type n_in)
T & elem(octave_idx_type n)
Size of the specified dimension.
T * fortran_vec()
Size of the specified dimension.
octave_idx_type rows() const
const T * data() const
Size of the specified dimension.
octave_idx_type cols() const
T & xelem(octave_idx_type n)
Size of the specified dimension.
octave_idx_type numel() const
Number of elements in the array.
ComplexRowVector & operator-=(const RowVector &a)
ComplexRowVector & operator+=(const RowVector &a)
ComplexRowVector extract(octave_idx_type c1, octave_idx_type c2) const
ComplexRowVector append(const RowVector &a) const
void resize(octave_idx_type n, const Complex &rfv=Complex(0))
void clear(octave_idx_type n)
ComplexColumnVector hermitian() const
bool operator==(const ComplexRowVector &a) const
ComplexRowVector extract_n(octave_idx_type c1, octave_idx_type n) const
ComplexRowVector & fill(double val)
ComplexRowVector & insert(const RowVector &a, octave_idx_type c)
bool operator!=(const ComplexRowVector &a) const
ComplexColumnVector transpose() const
MArray< T > hermitian(T(*fcn)(const T &)=nullptr) const
MArray< T > transpose() 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)
void err_nonconformant(const char *op, octave_idx_type op1_len, octave_idx_type op2_len)
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
F77_RET_T F77_FUNC(xerbla, XERBLA)(F77_CONST_CHAR_ARG_DEF(s_arg
subroutine xzdotu(n, zx, incx, zy, incy, retval)