SHOGUN
v3.0.0
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
shogun
mathematics
linalg
ratapprox
opfunc
RationalApproximation.h
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or modify
3
* it under the terms of the GNU General Public License as published by
4
* the Free Software Foundation; either version 3 of the License, or
5
* (at your option) any later version.
6
*
7
* Written (W) 2013 Soumyajit De
8
* Written (W) 2013 Heiko Strathmann
9
*/
10
11
#ifndef RATIONAL_APPROXIMATION_H_
12
#define RATIONAL_APPROXIMATION_H_
13
14
#include <
shogun/lib/config.h
>
15
#include <
shogun/mathematics/linalg/ratapprox/opfunc/OperatorFunction.h
>
16
17
namespace
shogun
18
{
19
20
template
<
class
T>
class
SGVector;
21
template
<
class
T>
class
CLinearOperator;
22
class
CIndependentComputationEngine;
23
class
CJobResultAggregator;
24
class
CEigenSolver;
25
63
class
CRationalApproximation
:
public
COperatorFunction
<float64_t>
64
{
65
public
:
67
CRationalApproximation
();
68
81
CRationalApproximation
(
82
CLinearOperator<float64_t>
* linear_operator,
83
CIndependentComputationEngine
* computation_engine,
84
CEigenSolver
* eigen_solver,
85
float64_t
desired_accuracy,
86
EOperatorFunction
function_type);
87
89
virtual
~CRationalApproximation
();
90
99
virtual
void
precompute
();
100
112
int32_t
compute_num_shifts_from_accuracy
();
113
124
virtual
CJobResultAggregator
*
submit_jobs
(
SGVector<float64_t>
sample) = 0;
125
127
SGVector<complex128_t>
get_shifts
()
const
;
128
130
SGVector<complex128_t>
get_weights
()
const
;
131
133
float64_t
get_constant_multiplier
()
const
;
134
136
index_t
get_num_shifts
()
const
;
137
139
void
set_num_shifts
(
index_t
num_shifts);
140
142
virtual
const
char
*
get_name
()
const
143
{
144
return
"RationalApproximation"
;
145
}
146
147
protected
:
149
CEigenSolver
*
m_eigen_solver
;
150
152
SGVector<complex128_t>
m_shifts
;
153
155
SGVector<complex128_t>
m_weights
;
156
158
float64_t
m_constant_multiplier
;
159
161
int32_t
m_num_shifts
;
162
164
float64_t
m_desired_accuracy
;
165
166
private
:
168
void
init();
169
174
void
compute_shifts_weights_const();
175
};
176
177
}
178
179
#endif // RATIONAL_APPROXIMATION_H_
SHOGUN
Machine Learning Toolbox - Documentation