SIRIUS 7.5.0
Electronic structure library and applications
Public Types | Public Member Functions | Public Attributes | List of all members
sirius::mixer::FunctionProperties< FUNC > Struct Template Reference

Describes operations on a function type used for mixing. More...

#include <mixer.hpp>

Public Types

using type = FUNC
 

Public Member Functions

 FunctionProperties (std::function< double(const FUNC &)> size_, std::function< double(const FUNC &, const FUNC &)> inner_, std::function< void(double, FUNC &)> scal_, std::function< void(const FUNC &, FUNC &)> copy_, std::function< void(double, const FUNC &, FUNC &)> axpy_, std::function< void(double, double, FUNC &, FUNC &)> rotate_)
 

Public Attributes

std::function< double(const FUNC &)> size
 
std::function< double(const FUNC &, const FUNC &)> inner
 
std::function< void(double, FUNC &)> scal
 
std::function< void(const FUNC &, FUNC &)> copy
 
std::function< void(double, const FUNC &, FUNC &)> axpy
 
std::function< void(double, double, FUNC &, FUNC &)> rotate
 

Detailed Description

template<typename FUNC>
struct sirius::mixer::FunctionProperties< FUNC >

Describes operations on a function type used for mixing.

The properties contain functions, which determine the behaviour of a given type during mixing. The inner product function result is used for calculating mixing parameters. If a function should not contribute to generation of mixing parameters, the inner product function should always return 0.

Definition at line 49 of file mixer.hpp.

Member Typedef Documentation

◆ type

template<typename FUNC >
using sirius::mixer::FunctionProperties< FUNC >::type = FUNC

Definition at line 51 of file mixer.hpp.

Constructor & Destructor Documentation

◆ FunctionProperties() [1/2]

template<typename FUNC >
sirius::mixer::FunctionProperties< FUNC >::FunctionProperties ( std::function< double(const FUNC &)>  size_,
std::function< double(const FUNC &, const FUNC &)>  inner_,
std::function< void(double, FUNC &)>  scal_,
std::function< void(const FUNC &, FUNC &)>  copy_,
std::function< void(double, const FUNC &, FUNC &)>  axpy_,
std::function< void(double, double, FUNC &, FUNC &)>  rotate_ 
)
inline
Parameters
[in]size_Function, which returns a measure of size of the (global) function.
[in]inner_Function, which computes the (global) inner product. This determines the contribution to mixing parameters rmse.
[in]scal_Function, which scales the input (x = alpha * x).
[in]copy_Function, which copies from one object to the other (y = x).
[in]axpy_Function, which scales and adds one object to the other (y = alpha * x + y).

Definition at line 61 of file mixer.hpp.

◆ FunctionProperties() [2/2]

template<typename FUNC >
sirius::mixer::FunctionProperties< FUNC >::FunctionProperties ( )
inline

Definition at line 76 of file mixer.hpp.

Member Data Documentation

◆ size

template<typename FUNC >
std::function<double(const FUNC&)> sirius::mixer::FunctionProperties< FUNC >::size

Definition at line 87 of file mixer.hpp.

◆ inner

template<typename FUNC >
std::function<double(const FUNC&, const FUNC&)> sirius::mixer::FunctionProperties< FUNC >::inner

Definition at line 90 of file mixer.hpp.

◆ scal

template<typename FUNC >
std::function<void(double, FUNC&)> sirius::mixer::FunctionProperties< FUNC >::scal

Definition at line 93 of file mixer.hpp.

◆ copy

template<typename FUNC >
std::function<void(const FUNC&, FUNC&)> sirius::mixer::FunctionProperties< FUNC >::copy

Definition at line 96 of file mixer.hpp.

◆ axpy

template<typename FUNC >
std::function<void(double, const FUNC&, FUNC&)> sirius::mixer::FunctionProperties< FUNC >::axpy

Definition at line 99 of file mixer.hpp.

◆ rotate

template<typename FUNC >
std::function<void(double, double, FUNC&, FUNC&)> sirius::mixer::FunctionProperties< FUNC >::rotate

Definition at line 102 of file mixer.hpp.


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