50 const octave_idx_type&, Complex*,
51 const octave_idx_type&, octave_idx_type&
56 const octave_idx_type&, Complex*,
57 const octave_idx_type&,
const double&,
58 double&, Complex*,
double*, octave_idx_type&
63 F77_FUNC (zch1up, ZCH1UP) (
const octave_idx_type&, Complex*,
64 const octave_idx_type&, Complex*,
double*);
67 F77_FUNC (zch1dn, ZCH1DN) (
const octave_idx_type&, Complex*,
68 const octave_idx_type&, Complex*,
double*,
72 F77_FUNC (zchinx, ZCHINX) (
const octave_idx_type&, Complex*,
73 const octave_idx_type&,
const octave_idx_type&,
74 Complex*,
double*, octave_idx_type&);
77 F77_FUNC (zchdex, ZCHDEX) (
const octave_idx_type&, Complex*,
78 const octave_idx_type&,
const octave_idx_type&,
82 F77_FUNC (zchshx, ZCHSHX) (
const octave_idx_type&, Complex*,
83 const octave_idx_type&,
const octave_idx_type&,
84 const octave_idx_type&, Complex*,
double*);
96 (*current_liboctave_error_handler)
97 (
"ComplexCHOL requires square matrix");
117 anorm =
xnorm (a, 1);
135 n, anorm,
xrcond, pz, prz, zpocon_info
138 if (zpocon_info != 0)
247 else if (j < 0 || j > n)
248 (*current_liboctave_error_handler) (
"cholinsert: index out of range");
269 if (j < 0 || j > n-1)
270 (*current_liboctave_error_handler) (
"choldelete: index out of range");
287 if (i < 0 || i > n-1 || j < 0 || j > n-1)
288 (*current_liboctave_error_handler) (
"cholshift: index out of range");
295 i + 1, j + 1,
w, rw));
304 warn_qrupdate_once ();
321 if (a(i,i) == 0.0)
return true;
328 warn_qrupdate_once ();
355 warn_qrupdate_once ();
363 else if (j < 0 || j > n)
364 (*current_liboctave_error_handler) (
"cholinsert: index out of range");
369 else if (u(j).imag () != 0.0)
383 a1(k, l) = a(k < j ? k : k-1, l < j ? l : l-1);
385 info =
init (a1,
false);
396 warn_qrupdate_once ();
400 if (j < 0 || j > n-1)
401 (*current_liboctave_error_handler) (
"choldelete: index out of range");
414 warn_qrupdate_once ();
418 if (i < 0 || i > n-1 || j < 0 || j > n-1)
419 (*current_liboctave_error_handler) (
"cholshift: index out of range");
F77_RET_T const octave_idx_type Complex const octave_idx_type octave_idx_type & F77_CHAR_ARG_LEN_DECL
#define F77_CHAR_ARG_LEN(l)
void delete_elements(const idx_vector &i)
Deleting elements.
ComplexMatrix inverse(void) const
void update(const ComplexColumnVector &u)
void delete_sym(octave_idx_type j)
octave_idx_type downdate(const ComplexColumnVector &u)
#define F77_XFCN(f, F, args)
octave_idx_type rows(void) const
#define F77_CONST_CHAR_ARG2(x, l)
liboctave_error_handler current_liboctave_error_handler
ComplexColumnVector conj(const ComplexColumnVector &a)
ComplexMatrix chol2inv(const ComplexMatrix &r)
ComplexMatrix hermitian(void) const
void set(const ComplexMatrix &R)
std::complex< double > w(std::complex< double > z, double relerr=0)
bool is_square(void) const
octave_idx_type insert_sym(const ComplexColumnVector &u, octave_idx_type j)
OCTAVE_API double xnorm(const ColumnVector &x, double p)
T & xelem(octave_idx_type n)
static ComplexMatrix chol2inv_internal(const ComplexMatrix &r)
octave_idx_type length(void) const
Number of elements in the array.
void resize(octave_idx_type nr, octave_idx_type nc, const Complex &rfv=Complex(0))
#define F77_CONST_CHAR_ARG_DECL
octave_idx_type init(const ComplexMatrix &a, bool calc_cond)
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
std::complex< double > Complex
const T * fortran_vec(void) const
octave_idx_type cols(void) const
void shift_sym(octave_idx_type i, octave_idx_type j)
F77_RET_T F77_FUNC(zpotrf, ZPOTRF)(F77_CONST_CHAR_ARG_DECL
Array< T > index(const idx_vector &i) const
Indexing without resizing.