50 const octave_idx_type&, FloatComplex*,
51 const octave_idx_type&, octave_idx_type&
56 const octave_idx_type&, FloatComplex*,
57 const octave_idx_type&,
const float&,
58 float&, FloatComplex*,
float*, octave_idx_type&
63 F77_FUNC (cch1up, CCH1UP) (
const octave_idx_type&, FloatComplex*,
64 const octave_idx_type&, FloatComplex*,
float*);
67 F77_FUNC (cch1dn, CCH1DN) (
const octave_idx_type&, FloatComplex*,
68 const octave_idx_type&, FloatComplex*,
69 float*, octave_idx_type&);
72 F77_FUNC (cchinx, CCHINX) (
const octave_idx_type&, FloatComplex*,
73 const octave_idx_type&,
const octave_idx_type&,
74 FloatComplex*,
float*, octave_idx_type&);
77 F77_FUNC (cchdex, CCHDEX) (
const octave_idx_type&, FloatComplex*,
78 const octave_idx_type&,
const octave_idx_type&,
82 F77_FUNC (cchshx, CCHSHX) (
const octave_idx_type&, FloatComplex*,
83 const octave_idx_type&,
const octave_idx_type&,
84 const octave_idx_type&, FloatComplex*,
float*);
96 (*current_liboctave_error_handler)
97 (
"FloatComplexCHOL requires square matrix");
117 anorm =
xnorm (a, 1);
135 n, anorm,
xrcond, pz, prz, cpocon_info
138 if (cpocon_info != 0)
248 else if (j < 0 || j > n)
249 (*current_liboctave_error_handler) (
"cholinsert: index out of range");
270 if (j < 0 || j > n-1)
271 (*current_liboctave_error_handler) (
"choldelete: index out of range");
288 if (i < 0 || i > n-1 || j < 0 || j > n-1)
289 (*current_liboctave_error_handler) (
"cholshift: index out of range");
296 i + 1, j + 1,
w, rw));
305 warn_qrupdate_once ();
323 if (a(i,i) == 0.0f)
return true;
330 warn_qrupdate_once ();
359 warn_qrupdate_once ();
367 else if (j < 0 || j > n)
368 (*current_liboctave_error_handler) (
"cholinsert: index out of range");
373 else if (u(j).imag () != 0.0)
387 a1(k, l) = a(k < j ? k : k-1, l < j ? l : l-1);
389 info =
init (a1,
false);
400 warn_qrupdate_once ();
404 if (j < 0 || j > n-1)
405 (*current_liboctave_error_handler) (
"choldelete: index out of range");
418 warn_qrupdate_once ();
422 if (i < 0 || i > n-1 || j < 0 || j > n-1)
423 (*current_liboctave_error_handler) (
"cholshift: index out of range");
void resize(octave_idx_type nr, octave_idx_type nc, const FloatComplex &rfv=FloatComplex(0))
#define F77_CHAR_ARG_LEN(l)
F77_RET_T F77_FUNC(cpotrf, CPOTRF)(F77_CONST_CHAR_ARG_DECL
octave_idx_type insert_sym(const FloatComplexColumnVector &u, octave_idx_type j)
octave_idx_type init(const FloatComplexMatrix &a, bool calc_cond)
FloatComplexMatrix hermitian(void) const
octave_idx_type downdate(const FloatComplexColumnVector &u)
void delete_elements(const idx_vector &i)
Deleting elements.
static FloatComplexMatrix chol2inv_internal(const FloatComplexMatrix &r)
#define F77_XFCN(f, F, args)
FloatComplexMatrix inverse(void) const
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)
FloatComplexMatrix chol2inv(const FloatComplexMatrix &r)
std::complex< double > w(std::complex< double > z, double relerr=0)
void shift_sym(octave_idx_type i, octave_idx_type j)
bool is_square(void) const
OCTAVE_API double xnorm(const ColumnVector &x, double p)
FloatComplexMatrix chol_mat
T & xelem(octave_idx_type n)
octave_idx_type length(void) const
Number of elements in the array.
#define F77_CONST_CHAR_ARG_DECL
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
void set(const FloatComplexMatrix &R)
std::complex< float > FloatComplex
const T * fortran_vec(void) const
octave_idx_type cols(void) const
void update(const FloatComplexColumnVector &u)
void delete_sym(octave_idx_type j)
Array< T > index(const idx_vector &i) const
Indexing without resizing.
F77_RET_T const octave_idx_type FloatComplex const octave_idx_type octave_idx_type & F77_CHAR_ARG_LEN_DECL