#include <cmath>
#include <algorithm>
#include <limits>
#include <vector>
#include "Array.h"
#include "CColVector.h"
#include "CMatrix.h"
#include "CRowVector.h"
#include "CSparse.h"
#include "MArray.h"
#include "dColVector.h"
#include "dDiagMatrix.h"
#include "dMatrix.h"
#include "dRowVector.h"
#include "dSparse.h"
#include "fCColVector.h"
#include "fCMatrix.h"
#include "fCRowVector.h"
#include "fColVector.h"
#include "fDiagMatrix.h"
#include "fMatrix.h"
#include "fRowVector.h"
#include "lo-error.h"
#include "lo-ieee.h"
#include "lo-mappers.h"
#include "mx-cm-s.h"
#include "mx-fcm-fs.h"
#include "mx-fs-fcm.h"
#include "mx-s-cm.h"
#include "oct-cmplx.h"
#include "quit.h"
#include "svd.h"
Go to the source code of this file.
Classes | |
class | norm_accumulator_0< R > |
class | norm_accumulator_1< R > |
class | norm_accumulator_2< R > |
class | norm_accumulator_inf< R > |
class | norm_accumulator_minf< R > |
class | norm_accumulator_mp< R > |
class | norm_accumulator_p< R > |
Macros | |
#define | DEFINE_COLROW_NORM_FUNCS(PREFIX, RPREFIX, RTYPE) |
#define | DEFINE_DISPATCHER(FUNC_NAME, ARG_TYPE, RES_TYPE) |
#define | DEFINE_XNORM_FUNCS(PREFIX, RTYPE) |
#define | DEFINE_XNORM_SPARSE_FUNCS(PREFIX, RTYPE) |
Functions | |
template<typename T , typename R > | |
void | array_norm_2 (const T *v, octave_idx_type n, R &res) |
template<typename T , typename R , typename ACC > | |
void | column_norms (const MArray< T > &m, MArray< R > &res, ACC acc) |
template<typename T , typename R > | |
MArray< R > | column_norms (const MArray< T > &v, R p) |
template<typename T , typename R , typename ACC > | |
void | column_norms (const MSparse< T > &m, MArray< R > &res, ACC acc) |
template<typename T , typename R > | |
MArray< R > | column_norms (const MSparse< T > &v, R p) |
template<typename VectorT , typename R > | |
VectorT | dual_p (const VectorT &x, R p, R q) |
template<typename T , typename R > | |
T | elem_dual_p (T x, R p) |
template<typename MatrixT , typename VectorT , typename R > | |
R | higham (const MatrixT &m, R p, R tol, int maxiter, VectorT &x) |
template<typename ColVectorT , typename R > | |
static void | higham_subp (const ColVectorT &y, const ColVectorT &col, octave_idx_type nsamp, R p, R &lambda, R &mu) |
template<typename ColVectorT , typename R > | |
static void | higham_subp (const ColVectorT &y, const ColVectorT &col, octave_idx_type nsamp, R p, std::complex< R > &lambda, std::complex< R > &mu) |
template<typename MatrixT , typename VectorT , typename R > | |
R | matrix_norm (const MatrixT &m, R p, VectorT) |
template<typename T , typename R , typename ACC > | |
void | row_norms (const MArray< T > &m, MArray< R > &res, ACC acc) |
template<typename T , typename R > | |
MArray< R > | row_norms (const MArray< T > &v, R p) |
template<typename T , typename R , typename ACC > | |
void | row_norms (const MSparse< T > &m, MArray< R > &res, ACC acc) |
template<typename T , typename R > | |
MArray< R > | row_norms (const MSparse< T > &v, R p) |
template<typename MatrixT , typename VectorT , typename R > | |
R | svd_matrix_norm (const MatrixT &m, R p, VectorT) |
template<typename T , typename R , typename ACC > | |
void | vector_norm (const Array< T > &v, R &res, ACC acc) |
template<typename T , typename R > | |
R | vector_norm (const MArray< T > &v, R p) |
OCTAVE_API RowVector | xcolnorms (const ComplexMatrix &m, double p) |
OCTAVE_API FloatRowVector | xcolnorms (const FloatComplexMatrix &m, float p) |
OCTAVE_API FloatRowVector | xcolnorms (const FloatMatrix &m, float p) |
OCTAVE_API RowVector | xcolnorms (const Matrix &m, double p) |
OCTAVE_API RowVector | xcolnorms (const SparseComplexMatrix &m, double p) |
OCTAVE_API RowVector | xcolnorms (const SparseMatrix &m, double p) |
OCTAVE_API double | xfrobnorm (const ComplexMatrix &x) |
OCTAVE_API float | xfrobnorm (const FloatComplexMatrix &x) |
OCTAVE_API float | xfrobnorm (const FloatMatrix &x) |
OCTAVE_API double | xfrobnorm (const Matrix &x) |
OCTAVE_API double | xfrobnorm (const SparseComplexMatrix &x) |
OCTAVE_API double | xfrobnorm (const SparseMatrix &x) |
OCTAVE_API double | xnorm (const ColumnVector &x, double p) |
OCTAVE_API double | xnorm (const ComplexColumnVector &x, double p) |
OCTAVE_API double | xnorm (const ComplexMatrix &x, double p) |
OCTAVE_API double | xnorm (const ComplexRowVector &x, double p) |
OCTAVE_API float | xnorm (const FloatColumnVector &x, float p) |
OCTAVE_API float | xnorm (const FloatComplexColumnVector &x, float p) |
OCTAVE_API float | xnorm (const FloatComplexMatrix &x, float p) |
OCTAVE_API float | xnorm (const FloatComplexRowVector &x, float p) |
OCTAVE_API float | xnorm (const FloatMatrix &x, float p) |
OCTAVE_API float | xnorm (const FloatRowVector &x, float p) |
OCTAVE_API double | xnorm (const Matrix &x, double p) |
OCTAVE_API double | xnorm (const RowVector &x, double p) |
OCTAVE_API double | xnorm (const SparseComplexMatrix &x, double p) |
OCTAVE_API double | xnorm (const SparseMatrix &x, double p) |
OCTAVE_API ColumnVector | xrownorms (const ComplexMatrix &m, double p) |
OCTAVE_API FloatColumnVector | xrownorms (const FloatComplexMatrix &m, float p) |
OCTAVE_API FloatColumnVector | xrownorms (const FloatMatrix &m, float p) |
OCTAVE_API ColumnVector | xrownorms (const Matrix &m, double p) |
OCTAVE_API ColumnVector | xrownorms (const SparseComplexMatrix &m, double p) |
OCTAVE_API ColumnVector | xrownorms (const SparseMatrix &m, double p) |
Variables | |
static int | max_norm_iter = 100 |
static const char * | p_less1_gripe = "xnorm: p must be >= 1" |
#define DEFINE_COLROW_NORM_FUNCS | ( | PREFIX, | |
RPREFIX, | |||
RTYPE | |||
) |
Definition at line 582 of file oct-norm.cc.
#define DEFINE_DISPATCHER | ( | FUNC_NAME, | |
ARG_TYPE, | |||
RES_TYPE | |||
) |
Definition at line 297 of file oct-norm.cc.
#define DEFINE_XNORM_FUNCS | ( | PREFIX, | |
RTYPE | |||
) |
Definition at line 533 of file oct-norm.cc.
#define DEFINE_XNORM_SPARSE_FUNCS | ( | PREFIX, | |
RTYPE | |||
) |
Definition at line 567 of file oct-norm.cc.
|
inline |
Definition at line 558 of file oct-norm.cc.
References norm_accumulator_2< R >::accum(), and n.
void column_norms | ( | const MArray< T > & | m, |
MArray< R > & | res, | ||
ACC | acc | ||
) |
Definition at line 238 of file oct-norm.cc.
References m, and Array< T >::xelem().
Definition at line 323 of file oct-norm.cc.
void column_norms | ( | const MSparse< T > & | m, |
MArray< R > & | res, | ||
ACC | acc | ||
) |
Definition at line 268 of file oct-norm.cc.
References m, and Array< T >::xelem().
Definition at line 325 of file oct-norm.cc.
VectorT dual_p | ( | const VectorT & | x, |
R | p, | ||
R | q | ||
) |
Definition at line 415 of file oct-norm.cc.
References elem_dual_p(), vector_norm(), and x.
Referenced by higham().
|
inline |
Definition at line 405 of file oct-norm.cc.
References abs(), pow(), octave::math::signum(), and x.
Referenced by dual_p().
R higham | ( | const MatrixT & | m, |
R | p, | ||
R | tol, | ||
int | maxiter, | ||
VectorT & | x | ||
) |
Definition at line 425 of file oct-norm.cc.
References dual_p(), gamma(), higham_subp(), m, vector_norm(), and x.
Referenced by matrix_norm(), and svd_matrix_norm().
|
static |
Definition at line 333 of file oct-norm.cc.
References abs(), octave::fi, pow(), and vector_norm().
Referenced by higham().
|
static |
Definition at line 361 of file oct-norm.cc.
References abs(), octave::fi, pow(), and vector_norm().
R matrix_norm | ( | const MatrixT & | m, |
R | p, | ||
VectorT | |||
) |
Definition at line 512 of file oct-norm.cc.
References current_liboctave_error_handler, higham(), lo_ieee_isinf, m, ColumnVector::max(), RowVector::max(), max_norm_iter, p_less1_gripe, x, xcolnorms(), and xrownorms().
void row_norms | ( | const MArray< T > & | m, |
MArray< R > & | res, | ||
ACC | acc | ||
) |
Definition at line 252 of file oct-norm.cc.
References m, and Array< T >::xelem().
Definition at line 324 of file oct-norm.cc.
void row_norms | ( | const MSparse< T > & | m, |
MArray< R > & | res, | ||
ACC | acc | ||
) |
Definition at line 282 of file oct-norm.cc.
References m, and Array< T >::xelem().
Definition at line 326 of file oct-norm.cc.
R svd_matrix_norm | ( | const MatrixT & | m, |
R | p, | ||
VectorT | |||
) |
Definition at line 485 of file oct-norm.cc.
References current_liboctave_error_handler, higham(), lo_ieee_isinf, m, ColumnVector::max(), RowVector::max(), max_norm_iter, p_less1_gripe, octave::math::svd< T >::singular_values(), x, xcolnorms(), and xrownorms().
|
inline |
Definition at line 228 of file oct-norm.cc.
References Array< T >::numel().
Referenced by dual_p(), higham(), and higham_subp().
R vector_norm | ( | const MArray< T > & | v, |
R | p | ||
) |
Definition at line 322 of file oct-norm.cc.
OCTAVE_API RowVector xcolnorms | ( | const ComplexMatrix & | m, |
double | p | ||
) |
Definition at line 595 of file oct-norm.cc.
OCTAVE_API FloatRowVector xcolnorms | ( | const FloatComplexMatrix & | m, |
float | p | ||
) |
Definition at line 597 of file oct-norm.cc.
OCTAVE_API FloatRowVector xcolnorms | ( | const FloatMatrix & | m, |
float | p | ||
) |
Definition at line 596 of file oct-norm.cc.
Definition at line 594 of file oct-norm.cc.
Referenced by F__icholt__(), F__iluc__(), F__ilutp__(), Fnorm(), matrix_norm(), and svd_matrix_norm().
OCTAVE_API RowVector xcolnorms | ( | const SparseComplexMatrix & | m, |
double | p | ||
) |
Definition at line 600 of file oct-norm.cc.
OCTAVE_API RowVector xcolnorms | ( | const SparseMatrix & | m, |
double | p | ||
) |
Definition at line 599 of file oct-norm.cc.
OCTAVE_API double xfrobnorm | ( | const ComplexMatrix & | x | ) |
Definition at line 552 of file oct-norm.cc.
OCTAVE_API float xfrobnorm | ( | const FloatComplexMatrix & | x | ) |
Definition at line 554 of file oct-norm.cc.
OCTAVE_API float xfrobnorm | ( | const FloatMatrix & | x | ) |
Definition at line 553 of file oct-norm.cc.
OCTAVE_API double xfrobnorm | ( | const Matrix & | x | ) |
Definition at line 551 of file oct-norm.cc.
OCTAVE_API double xfrobnorm | ( | const SparseComplexMatrix & | x | ) |
Definition at line 580 of file oct-norm.cc.
OCTAVE_API double xfrobnorm | ( | const SparseMatrix & | x | ) |
Definition at line 579 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const ColumnVector & | x, |
double | p | ||
) |
Definition at line 551 of file oct-norm.cc.
Referenced by do_mgorth(), do_sqrtm(), Fnorm(), and chol< T >::init().
OCTAVE_API double xnorm | ( | const ComplexColumnVector & | x, |
double | p | ||
) |
Definition at line 552 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const ComplexMatrix & | x, |
double | p | ||
) |
Definition at line 552 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const ComplexRowVector & | x, |
double | p | ||
) |
Definition at line 552 of file oct-norm.cc.
OCTAVE_API float xnorm | ( | const FloatColumnVector & | x, |
float | p | ||
) |
Definition at line 553 of file oct-norm.cc.
OCTAVE_API float xnorm | ( | const FloatComplexColumnVector & | x, |
float | p | ||
) |
Definition at line 554 of file oct-norm.cc.
OCTAVE_API float xnorm | ( | const FloatComplexMatrix & | x, |
float | p | ||
) |
Definition at line 554 of file oct-norm.cc.
OCTAVE_API float xnorm | ( | const FloatComplexRowVector & | x, |
float | p | ||
) |
Definition at line 554 of file oct-norm.cc.
OCTAVE_API float xnorm | ( | const FloatMatrix & | x, |
float | p | ||
) |
Definition at line 553 of file oct-norm.cc.
OCTAVE_API float xnorm | ( | const FloatRowVector & | x, |
float | p | ||
) |
Definition at line 553 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const Matrix & | x, |
double | p | ||
) |
Definition at line 551 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const RowVector & | x, |
double | p | ||
) |
Definition at line 551 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const SparseComplexMatrix & | x, |
double | p | ||
) |
Definition at line 580 of file oct-norm.cc.
OCTAVE_API double xnorm | ( | const SparseMatrix & | x, |
double | p | ||
) |
Definition at line 579 of file oct-norm.cc.
OCTAVE_API ColumnVector xrownorms | ( | const ComplexMatrix & | m, |
double | p | ||
) |
Definition at line 595 of file oct-norm.cc.
OCTAVE_API FloatColumnVector xrownorms | ( | const FloatComplexMatrix & | m, |
float | p | ||
) |
Definition at line 597 of file oct-norm.cc.
OCTAVE_API FloatColumnVector xrownorms | ( | const FloatMatrix & | m, |
float | p | ||
) |
Definition at line 596 of file oct-norm.cc.
OCTAVE_API ColumnVector xrownorms | ( | const Matrix & | m, |
double | p | ||
) |
Definition at line 594 of file oct-norm.cc.
Referenced by F__iluc__(), F__ilutp__(), Fnorm(), matrix_norm(), and svd_matrix_norm().
OCTAVE_API ColumnVector xrownorms | ( | const SparseComplexMatrix & | m, |
double | p | ||
) |
Definition at line 600 of file oct-norm.cc.
OCTAVE_API ColumnVector xrownorms | ( | const SparseMatrix & | m, |
double | p | ||
) |
Definition at line 599 of file oct-norm.cc.
|
static |
Definition at line 481 of file oct-norm.cc.
Referenced by matrix_norm(), and svd_matrix_norm().
|
static |
Definition at line 476 of file oct-norm.cc.
Referenced by matrix_norm(), and svd_matrix_norm().