1 #ifndef NPSTAT_LINEARMAPPER1D_HH_
2 #define NPSTAT_LINEARMAPPER1D_HH_
18 template<
class Numeric>
31 const Numeric x1,
const Numeric y1)
33 const Numeric dx = x1 - x0;
34 if (!dx)
throw std::invalid_argument(
35 "In npstat::LinearMapper1dTmpl constructor: "
36 "invalid arguments (x0 == x1)");
38 b_ = ((y0 + y1) - a_*(x0 + x1))/2.0;
46 inline Numeric
operator()(
const Numeric& x)
const {
return a_*x + b_;}
49 inline Numeric
a()
const {
return a_;}
52 inline Numeric
b()
const {
return b_;}
57 if (!a_)
throw std::invalid_argument(
58 "In npstat::LinearMapper1dTmpl::inverse: "
59 "mapping is not invertible");
Definition: LinearMapper1d.hh:20
LinearMapper1dTmpl()
Definition: LinearMapper1d.hh:23
Numeric a() const
Definition: LinearMapper1d.hh:49
LinearMapper1dTmpl operator*(const LinearMapper1dTmpl &r) const
Definition: LinearMapper1d.hh:64
Numeric b() const
Definition: LinearMapper1d.hh:52
LinearMapper1dTmpl(const Numeric x0, const Numeric y0, const Numeric x1, const Numeric y1)
Definition: LinearMapper1d.hh:30
Numeric operator()(const Numeric &x) const
Definition: LinearMapper1d.hh:46
LinearMapper1dTmpl inverse() const
Definition: LinearMapper1d.hh:55
LinearMapper1dTmpl(const Numeric ca, const Numeric cb)
Definition: LinearMapper1d.hh:42
Definition: AbsArrayProjector.hh:14
LinearMapper1dTmpl< double > LinearMapper1d
Definition: LinearMapper1d.hh:75