SigUtil  0.95
Utility modules for modern C++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sig::ManageConvergence< T, Criteria, F > Class Template Reference

収束判定の計算と管理を行うクラス More...

Public Member Functions

 ManageConvergence (double epsilon, F norm_func=norm_L2)
 コンストラクタ More...
 
bool update (T value)
 状態の更新とノルム計算、および収束判定 More...
 
bool is_convergence () const
 

Detailed Description

template<class T, class Criteria = RelativeError, class F = Norm<2>>
class sig::ManageConvergence< T, Criteria, F >

収束判定の計算と管理を行うクラス

反復処理を行う毎にその結果を与え、ノルム計算を行って収束の判定と管理を行う

Template Parameters
T収束判定を行う数値ベクトルのデータ型
C誤差基準
Fノルム関数
const double eps = 0.01;
const double delta = 0.1;
std::vector<double> data{ 0.2, 0.3, 0.5 };
ManageConvergence<std::vector<double>, RelativeError> conv(eps, norm_L2);
while (!conv.update(data)){
data[0] += delta * (0.3 - data[0]);
data[1] += delta * (0.3 - data[1]);
data[2] += delta * (0.4 - data[2]);
}

Definition at line 120 of file convergence.hpp.

Constructor & Destructor Documentation

template<class T , class Criteria = RelativeError, class F = Norm<2>>
sig::ManageConvergence< T, Criteria, F >::ManageConvergence ( double  epsilon,
norm_func = norm_L2 
)
inline

コンストラクタ

Parameters
epsilon収束判定用の定数(前回のノルム値との差がこの定数未満であれば収束と判定する)
norm_functionノルム関数(1引数と2引数のoperator()を定義した関数オブジェクト)

Definition at line 134 of file convergence.hpp.

Member Function Documentation

template<class T , class Criteria = RelativeError, class F = Norm<2>>
bool sig::ManageConvergence< T, Criteria, F >::is_convergence ( ) const
inline

Definition at line 149 of file convergence.hpp.

template<class T , class Criteria = RelativeError, class F = Norm<2>>
bool sig::ManageConvergence< T, Criteria, F >::update ( value)
inline

状態の更新とノルム計算、および収束判定

Parameters
valueノルムを取りたい数値ベクトル
Returns
true(収束), false(未収束)

Definition at line 142 of file convergence.hpp.


The documentation for this class was generated from the following file: