ProteoWizard
Public Types | Public Member Functions | Private Attributes | List of all members
pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction Class Reference

#include <ParametrizedFunction.hpp>

Public Types

typedef data::SampleDatum< double, value_type > Datum
 
typedef std::vector< DatumData
 

Public Member Functions

 ErrorFunction (const ParametrizedFunction< value_type > &f, const Data &data)
 
int parameterCount () const
 
double operator() (const ublas::vector< double > &p) const
 
ublas::vector< double > dp (const ublas::vector< double > &p) const
 
ublas::matrix< double > dp2 (const ublas::vector< double > &p) const
 

Private Attributes

const ParametrizedFunction< value_type > & f_
 
const Datadata_
 

Detailed Description

template<typename value_type>
class pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction

Definition at line 64 of file ParametrizedFunction.hpp.

Member Typedef Documentation

◆ Datum

template<typename value_type >
typedef data::SampleDatum<double, value_type> pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::Datum

Definition at line 68 of file ParametrizedFunction.hpp.

◆ Data

template<typename value_type >
typedef std::vector<Datum> pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::Data

Definition at line 69 of file ParametrizedFunction.hpp.

Constructor & Destructor Documentation

◆ ErrorFunction()

template<typename value_type >
pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::ErrorFunction ( const ParametrizedFunction< value_type > &  f,
const Data data 
)
inline

Definition at line 71 of file ParametrizedFunction.hpp.

Member Function Documentation

◆ parameterCount()

template<typename value_type >
int pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::parameterCount ( ) const
inline

Definition at line 75 of file ParametrizedFunction.hpp.

75{return f_.parameterCount();}

◆ operator()()

template<typename value_type >
double pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::operator() ( const ublas::vector< double > &  p) const
inline

Definition at line 77 of file ParametrizedFunction.hpp.

78 {
79 double result = 0;
80 for (typename Data::const_iterator it=data_.begin(); it!=data_.end(); ++it)
81 result += norm(std::complex<double>(f_(it->x,p) - it->y));
82 return result;
83 }

References data_.

◆ dp()

template<typename value_type >
ublas::vector< double > pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::dp ( const ublas::vector< double > &  p) const
inline

Definition at line 85 of file ParametrizedFunction.hpp.

86 {
87 ublas::vector<double> result(parameterCount());
88 result.clear();
89 for (typename Data::const_iterator it=data_.begin(); it!=data_.end(); ++it)
90 {
91 std::complex<double> diffconj = conj(std::complex<double>(f_(it->x,p) - it->y));
92 result += 2 * real(diffconj*f_.dp(it->x,p));
93 }
94 return result;
95 }

References data_, and pwiz::frequency::ParametrizedFunction< value_type >::parameterCount().

Referenced by pwiz::frequency::DerivativeTest::testDerivatives().

◆ dp2()

template<typename value_type >
ublas::matrix< double > pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::dp2 ( const ublas::vector< double > &  p) const
inline

Definition at line 97 of file ParametrizedFunction.hpp.

98 {
99 ublas::matrix<double> result(parameterCount(), parameterCount());
100 result.clear();
101 for (typename Data::const_iterator it=data_.begin(); it!=data_.end(); ++it)
102 {
103 std::complex<double> diffconj = conj(std::complex<double>(f_(it->x, p) - it->y));
104 ublas::vector<value_type> dp = f_.dp(it->x,p);
105 ublas::matrix<value_type> dp2 = f_.dp2(it->x,p);
106 result += 2 * real(diffconj*dp2 + outer_prod(conj(dp),dp));
107 }
108 return result;
109 }
ublas::vector< double > dp(const ublas::vector< double > &p) const
ublas::matrix< double > dp2(const ublas::vector< double > &p) const

References data_, pwiz::frequency::ParametrizedFunction< value_type >::dp(), pwiz::frequency::ParametrizedFunction< value_type >::dp2(), and pwiz::frequency::ParametrizedFunction< value_type >::parameterCount().

Referenced by pwiz::frequency::DerivativeTest::testDerivatives().

Member Data Documentation

◆ f_

template<typename value_type >
const ParametrizedFunction<value_type>& pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::f_
private

Definition at line 112 of file ParametrizedFunction.hpp.

◆ data_

template<typename value_type >
const Data& pwiz::frequency::ParametrizedFunction< value_type >::ErrorFunction::data_
private

Definition at line 113 of file ParametrizedFunction.hpp.


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