50 const octave_idx_type&,
float*,
51 const octave_idx_type&, octave_idx_type&
56 const octave_idx_type&,
float*,
57 const octave_idx_type&,
const float&,
58 float&,
float*, octave_idx_type*,
64 F77_FUNC (sch1up, SCH1UP) (
const octave_idx_type&,
float*,
65 const octave_idx_type&,
float*,
float*);
68 F77_FUNC (sch1dn, SCH1DN) (
const octave_idx_type&,
float*,
69 const octave_idx_type&,
float*,
float*,
73 F77_FUNC (schinx, SCHINX) (
const octave_idx_type&,
float*,
74 const octave_idx_type&,
const octave_idx_type&,
75 float*,
float*, octave_idx_type&);
78 F77_FUNC (schdex, SCHDEX) (
const octave_idx_type&,
float*,
79 const octave_idx_type&,
const octave_idx_type&,
83 F77_FUNC (schshx, SCHSHX) (
const octave_idx_type&,
float*,
84 const octave_idx_type&,
const octave_idx_type&,
85 const octave_idx_type&,
float*);
97 (*current_liboctave_error_handler) (
"FloatCHOL requires square matrix");
117 anorm =
xnorm (a, 1);
136 n, anorm,
xrcond, pz, piz, spocon_info
139 if (spocon_info != 0)
252 else if (j < 0 || j > n)
253 (*current_liboctave_error_handler) (
"cholinsert: index out of range");
274 if (j < 0 || j > n-1)
275 (*current_liboctave_error_handler) (
"choldelete: index out of range");
292 if (i < 0 || i > n-1 || j < 0 || j > n-1)
293 (*current_liboctave_error_handler) (
"cholshift: index out of range");
308 warn_qrupdate_once ();
325 if (a(i,i) == 0.0f)
return true;
332 warn_qrupdate_once ();
358 warn_qrupdate_once ();
366 else if (j < 0 || j > n)
367 (*current_liboctave_error_handler) (
"cholinsert: index out of range");
384 a1(k, l) = a(k < j ? k : k-1, l < j ? l : l-1);
386 info =
init (a1,
false);
397 warn_qrupdate_once ();
401 if (j < 0 || j > n-1)
402 (*current_liboctave_error_handler) (
"choldelete: index out of range");
415 warn_qrupdate_once ();
419 if (i < 0 || i > n-1 || j < 0 || j > n-1)
420 (*current_liboctave_error_handler) (
"cholshift: index out of range");
octave_idx_type init(const FloatMatrix &a, bool calc_cond)
#define F77_CHAR_ARG_LEN(l)
void resize(octave_idx_type nr, octave_idx_type nc, float rfv=0)
void delete_elements(const idx_vector &i)
Deleting elements.
FloatMatrix transpose(void) const
void shift_sym(octave_idx_type i, octave_idx_type j)
#define F77_XFCN(f, F, args)
octave_idx_type rows(void) const
F77_RET_T const octave_idx_type float const octave_idx_type octave_idx_type & F77_CHAR_ARG_LEN_DECL
static FloatMatrix chol2inv_internal(const FloatMatrix &r)
#define F77_CONST_CHAR_ARG2(x, l)
F77_RET_T F77_FUNC(spotrf, SPOTRF)(F77_CONST_CHAR_ARG_DECL
liboctave_error_handler current_liboctave_error_handler
void update(const FloatColumnVector &u)
octave_idx_type downdate(const FloatColumnVector &u)
FloatMatrix chol2inv(const FloatMatrix &r)
std::complex< double > w(std::complex< double > z, double relerr=0)
octave_idx_type insert_sym(const FloatColumnVector &u, octave_idx_type j)
bool is_square(void) const
OCTAVE_API double xnorm(const ColumnVector &x, double p)
T & xelem(octave_idx_type n)
octave_idx_type length(void) const
Number of elements in the array.
#define F77_CONST_CHAR_ARG_DECL
FloatMatrix inverse(void) const
void delete_sym(octave_idx_type j)
void set(const FloatMatrix &R)
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
const T * fortran_vec(void) const
octave_idx_type cols(void) const
Array< T > index(const idx_vector &i) const
Indexing without resizing.