GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
eigs-base.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2005-2017 David Bateman
4 
5 This file is part of Octave.
6 
7 Octave is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <http://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if ! defined (octave_eigs_base_h)
24 #define octave_eigs_base_h 1
25 
26 #include "octave-config.h"
27 
28 #include <iosfwd>
29 
30 class ColumnVector;
32 class Matrix;
33 class ComplexMatrix;
34 
35 typedef ColumnVector (*EigsFunc) (const ColumnVector& x, int& eigs_error);
36 
38  int& eigs_error);
39 
40 template <typename M>
42 EigsRealSymmetricMatrix (const M& m, const std::string typ,
44  octave_idx_type& info, Matrix& eig_vec,
45  ColumnVector& eig_val, const M& _b,
46  ColumnVector& permB, ColumnVector& resid,
47  std::ostream& os, double tol, bool rvec,
48  bool cholB, int disp, int maxit);
49 
50 template <typename M>
52 EigsRealSymmetricMatrixShift (const M& m, double sigma,
54  octave_idx_type& info, Matrix& eig_vec,
55  ColumnVector& eig_val, const M& _b,
56  ColumnVector& permB, ColumnVector& resid,
57  std::ostream& os, double tol, bool rvec,
58  bool cholB, int disp, int maxit);
59 
60 extern OCTAVE_API octave_idx_type
62  const std::string& _typ, double sigma,
64  octave_idx_type& info, Matrix& eig_vec,
65  ColumnVector& eig_val, ColumnVector& resid,
66  std::ostream& os, double tol, bool rvec,
67  bool /* cholB */, int disp, int maxit);
68 
69 template <typename M>
71 EigsRealNonSymmetricMatrix (const M& m, const std::string typ,
73  octave_idx_type& info, ComplexMatrix& eig_vec,
74  ComplexColumnVector& eig_val, const M& _b,
75  ColumnVector& permB, ColumnVector& resid,
76  std::ostream& os, double tol, bool rvec,
77  bool cholB, int disp, int maxit);
78 
79 template <typename M>
81 EigsRealNonSymmetricMatrixShift (const M& m, double sigmar,
83  octave_idx_type& info,
84  ComplexMatrix& eig_vec,
85  ComplexColumnVector& eig_val, const M& _b,
86  ColumnVector& permB, ColumnVector& resid,
87  std::ostream& os, double tol, bool rvec,
88  bool cholB, int disp, int maxit);
89 
90 extern OCTAVE_API octave_idx_type
92  const std::string& _typ, double sigmar,
94  octave_idx_type& info, ComplexMatrix& eig_vec,
95  ComplexColumnVector& eig_val, ColumnVector& resid,
96  std::ostream& os, double tol, bool rvec,
97  bool /* cholB */, int disp, int maxit);
98 
99 template <typename M>
101 EigsComplexNonSymmetricMatrix (const M& m, const std::string typ,
103  octave_idx_type& info, ComplexMatrix& eig_vec,
104  ComplexColumnVector& eig_val, const M& _b,
105  ColumnVector& permB,
106  ComplexColumnVector& cresid,
107  std::ostream& os, double tol, bool rvec,
108  bool cholB, int disp, int maxit);
109 
110 template <typename M>
114  octave_idx_type& info,
115  ComplexMatrix& eig_vec,
116  ComplexColumnVector& eig_val, const M& _b,
117  ColumnVector& permB,
118  ComplexColumnVector& cresid,
119  std::ostream& os, double tol, bool rvec,
120  bool cholB, int disp, int maxit);
121 
122 extern OCTAVE_API octave_idx_type
124  const std::string& _typ, Complex sigma,
126  octave_idx_type& info, ComplexMatrix& eig_vec,
127  ComplexColumnVector& eig_val,
128  ComplexColumnVector& cresid, std::ostream& os,
129  double tol, bool rvec, bool /* cholB */,
130  int disp, int maxit);
131 
132 #endif
octave_idx_type EigsRealNonSymmetricMatrix(const M &m, const std::string typ, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:1394
ColumnVector(* EigsFunc)(const ColumnVector &x, int &eigs_error)
Definition: eigs-base.h:35
for large enough k
Definition: lu.cc:606
disp(text)
OCTAVE_API octave_idx_type EigsComplexNonSymmetricFunc(EigsComplexFunc fun, octave_idx_type n, const std::string &_typ, Complex sigma, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:2929
F77_RET_T const F77_INT const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_INT & M
octave_idx_type EigsComplexNonSymmetricMatrix(const M &m, const std::string typ, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:2343
nd deftypefn *octave_map m
Definition: ov-struct.cc:2058
octave_idx_type EigsRealSymmetricMatrix(const M &m, const std::string typ, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:596
octave_idx_type EigsComplexNonSymmetricMatrixShift(const M &m, Complex sigma, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:2623
Definition: dMatrix.h:37
OCTAVE_API octave_idx_type EigsRealNonSymmetricFunc(EigsFunc fun, octave_idx_type n, const std::string &_typ, double sigmar, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:2058
p
Definition: lu.cc:138
ComplexColumnVector(* EigsComplexFunc)(const ComplexColumnVector &x, int &eigs_error)
Definition: eigs-base.h:37
OCTAVE_API octave_idx_type EigsRealSymmetricFunc(EigsFunc fun, octave_idx_type n, const std::string &_typ, double sigma, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:1157
octave_idx_type EigsRealNonSymmetricMatrixShift(const M &m, double sigmar, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:1714
std::complex< double > Complex
Definition: oct-cmplx.h:31
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
Definition: utils.cc:854
octave_idx_type EigsRealSymmetricMatrixShift(const M &m, double sigma, octave_idx_type k, octave_idx_type p, 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: eigs-base.cc:868
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE * x