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.

72  : f_(f), data_(data)
73  {}

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_, and pwiz::math::MatchedFilter::details::norm().

◆ 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 pwiz::math::MatchedFilter::details::conj(), 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  }

References pwiz::math::MatchedFilter::details::conj(), 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:
pwiz::frequency::ParametrizedFunction::ErrorFunction::data_
const Data & data_
Definition: ParametrizedFunction.hpp:113
pwiz::frequency::ParametrizedFunction::ErrorFunction::dp
ublas::vector< double > dp(const ublas::vector< double > &p) const
Definition: ParametrizedFunction.hpp:85
pwiz::frequency::ParametrizedFunction::ErrorFunction::dp2
ublas::matrix< double > dp2(const ublas::vector< double > &p) const
Definition: ParametrizedFunction.hpp:97
pwiz::math::MatchedFilter::details::conj
double conj(double d)
Definition: MatchedFilter.hpp:222
pwiz::frequency::ParametrizedFunction::ErrorFunction::parameterCount
int parameterCount() const
Definition: ParametrizedFunction.hpp:75
pwiz::math::MatchedFilter::details::norm
double norm(double d)
Definition: MatchedFilter.hpp:221
pwiz::frequency::ParametrizedFunction::ErrorFunction::f_
const ParametrizedFunction< value_type > & f_
Definition: ParametrizedFunction.hpp:112