GNU Octave  8.1.0
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-2023 The Octave Project Developers
4 //
5 // See the file COPYRIGHT.md in the top-level directory of this
6 // distribution or <https://octave.org/copyright/>.
7 //
8 // This file is part of Octave.
9 //
10 // Octave is free software: you can redistribute it and/or modify it
11 // under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Octave is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with Octave; see the file COPYING. If not, see
22 // <https://www.gnu.org/licenses/>.
23 //
24 ////////////////////////////////////////////////////////////////////////
25 
26 #if ! defined (octave_eigs_base_h)
27 #define octave_eigs_base_h 1
28 
29 #include "octave-config.h"
30 
31 #include <functional>
32 #include <iosfwd>
33 #include <string>
34 
35 #include "mx-fwd.h"
36 #include "oct-cmplx.h"
37 
38 typedef
39 std::function<ColumnVector (const ColumnVector& x, int& eigs_error)> EigsFunc;
40 
41 typedef
42 std::function<ComplexColumnVector
43  (const ComplexColumnVector& x, int& eigs_error)> EigsComplexFunc;
44 
45 template <typename M>
47 EigsRealSymmetricMatrix (const M& m, const std::string typ,
49  octave_idx_type& info, Matrix& eig_vec,
50  ColumnVector& eig_val, const M& _b,
51  ColumnVector& permB, ColumnVector& resid,
52  std::ostream& os, double tol, bool rvec,
53  bool cholB, int disp, int maxit);
54 
55 template <typename M>
57 EigsRealSymmetricMatrixShift (const M& m, double sigma,
59  octave_idx_type& info, Matrix& eig_vec,
60  ColumnVector& eig_val, const M& _b,
61  ColumnVector& permB, ColumnVector& resid,
62  std::ostream& os, double tol, bool rvec,
63  bool cholB, int disp, int maxit);
64 
65 template <typename M>
68  const std::string& _typ, double sigma,
70  octave_idx_type& info, Matrix& eig_vec,
71  ColumnVector& eig_val, const M& _b,
72  ColumnVector& permB, ColumnVector& resid,
73  std::ostream& os, double tol, bool rvec,
74  bool cholB, int disp, int maxit);
75 
76 template <typename M>
78 EigsRealNonSymmetricMatrix (const M& m, const std::string typ,
80  octave_idx_type& info, ComplexMatrix& eig_vec,
81  ComplexColumnVector& eig_val, const M& _b,
82  ColumnVector& permB, ColumnVector& resid,
83  std::ostream& os, double tol, bool rvec,
84  bool cholB, int disp, int maxit);
85 
86 template <typename M>
88 EigsRealNonSymmetricMatrixShift (const M& m, double sigmar,
90  octave_idx_type& info,
91  ComplexMatrix& eig_vec,
92  ComplexColumnVector& eig_val, const M& _b,
93  ColumnVector& permB, ColumnVector& resid,
94  std::ostream& os, double tol, bool rvec,
95  bool cholB, int disp, int maxit);
96 
97 template <typename M>
100  const std::string& _typ, double sigmar,
102  octave_idx_type& info, ComplexMatrix& eig_vec,
103  ComplexColumnVector& eig_val, const M& _b,
104  ColumnVector& permB, ColumnVector& resid,
105  std::ostream& os, double tol, bool rvec,
106  bool cholB, int disp, int maxit);
107 
108 template <typename M>
110 EigsComplexNonSymmetricMatrix (const M& m, const std::string typ,
112  octave_idx_type& info, ComplexMatrix& eig_vec,
113  ComplexColumnVector& eig_val, const M& _b,
114  ColumnVector& permB,
115  ComplexColumnVector& cresid,
116  std::ostream& os, double tol, bool rvec,
117  bool cholB, int disp, int maxit);
118 
119 template <typename M>
123  octave_idx_type& info,
124  ComplexMatrix& eig_vec,
125  ComplexColumnVector& eig_val, const M& _b,
126  ColumnVector& permB,
127  ComplexColumnVector& cresid,
128  std::ostream& os, double tol, bool rvec,
129  bool cholB, int disp, int maxit);
130 
131 template <typename M>
134  const std::string& _typ, Complex sigma,
136  octave_idx_type& info, ComplexMatrix& eig_vec,
137  ComplexColumnVector& eig_val, const M& _b,
138  ColumnVector& permB, ComplexColumnVector& cresid,
139  std::ostream& os, double tol, bool rvec,
140  bool cholB, int disp, int maxit);
141 
142 #endif
Definition: dMatrix.h:42
OCTAVE_API 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:3230
OCTAVE_API octave_idx_type EigsRealSymmetricFunc(EigsFunc fcn, 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, const M &_b, ColumnVector &permB, ColumnVector &resid, std::ostream &os, double tol, bool rvec, bool cholB, int disp, int maxit)
Definition: eigs-base.cc:1381
std::function< ColumnVector(const ColumnVector &x, int &eigs_error)> EigsFunc
Definition: eigs-base.h:39
OCTAVE_API octave_idx_type EigsRealNonSymmetricFunc(EigsFunc fcn, 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, const M &_b, ColumnVector &permB, ColumnVector &resid, std::ostream &os, double tol, bool rvec, bool cholB, int disp, int maxit)
Definition: eigs-base.cc:2485
std::function< ComplexColumnVector(const ComplexColumnVector &x, int &eigs_error)> EigsComplexFunc
Definition: eigs-base.h:43
OCTAVE_API 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:786
OCTAVE_API octave_idx_type EigsComplexNonSymmetricFunc(EigsComplexFunc fcn, 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, const M &_b, ColumnVector &permB, ComplexColumnVector &cresid, std::ostream &os, double tol, bool rvec, bool cholB, int disp, int maxit)
Definition: eigs-base.cc:3553
OCTAVE_API 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:1762
OCTAVE_API 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:1078
OCTAVE_API 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:2113
OCTAVE_API 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:2927
F77_RET_T const F77_INT const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_INT & M
F77_RET_T const F77_DBLE * x
#define OCTAVE_API
Definition: main.in.cc:55
class OCTAVE_API ComplexColumnVector
Definition: mx-fwd.h:46
class OCTAVE_API ColumnVector
Definition: mx-fwd.h:45
T octave_idx_type m
Definition: mx-inlines.cc:773
octave_idx_type n
Definition: mx-inlines.cc:753
std::complex< double > Complex
Definition: oct-cmplx.h:33