ProteoWizard
Public Member Functions | Protected Member Functions | List of all members
pwiz::frequency::DerivativeTest::VectorFunction< value_type > Class Template Referenceabstract

#include <DerivativeTest.hpp>

Inheritance diagram for pwiz::frequency::DerivativeTest::VectorFunction< value_type >:
pwiz::frequency::DerivativeTest::ParametrizedDerivativeSlice< value_type > pwiz::frequency::DerivativeTest::ParametrizedFunctionSlice< value_type >

Public Member Functions

virtual unsigned int argumentCount () const =0
 
virtual unsigned int valueCount () const =0
 
virtual ublas::vector< value_type > operator() (ublas::vector< double > x) const =0
 
ublas::matrix< value_type > differenceQuotient (ublas::vector< double > x, double delta) const
 
void printDifferenceQuotientSequence (ublas::vector< double > x, std::ostream &os) const
 

Protected Member Functions

virtual ~VectorFunction ()
 

Detailed Description

template<typename value_type>
class pwiz::frequency::DerivativeTest::VectorFunction< value_type >

Definition at line 49 of file DerivativeTest.hpp.

Constructor & Destructor Documentation

§ ~VectorFunction()

template<typename value_type>
virtual pwiz::frequency::DerivativeTest::VectorFunction< value_type >::~VectorFunction ( )
inlineprotectedvirtual

Definition at line 62 of file DerivativeTest.hpp.

62 {}

Member Function Documentation

§ argumentCount()

template<typename value_type>
virtual unsigned int pwiz::frequency::DerivativeTest::VectorFunction< value_type >::argumentCount ( ) const
pure virtual

§ valueCount()

template<typename value_type>
virtual unsigned int pwiz::frequency::DerivativeTest::VectorFunction< value_type >::valueCount ( ) const
pure virtual

§ operator()()

template<typename value_type>
virtual ublas::vector<value_type> pwiz::frequency::DerivativeTest::VectorFunction< value_type >::operator() ( ublas::vector< double >  x) const
pure virtual

§ differenceQuotient()

template<typename value_type >
ublas::matrix< value_type > pwiz::frequency::DerivativeTest::VectorFunction< value_type >::differenceQuotient ( ublas::vector< double >  x,
double  delta 
) const

Definition at line 67 of file DerivativeTest.hpp.

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

68 {
69  ublas::matrix<value_type> result(argumentCount(), valueCount());
70  result.clear();
71  for (unsigned int i=0; i<argumentCount(); i++)
72  {
73  ublas::vector<double> x2(x);
74  x2(i) += delta;
75  row(result, i) = ((*this)(x2)-(*this)(x))/delta;
76  }
77  return result;
78 }
virtual unsigned int argumentCount() const =0
KernelTraitsBase< Kernel >::space_type::abscissa_type x
virtual unsigned int valueCount() const =0

§ printDifferenceQuotientSequence()

template<typename value_type >
void pwiz::frequency::DerivativeTest::VectorFunction< value_type >::printDifferenceQuotientSequence ( ublas::vector< double >  x,
std::ostream &  os 
) const

Definition at line 82 of file DerivativeTest.hpp.

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

84 {
85  using namespace std;
86 
87  for (double delta=.1; delta>1e-9; delta/=10)
88  {
89  os << scientific << setprecision(1) << "[delta: " << delta << "] ";
90  os.unsetf(std::ios::scientific);
91  os << setprecision(8) << differenceQuotient(x, delta) << endl;
92  }
93 }
ublas::matrix< value_type > differenceQuotient(ublas::vector< double > x, double delta) const
STL namespace.
KernelTraitsBase< Kernel >::space_type::abscissa_type x

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