#include <cmath>
#include <iostream>
#include "Array.h"
#include "CSparse.h"
#include "MatrixType.h"
#include "PermMatrix.h"
#include "chol.h"
#include "dSparse.h"
#include "eigs-base.h"
#include "lo-arpack-proto.h"
#include "lo-blas-proto.h"
#include "lo-error.h"
#include "lo-ieee.h"
#include "lu.h"
#include "mx-ops.h"
#include "oct-locbuf.h"
#include "oct-rand.h"
#include "sparse-chol.h"
#include "sparse-lu.h"
Go to the source code of this file.
octave_idx_type EigsComplexNonSymmetricFunc | ( | EigsComplexFunc | fun, |
octave_idx_type | n_arg, | ||
const std::string & | _typ, | ||
Complex | sigma, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | , | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 3122 of file eigs-base.cc.
References abs(), current_liboctave_error_handler, d, disp(), octave_rand::distribution(), err, F77_DBLE_CMPLX_ARG, F77_FUNC(), Array< T >::fortran_vec(), i, Array< T >::isempty(), octave::math::isnan(), k, mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, ComplexColumnVector::resize(), ComplexMatrix::resize(), s, string, octave_rand::vector(), x, and y.
Referenced by G__eigs__().
octave_idx_type EigsComplexNonSymmetricMatrix | ( | const M & | m, |
const std::string | typ, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const M & | _b, | ||
ColumnVector & | permB, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 2502 of file eigs-base.cc.
References b, current_liboctave_error_handler, d, disp(), octave_rand::distribution(), F77_CONST_DBLE_CMPLX_ARG, F77_DBLE_CMPLX_ARG, F77_FUNC(), Array< T >::fortran_vec(), i, Array< T >::isempty(), octave::math::isnan(), k, ltsolve(), M, make_cholb(), mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, ComplexColumnVector::resize(), ComplexMatrix::resize(), s, string, utsolve(), octave_rand::vector(), vector_product(), and octave::math::x_nint().
Referenced by G__eigs__().
template octave_idx_type EigsComplexNonSymmetricMatrix< ComplexMatrix > | ( | const ComplexMatrix & | m, |
const std::string | typ, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const ComplexMatrix & | _b, | ||
ColumnVector & | permB, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
template octave_idx_type EigsComplexNonSymmetricMatrix< SparseComplexMatrix > | ( | const SparseComplexMatrix & | m, |
const std::string | typ, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const SparseComplexMatrix & | _b, | ||
ColumnVector & | permB, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
octave_idx_type EigsComplexNonSymmetricMatrixShift | ( | const M & | m, |
Complex | sigma, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const M & | _b, | ||
ColumnVector & | permB, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 2802 of file eigs-base.cc.
References b, current_liboctave_error_handler, d, disp(), octave_rand::distribution(), F77_CONST_DBLE_CMPLX_ARG, F77_DBLE_CMPLX_ARG, F77_FUNC(), Array< T >::fortran_vec(), i, Array< T >::isempty(), octave::math::isnan(), k, LuAminusSigmaB(), lusolve(), M, mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, Q, ComplexColumnVector::resize(), ComplexMatrix::resize(), s, string, tmp, octave_rand::vector(), vector_product(), and octave::math::x_nint().
Referenced by G__eigs__().
template octave_idx_type EigsComplexNonSymmetricMatrixShift< ComplexMatrix > | ( | const ComplexMatrix & | m, |
Complex | sigma, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const ComplexMatrix & | _b, | ||
ColumnVector & | permB, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
template octave_idx_type EigsComplexNonSymmetricMatrixShift< SparseComplexMatrix > | ( | const SparseComplexMatrix & | m, |
Complex | sigma, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const SparseComplexMatrix & | _b, | ||
ColumnVector & | permB, | ||
ComplexColumnVector & | cresid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
octave_idx_type EigsRealNonSymmetricFunc | ( | EigsFunc | fun, |
octave_idx_type | n_arg, | ||
const std::string & | _typ, | ||
double | sigmar, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | , | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 2182 of file eigs-base.cc.
References abs(), current_liboctave_error_handler, d, disp(), octave_rand::distribution(), err, F77_FUNC(), Array< T >::fortran_vec(), i, imag(), Array< T >::isempty(), octave::math::isnan(), k, mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, ComplexColumnVector::resize(), ComplexMatrix::resize(), s, string, octave_rand::vector(), x, and y.
Referenced by G__eigs__().
octave_idx_type EigsRealNonSymmetricMatrix | ( | const M & | m, |
const std::string | typ, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const M & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 1460 of file eigs-base.cc.
References b, current_liboctave_error_handler, d, disp(), octave_rand::distribution(), F77_FUNC(), Array< T >::fortran_vec(), i, imag(), Array< T >::isempty(), octave::math::isnan(), k, ltsolve(), M, make_cholb(), mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, ComplexColumnVector::resize(), ComplexMatrix::resize(), s, string, utsolve(), octave_rand::vector(), vector_product(), and octave::math::x_nint().
Referenced by G__eigs__().
template octave_idx_type EigsRealNonSymmetricMatrix< Matrix > | ( | const Matrix & | m, |
const std::string | typ, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const Matrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
template octave_idx_type EigsRealNonSymmetricMatrix< SparseMatrix > | ( | const SparseMatrix & | m, |
const std::string | typ, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const SparseMatrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
octave_idx_type EigsRealNonSymmetricMatrixShift | ( | const M & | m, |
double | sigmar, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const M & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 1811 of file eigs-base.cc.
References b, current_liboctave_error_handler, d, disp(), octave_rand::distribution(), F77_FUNC(), Array< T >::fortran_vec(), i, imag(), Array< T >::isempty(), octave::math::isnan(), k, LuAminusSigmaB(), lusolve(), M, mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, Q, ComplexColumnVector::resize(), ComplexMatrix::resize(), s, string, tmp, octave_rand::vector(), vector_product(), and octave::math::x_nint().
Referenced by G__eigs__().
template octave_idx_type EigsRealNonSymmetricMatrixShift< Matrix > | ( | const Matrix & | m, |
double | sigmar, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const Matrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
template octave_idx_type EigsRealNonSymmetricMatrixShift< SparseMatrix > | ( | const SparseMatrix & | m, |
double | sigmar, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
ComplexMatrix & | eig_vec, | ||
ComplexColumnVector & | eig_val, | ||
const SparseMatrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
octave_idx_type EigsRealSymmetricFunc | ( | EigsFunc | fun, |
octave_idx_type | n_arg, | ||
const std::string & | _typ, | ||
double | sigma, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | , | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 1205 of file eigs-base.cc.
References abs(), current_liboctave_error_handler, d, disp(), octave_rand::distribution(), err, F77_FUNC(), Array< T >::fortran_vec(), i, Array< T >::isempty(), octave::math::isnan(), k, mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, ColumnVector::resize(), Matrix::resize(), s, string, octave_rand::vector(), x, and y.
Referenced by G__eigs__().
octave_idx_type EigsRealSymmetricMatrix | ( | const M & | m, |
const std::string | typ, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
const M & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 617 of file eigs-base.cc.
References b, current_liboctave_error_handler, d, disp(), octave_rand::distribution(), F77_FUNC(), Array< T >::fortran_vec(), i, Array< T >::isempty(), octave::math::isnan(), k, ltsolve(), M, make_cholb(), mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, ColumnVector::resize(), Matrix::resize(), s, string, utsolve(), octave_rand::vector(), vector_product(), and octave::math::x_nint().
Referenced by G__eigs__().
template octave_idx_type EigsRealSymmetricMatrix< Matrix > | ( | const Matrix & | m, |
const std::string | typ, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
const Matrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
template octave_idx_type EigsRealSymmetricMatrix< SparseMatrix > | ( | const SparseMatrix & | m, |
const std::string | typ, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
const SparseMatrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
octave_idx_type EigsRealSymmetricMatrixShift | ( | const M & | m, |
double | sigma, | ||
octave_idx_type | k_arg, | ||
octave_idx_type | p_arg, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
const M & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
Definition at line 906 of file eigs-base.cc.
References b, current_liboctave_error_handler, d, disp(), octave_rand::distribution(), F77_FUNC(), Array< T >::fortran_vec(), i, Array< T >::isempty(), octave::math::isnan(), k, LuAminusSigmaB(), lusolve(), M, mode, NaN(), Array< T >::numel(), OCTAVE_LOCAL_BUFFER, os, p, Q, ColumnVector::resize(), Matrix::resize(), s, string, tmp, octave_rand::vector(), vector_product(), and octave::math::x_nint().
Referenced by G__eigs__().
template octave_idx_type EigsRealSymmetricMatrixShift< Matrix > | ( | const Matrix & | m, |
double | sigma, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
const Matrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
template octave_idx_type EigsRealSymmetricMatrixShift< SparseMatrix > | ( | const SparseMatrix & | m, |
double | sigma, | ||
octave_idx_type | k, | ||
octave_idx_type | p, | ||
octave_idx_type & | info, | ||
Matrix & | eig_vec, | ||
ColumnVector & | eig_val, | ||
const SparseMatrix & | _b, | ||
ColumnVector & | permB, | ||
ColumnVector & | resid, | ||
std::ostream & | os, | ||
double | tol, | ||
bool | rvec, | ||
bool | cholB, | ||
int | disp, | ||
int | maxit | ||
) |
|
static |
Definition at line 80 of file eigs-base.cc.
References b_nc, err, i, MatrixType::Lower, M, Q, ComplexMatrix::rcond(), and retval.
Referenced by EigsComplexNonSymmetricMatrix(), EigsRealNonSymmetricMatrix(), and EigsRealSymmetricMatrix().
|
static |
Definition at line 263 of file eigs-base.cc.
References abs(), b, octave::math::sparse_lu< lu_type >::col_perm(), d, i, octave::math::isnan(), octave::math::sparse_lu< lu_type >::L(), NaN(), Array< T >::numel(), Q, octave::math::sparse_lu< lu_type >::R(), ComplexMatrix::rcond(), octave::math::sparse_lu< lu_type >::row_perm(), Sparse< T >::rows(), tmp, octave::math::sparse_lu< lu_type >::U(), warn_convergence(), Sparse< T >::xcidx(), Sparse< T >::xdata(), and Sparse< T >::xridx().
Referenced by EigsComplexNonSymmetricMatrixShift(), EigsRealNonSymmetricMatrixShift(), and EigsRealSymmetricMatrixShift().
|
static |
Definition at line 360 of file eigs-base.cc.
References abs(), b, Array< T >::cols(), d, Array< T >::fortran_vec(), i, octave::math::isnan(), NaN(), Array< T >::numel(), p, octave::math::lu< T >::P_vec(), Q, ComplexMatrix::rcond(), tmp, octave::math::lu< T >::U(), warn_convergence(), and Array< T >::xelem().
|
static |
Definition at line 439 of file eigs-base.cc.
References abs(), b, octave::math::sparse_lu< lu_type >::col_perm(), d, i, octave::math::isnan(), octave::math::sparse_lu< lu_type >::L(), NaN(), Array< T >::numel(), Q, octave::math::sparse_lu< lu_type >::R(), ComplexMatrix::rcond(), octave::math::sparse_lu< lu_type >::row_perm(), Sparse< T >::rows(), tmp, octave::math::sparse_lu< lu_type >::U(), warn_convergence(), Sparse< T >::xcidx(), Sparse< T >::xdata(), and Sparse< T >::xridx().
|
static |
Definition at line 537 of file eigs-base.cc.
References abs(), b, Array< T >::cols(), d, Array< T >::fortran_vec(), i, octave::math::isnan(), octave::math::lu< T >::L(), NaN(), Array< T >::numel(), p, octave::math::lu< T >::P_vec(), Q, ComplexMatrix::rcond(), tmp, octave::math::lu< T >::U(), warn_convergence(), and Array< T >::xelem().
|
static |
Definition at line 61 of file eigs-base.cc.
References err, MatrixType::Lower, ComplexMatrix::rcond(), and MatrixType::Upper.
Referenced by EigsComplexNonSymmetricMatrixShift(), EigsRealNonSymmetricMatrixShift(), and EigsRealSymmetricMatrixShift().
|
static |
Definition at line 188 of file eigs-base.cc.
References b, octave::math::chol< T >::chol_matrix(), i, and Matrix::transpose().
Referenced by EigsComplexNonSymmetricMatrix(), EigsRealNonSymmetricMatrix(), and EigsRealSymmetricMatrix().
|
static |
Definition at line 208 of file eigs-base.cc.
References b, octave::math::sparse_chol< chol_type >::L(), and octave::math::sparse_chol< chol_type >::perm().
|
static |
Definition at line 225 of file eigs-base.cc.
References b, octave::math::chol< T >::chol_matrix(), ComplexMatrix::hermitian(), and i.
|
static |
Definition at line 245 of file eigs-base.cc.
References b, octave::math::sparse_chol< chol_type >::L(), and octave::math::sparse_chol< chol_type >::perm().
|
static |
Definition at line 100 of file eigs-base.cc.
References b_nc, err, i, M, Q, ComplexMatrix::rcond(), octave_value::resize(), retval, tmp, and MatrixType::Upper.
Referenced by EigsComplexNonSymmetricMatrix(), EigsRealNonSymmetricMatrix(), and EigsRealSymmetricMatrix().
|
static |
Definition at line 127 of file eigs-base.cc.
References Sparse< T >::cidx(), Sparse< T >::cols(), Sparse< T >::data(), i, Sparse< T >::ridx(), x, and y.
Referenced by EigsComplexNonSymmetricMatrix(), EigsComplexNonSymmetricMatrixShift(), EigsRealNonSymmetricMatrix(), EigsRealNonSymmetricMatrixShift(), EigsRealSymmetricMatrix(), and EigsRealSymmetricMatrixShift().
Definition at line 142 of file eigs-base.cc.
References Array< T >::cols(), Array< T >::data(), F77_XFCN, Array< T >::rows(), x, and y.
|
static |
Definition at line 156 of file eigs-base.cc.
References Sparse< T >::cidx(), Sparse< T >::cols(), Sparse< T >::data(), i, Sparse< T >::ridx(), x, and y.
|
static |
Definition at line 172 of file eigs-base.cc.
References Array< T >::cols(), Array< T >::data(), F77_CONST_DBLE_CMPLX_ARG, F77_DBLE_CMPLX_ARG, F77_XFCN, Array< T >::rows(), x, and y.
|
static |
Definition at line 51 of file eigs-base.cc.
Referenced by LuAminusSigmaB().