/usr/include/BALL/MATHS/piecewisePolynomial.h is in libball1.4-dev 1.4.1+20111206-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: piecewisePolynomial.h,v 1.19 2005/12/23 17:01:48 amoll Exp $
//
#ifndef BALL_MATHS_PPOLYNOMIAL_H
#define BALL_MATHS_PPOLYNOMIAL_H
#ifndef BALL_MATHS_PIECEWISEFUNCTION_H
# include <BALL/MATHS/piecewiseFunction.h>
#endif
namespace BALL
{
/** Piecewise polynomial curve object.
This class provides a trivial implementation of piecewise polynomial
curves. More useful spline/B-spline implementations might follow in the
future. The PPCurves are of the form
\f[\sum_{i=0}^{d} a_i^{(k)} (x - x_0^{(k)})^i\f], where \f$k\f$ is the index of
the interval and \f$d\f$ is the overall degree of the PPCurve. Note that
there is no warranty that the defined curve is continuously
differentiable or even continuous.
\ingroup FunctionClasses
*/
class BALL_EXPORT PiecewisePolynomial
: public PiecewiseFunction
{
public:
BALL_CREATE(PiecewisePolynomial)
/** @name Constructors and Destructors
*/
//@{
/** Default constructor
*/
PiecewisePolynomial();
/** Copy constructor
*/
PiecewisePolynomial(const PiecewisePolynomial& polynomial) ;
/** Detailed Constructor.
This constructor does <b>not</b> check sanity of the arguments
*/
PiecewisePolynomial(Size degree, const std::vector<Interval>& intervals,
const std::vector<Coefficients>& coefficients) ;
/** Destructor
*/
virtual ~PiecewisePolynomial();
//@}
/** @name Assignment
*/
//@{
/** Assignment operator
*/
PiecewisePolynomial& operator = (const PiecewisePolynomial& poly);
/** Clear method
*/
virtual void clear();
//@}
/** @name Accessors
*/
//@{
/** Set the instance manually
*/
void set(Size degree, const std::vector<Interval>& intervals, const std::vector<Coefficients>& coeffs);
/// set the degree of the polynomial
void setDegree(Size degree);
/// get the degree of the polynomial
Size getDegree() const;
/// compute the value of the PiecewisePolynomial at a given x
virtual double operator () (double x) const;
//@}
/** @name Predicates
*/
//@{
/** Equality operator
*/
bool operator == (const PiecewisePolynomial& poly) const;
//@}
/** @name Debugging and Diagnostics
*/
//@{
/** Dumps the whole content of the object
*/
virtual void dump (std::ostream& s = std::cout, Size depth = 0) const;
//@}
protected:
/*_ The degree of the polynomial
*/
Size degree_;
};
}
#endif // BALL_MATHS_PPPOLYNOMIAL_H
|