GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
eigs-base.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2005-2018 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
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License 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 <https://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 #include <string>
30 
31 #include "oct-cmplx.h"
32 
33 class ColumnVector;
35 class Matrix;
36 class ComplexMatrix;
37 
38 typedef ColumnVector (*EigsFunc) (const ColumnVector& x, int& eigs_error);
39 
41  int& eigs_error);
42 
43 template <typename M>
45 EigsRealSymmetricMatrix (const M& m, const std::string typ,
47  octave_idx_type& info, Matrix& eig_vec,
48  ColumnVector& eig_val, const M& _b,
49  ColumnVector& permB, ColumnVector& resid,
50  std::ostream& os, double tol, bool rvec,
51  bool cholB, int disp, int maxit);
52 
53 template <typename M>
55 EigsRealSymmetricMatrixShift (const M& m, double sigma,
57  octave_idx_type& info, Matrix& eig_vec,
58  ColumnVector& eig_val, const M& _b,
59  ColumnVector& permB, ColumnVector& resid,
60  std::ostream& os, double tol, bool rvec,
61  bool cholB, int disp, int maxit);
62 
63 extern OCTAVE_API octave_idx_type
65  const std::string& _typ, double sigma,
67  octave_idx_type& info, Matrix& eig_vec,
68  ColumnVector& eig_val, ColumnVector& resid,
69  std::ostream& os, double tol, bool rvec,
70  bool /* cholB */, int disp, int maxit);
71 
72 template <typename M>
74 EigsRealNonSymmetricMatrix (const M& m, const std::string typ,
76  octave_idx_type& info, ComplexMatrix& eig_vec,
77  ComplexColumnVector& eig_val, const M& _b,
78  ColumnVector& permB, ColumnVector& resid,
79  std::ostream& os, double tol, bool rvec,
80  bool cholB, int disp, int maxit);
81 
82 template <typename M>
84 EigsRealNonSymmetricMatrixShift (const M& m, double sigmar,
86  octave_idx_type& info,
87  ComplexMatrix& eig_vec,
88  ComplexColumnVector& eig_val, const M& _b,
89  ColumnVector& permB, ColumnVector& resid,
90  std::ostream& os, double tol, bool rvec,
91  bool cholB, int disp, int maxit);
92 
93 extern OCTAVE_API octave_idx_type
95  const std::string& _typ, double sigmar,
97  octave_idx_type& info, ComplexMatrix& eig_vec,
98  ComplexColumnVector& eig_val, ColumnVector& resid,
99  std::ostream& os, double tol, bool rvec,
100  bool /* cholB */, int disp, int maxit);
101 
102 template <typename M>
104 EigsComplexNonSymmetricMatrix (const M& m, const std::string typ,
106  octave_idx_type& info, ComplexMatrix& eig_vec,
107  ComplexColumnVector& eig_val, const M& _b,
108  ColumnVector& permB,
109  ComplexColumnVector& cresid,
110  std::ostream& os, double tol, bool rvec,
111  bool cholB, int disp, int maxit);
112 
113 template <typename M>
117  octave_idx_type& info,
118  ComplexMatrix& eig_vec,
119  ComplexColumnVector& eig_val, const M& _b,
120  ColumnVector& permB,
121  ComplexColumnVector& cresid,
122  std::ostream& os, double tol, bool rvec,
123  bool cholB, int disp, int maxit);
124 
125 extern OCTAVE_API octave_idx_type
127  const std::string& _typ, Complex sigma,
129  octave_idx_type& info, ComplexMatrix& eig_vec,
130  ComplexColumnVector& eig_val,
131  ComplexColumnVector& cresid, std::ostream& os,
132  double tol, bool rvec, bool /* cholB */,
133  int disp, int maxit);
134 
135 #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:1460
for large enough k
Definition: lu.cc:617
disp(ar{str})
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:3122
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:2502
ComplexColumnVector(* EigsComplexFunc)(const ComplexColumnVector &x, int &eigs_error)
Definition: eigs-base.h:40
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:617
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:2802
Definition: dMatrix.h:36
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:2182
p
Definition: lu.cc:138
F77_RET_T const F77_INT const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_INT & M
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:1205
ColumnVector(* EigsFunc)(const ColumnVector &x, int &eigs_error)
Definition: eigs-base.h:38
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:1811
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:888
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:906
octave::stream os
Definition: file-io.cc:627
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 const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE * x