SIRIUS 7.5.0
Electronic structure library and applications
Public Member Functions | Private Attributes | List of all members
sirius::mixer::Linear< FUNCS > Class Template Reference

Inherits sirius::mixer::Mixer< FUNCS... >.

Public Member Functions

 Linear (double beta)
 
void mix_impl () override
 
- Public Member Functions inherited from sirius::mixer::Mixer< FUNCS... >
 Mixer (std::size_t max_history)
 Construct a mixer. Functions have to initialized individually. More...
 
void initialize_function (const FunctionProperties< typename std::tuple_element< FUNC_INDEX, std::tuple< FUNCS... > >::type > &function_prop, const typename std::tuple_element< FUNC_INDEX, std::tuple< FUNCS... > >::type &init_value, ARGS &&... args)
 
void set_input (const typename std::tuple_element< FUNC_INDEX, std::tuple< FUNCS... > >::type &input)
 Set input for next mixing step. More...
 
void get_output (typename std::tuple_element< FUNC_INDEX, std::tuple< FUNCS... > >::type &output)
 Access last generated output. Mixing must have been performed at least once. More...
 
double mix (double rms_min__)
 Mix input and stored history. Returns the root mean square error computed by inner products of residuals. More...
 

Private Attributes

double beta_
 

Additional Inherited Members

- Static Public Attributes inherited from sirius::mixer::Mixer< FUNCS... >
static constexpr std::size_t number_of_functions
 
- Protected Member Functions inherited from sirius::mixer::Mixer< FUNCS... >
virtual void mix_impl ()=0
 
void update_residual ()
 
void update_rms ()
 
std::size_t idx_hist (std::size_t step) const
 
double inner_product (const std::tuple< std::unique_ptr< FUNCS >... > &x, const std::tuple< std::unique_ptr< FUNCS >... > &y)
 
void scale (double alpha, std::tuple< std::unique_ptr< FUNCS >... > &x)
 
void copy (const std::tuple< std::unique_ptr< FUNCS >... > &x, std::tuple< std::unique_ptr< FUNCS >... > &y)
 
void axpy (double alpha, const std::tuple< std::unique_ptr< FUNCS >... > &x, std::tuple< std::unique_ptr< FUNCS >... > &y)
 
void rotate (double c, double s, std::tuple< std::unique_ptr< FUNCS >... > &x, std::tuple< std::unique_ptr< FUNCS >... > &y)
 
- Protected Attributes inherited from sirius::mixer::Mixer< FUNCS... >
std::size_t step_
 
std::size_t max_history_
 
std::vector< double > rmse_history_
 
std::tuple< FunctionProperties< FUNCS >... > functions_
 
std::tuple< std::unique_ptr< FUNCS >... > input_
 
std::vector< std::tuple< std::unique_ptr< FUNCS >... > > output_history_
 
std::vector< std::tuple< std::unique_ptr< FUNCS >... > > residual_history_
 

Detailed Description

template<typename... FUNCS>
class sirius::mixer::Linear< FUNCS >

Definition at line 43 of file linear_mixer.hpp.

Constructor & Destructor Documentation

◆ Linear()

template<typename... FUNCS>
sirius::mixer::Linear< FUNCS >::Linear ( double  beta)
inlineexplicit

Definition at line 46 of file linear_mixer.hpp.

Member Function Documentation

◆ mix_impl()

template<typename... FUNCS>
void sirius::mixer::Linear< FUNCS >::mix_impl ( )
inlineoverridevirtual

Implements sirius::mixer::Mixer< FUNCS... >.

Definition at line 52 of file linear_mixer.hpp.

Member Data Documentation

◆ beta_

template<typename... FUNCS>
double sirius::mixer::Linear< FUNCS >::beta_
private

Definition at line 62 of file linear_mixer.hpp.


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