Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TSpline5 Class Reference

Class to create quintic natural splines to interpolate knots Arbitrary conditions can be introduced for first and second derivatives using double knots (see BuildCoeff) for more on this.

Double knots are automatically introduced at ending points

Definition at line 257 of file TSpline.h.

Public Member Functions

 TSpline5 ()
 
 TSpline5 (const char *title, const TGraph *g, const char *opt=nullptr, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given a TGraph with abscissa in increasing order and possibly end point conditions.
 
 TSpline5 (const char *title, Double_t x[], const TF1 *func, Int_t n, const char *opt=nullptr, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given an array of arbitrary abscissas in increasing order and a function to interpolate and possibly end point conditions.
 
 TSpline5 (const char *title, Double_t x[], Double_t y[], Int_t n, const char *opt=nullptr, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given an array of arbitrary knots in increasing abscissa order and possibly end point conditions.
 
 TSpline5 (const char *title, Double_t xmin, Double_t xmax, const TF1 *func, Int_t n, const char *opt=nullptr, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given a function to be evaluated on n equidistant abscissa points between xmin and xmax and possibly end point conditions.
 
 TSpline5 (const char *title, Double_t xmin, Double_t xmax, Double_t y[], Int_t n, const char *opt=nullptr, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given an array of arbitrary function values on equidistant n abscissa values from xmin to xmax and possibly end point conditions.
 
 TSpline5 (const TH1 *h, const char *opt=nullptr, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
 Quintic natural spline creator given a TH1.
 
 TSpline5 (const TSpline5 &)
 Copy constructor.
 
 ~TSpline5 () override
 
Double_t Derivative (Double_t x) const
 Derivative.
 
Double_t Eval (Double_t x) const override
 Eval this spline at x.
 
Int_t FindX (Double_t x) const
 Find X.
 
void GetCoeff (Int_t i, Double_t &x, Double_t &y, Double_t &b, Double_t &c, Double_t &d, Double_t &e, Double_t &f) const
 
void GetKnot (Int_t i, Double_t &x, Double_t &y) const override
 
TClassIsA () const override
 
TSpline5operator= (const TSpline5 &)
 Assignment operator.
 
void SaveAs (const char *filename, Option_t *option="") const override
 Write this spline as a C++ function that can be executed without ROOT the name of the function is the name of the file up to the "." if any.
 
void SavePrimitive (std::ostream &out, Option_t *option="") override
 Save primitive as a C++ statement(s) on output stream out.
 
virtual void SetPoint (Int_t i, Double_t x, Double_t y)
 Set point number i.
 
virtual void SetPointCoeff (Int_t i, Double_t b, Double_t c, Double_t d, Double_t e, Double_t f)
 Set point coefficient number i.
 
void Streamer (TBuffer &) override
 Stream an object of class TSpline5.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TSpline
 TSpline ()
 
 TSpline (const char *title, Double_t delta, Double_t xmin, Double_t xmax, Int_t np, Bool_t step)
 
 ~TSpline () override
 Destructor.
 
Int_t DistancetoPrimitive (Int_t px, Int_t py) override
 Compute distance from point px,py to a spline.
 
void Draw (Option_t *option="") override
 Draw this function with its current attributes.
 
void ExecuteEvent (Int_t event, Int_t px, Int_t py) override
 Execute action corresponding to one event.
 
virtual Double_t GetDelta () const
 
TH1FGetHistogram () const
 
virtual Int_t GetNp () const
 
virtual Int_t GetNpx () const
 
virtual Double_t GetXmax () const
 
virtual Double_t GetXmin () const
 
void Paint (Option_t *option="") override
 Paint this function with its current attributes.
 
void SetNpx (Int_t n)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
void Clear (Option_t *option="") override
 Set name and title to empty strings ("").
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
 
void Copy (TObject &named) const override
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
const char * GetName () const override
 Returns name of object.
 
const char * GetTitle () const override
 Returns title of object.
 
ULong_t Hash () const override
 Return hash value for this object.
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
void Print (Option_t *option="") const override
 Print TNamed name and title.
 
virtual void SetName (const char *name)
 Set the name of the TNamed.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor.
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor.
 
virtual ~TAttLine ()
 AttLine destructor.
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine.
 
Int_t DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
 Compute distance from point px,py to a line.
 
virtual Color_t GetLineColor () const
 Return the line color.
 
virtual Style_t GetLineStyle () const
 Return the line style.
 
virtual Width_t GetLineWidth () const
 Return the line width.
 
virtual void Modify ()
 Change current line attributes if necessary.
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values.
 
virtual void SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
 Save line attributes as C++ statement(s) on output stream out.
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes.
 
virtual void SetLineColor (Color_t lcolor)
 Set the line color.
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color.
 
virtual void SetLineStyle (Style_t lstyle)
 Set the line style.
 
virtual void SetLineWidth (Width_t lwidth)
 Set the line width.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor.
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor.
 
virtual ~TAttFill ()
 AttFill destructor.
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill.
 
virtual Color_t GetFillColor () const
 Return the fill area color.
 
virtual Style_t GetFillStyle () const
 Return the fill area style.
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary.
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values.
 
virtual void SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
 Save fill attributes as C++ statement(s) on output stream out.
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes.
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color.
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color.
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TAttMarker
 TAttMarker ()
 TAttMarker default constructor.
 
 TAttMarker (Color_t color, Style_t style, Size_t msize)
 TAttMarker normal constructor.
 
virtual ~TAttMarker ()
 TAttMarker destructor.
 
void Copy (TAttMarker &attmarker) const
 Copy this marker attributes to a new TAttMarker.
 
virtual Color_t GetMarkerColor () const
 Return the marker color.
 
virtual Size_t GetMarkerSize () const
 Return the marker size.
 
virtual Style_t GetMarkerStyle () const
 Return the marker style.
 
virtual void Modify ()
 Change current marker attributes if necessary.
 
virtual void ResetAttMarker (Option_t *toption="")
 Reset this marker attributes to the default values.
 
virtual void SaveMarkerAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
 Save line attributes as C++ statement(s) on output stream out.
 
virtual void SetMarkerAttributes ()
 Invoke the DialogCanvas Marker attributes.
 
virtual void SetMarkerColor (Color_t mcolor=1)
 Set the marker color.
 
virtual void SetMarkerColorAlpha (Color_t mcolor, Float_t malpha)
 Set a transparent marker color.
 
virtual void SetMarkerSize (Size_t msize=1)
 Set the marker size.
 
virtual void SetMarkerStyle (Style_t mstyle=1)
 Set the marker style.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static void Test ()
 Test method for TSpline5.
 
- Static Public Member Functions inherited from TSpline
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 
- Static Public Member Functions inherited from TAttLine
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TAttFill
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TAttMarker
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Width_t GetMarkerLineWidth (Style_t style)
 Internal helper function that returns the line width of the given marker style (0 = filled marker)
 
static Style_t GetMarkerStyleBase (Style_t style)
 Internal helper function that returns the corresponding marker style with line width 1 for the given style.
 

Protected Member Functions

void BoundaryConditions (const char *opt, Int_t &beg, Int_t &end, const char *&cb1, const char *&ce1, const char *&cb2, const char *&ce2)
 Check the boundary conditions and the amount of extra double knots needed.
 
void BuildCoeff () override
 Algorithm 600, collected algorithms from acm.
 
void SetBoundaries (Double_t b1, Double_t e1, Double_t b2, Double_t e2, const char *cb1, const char *ce1, const char *cb2, const char *ce2)
 Set the boundary conditions at double/triple knots.
 
- Protected Member Functions inherited from TSpline
 TSpline (const TSpline &)
 Copy constructor.
 
TSplineoperator= (const TSpline &)
 Assignment operator.
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 

Protected Attributes

TSplinePoly5fPoly
 [fNp] Array of polynomial terms
 
- Protected Attributes inherited from TSpline
Double_t fDelta
 Distance between equidistant knots.
 
TGraphfGraph
 Graph for drawing the knots.
 
TH1FfHistogram
 Temporary histogram.
 
Bool_t fKstep
 True of equidistant knots.
 
Int_t fNp
 Number of knots.
 
Int_t fNpx
 Number of points used for graphical representation.
 
Double_t fXmax
 Maximum value of abscissa.
 
Double_t fXmin
 Minimum value of abscissa.
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 Line color.
 
Style_t fLineStyle
 Line style.
 
Width_t fLineWidth
 Line width.
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 Fill area color.
 
Style_t fFillStyle
 Fill area style.
 
- Protected Attributes inherited from TAttMarker
Color_t fMarkerColor
 Marker color.
 
Size_t fMarkerSize
 Marker size.
 
Style_t fMarkerStyle
 Marker style.
 

Additional Inherited Members

- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 

#include <TSpline.h>

Inheritance diagram for TSpline5:
[legend]

Constructor & Destructor Documentation

◆ TSpline5() [1/8]

TSpline5::TSpline5 ( )
inline

Definition at line 270 of file TSpline.h.

◆ TSpline5() [2/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  x[],
Double_t  y[],
Int_t  n,
const char *  opt = nullptr,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given an array of arbitrary knots in increasing abscissa order and possibly end point conditions.

Definition at line 1213 of file TSpline.cxx.

◆ TSpline5() [3/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  xmin,
Double_t  xmax,
Double_t  y[],
Int_t  n,
const char *  opt = nullptr,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given an array of arbitrary function values on equidistant n abscissa values from xmin to xmax and possibly end point conditions.

Definition at line 1246 of file TSpline.cxx.

◆ TSpline5() [4/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  x[],
const TF1 func,
Int_t  n,
const char *  opt = nullptr,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given an array of arbitrary abscissas in increasing order and a function to interpolate and possibly end point conditions.

Definition at line 1280 of file TSpline.cxx.

◆ TSpline5() [5/8]

TSpline5::TSpline5 ( const char *  title,
Double_t  xmin,
Double_t  xmax,
const TF1 func,
Int_t  n,
const char *  opt = nullptr,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given a function to be evaluated on n equidistant abscissa points between xmin and xmax and possibly end point conditions.

Definition at line 1313 of file TSpline.cxx.

◆ TSpline5() [6/8]

TSpline5::TSpline5 ( const char *  title,
const TGraph g,
const char *  opt = nullptr,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given a TGraph with abscissa in increasing order and possibly end point conditions.

Definition at line 1349 of file TSpline.cxx.

◆ TSpline5() [7/8]

TSpline5::TSpline5 ( const TH1 h,
const char *  opt = nullptr,
Double_t  b1 = 0,
Double_t  e1 = 0,
Double_t  b2 = 0,
Double_t  e2 = 0 
)

Quintic natural spline creator given a TH1.

Definition at line 1384 of file TSpline.cxx.

◆ TSpline5() [8/8]

TSpline5::TSpline5 ( const TSpline5 sp5)

Copy constructor.

Definition at line 1416 of file TSpline.cxx.

◆ ~TSpline5()

TSpline5::~TSpline5 ( )
inlineoverride

Definition at line 301 of file TSpline.h.

Member Function Documentation

◆ BoundaryConditions()

void TSpline5::BoundaryConditions ( const char *  opt,
Int_t beg,
Int_t end,
const char *&  cb1,
const char *&  ce1,
const char *&  cb2,
const char *&  ce2 
)
protected

Check the boundary conditions and the amount of extra double knots needed.

Definition at line 1446 of file TSpline.cxx.

◆ BuildCoeff()

void TSpline5::BuildCoeff ( void  )
overrideprotectedvirtual

Algorithm 600, collected algorithms from acm.

algorithm appeared in acm-trans. math. software, vol.9, no. 2, jun., 1983, p. 258-259.

TSpline5 computes the coefficients of a quintic natural quintic spli
s(x) with knots x(i) interpolating there to given function values:
s(x(i)) = y(i) for i = 1,2, ..., n.
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16

in each interval (x(i),x(i+1)) the spline function s(xx) is a polynomial of fifth degree:

s(xx) = ((((f(i)*p+e(i))*p+d(i))*p+c(i))*p+b(i))*p+y(i) (*)
= ((((-f(i)*q+e(i+1))*q-d(i+1))*q+c(i+1))*q-b(i+1))*q+y(i+1)
#define d(i)
Definition RSha256.hxx:102
#define b(i)
Definition RSha256.hxx:100
#define f(i)
Definition RSha256.hxx:104
#define c(i)
Definition RSha256.hxx:101
#define e(i)
Definition RSha256.hxx:103
winID h TVirtualViewer3D TVirtualGLPainter p
float * q

where p = xx - x(i) and q = x(i+1) - xx. (note the first subscript in the second expression.) the different polynomials are pieced together so that s(x) and its derivatives up to s"" are continuous.

input:

n          number of data points, (at least three, i.e. n > 2)
x(1:n)     the strictly increasing or decreasing sequence of
           knots.  the spacing must be such that the fifth power
           of x(i+1) - x(i) can be formed without overflow or
           underflow of exponents.
y(1:n)     the prescribed function values at the knots.

output:

b,c,d,e,f  the computed spline coefficients as in (*).
    (1:n)  specifically
           b(i) = s'(x(i)), c(i) = s"(x(i))/2, d(i) = s"'(x(i))/6,
           e(i) = s""(x(i))/24,  f(i) = s""'(x(i))/120.
           f(n) is neither used nor altered.  the five arrays
           b,c,d,e,f must always be distinct.

option:

it is possible to specify values for the first and second
derivatives of the spline function at arbitrarily many knots.
this is done by relaxing the requirement that the sequence of
knots be strictly increasing or decreasing.  specifically:
if x(j) = x(j+1) then s(x(j)) = y(j) and s'(x(j)) = y(j+1),
if x(j) = x(j+1) = x(j+2) then in addition s"(x(j)) = y(j+2).
note that s""(x) is discontinuous at a double knot and, in
addition, s"'(x) is discontinuous at a triple knot.  the
subroutine assigns y(i) to y(i+1) in these cases and also to
y(i+2) at a triple knot.  the representation (*) remains
valid in each open interval (x(i),x(i+1)).  at a double knot,
x(j) = x(j+1), the output coefficients have the following values:
y(j) = s(x(j)) = y(j+1)
b(j) = s'(x(j)) = b(j+1)
c(j) = s"(x(j))/2 = c(j+1)
d(j) = s"'(x(j))/6 = d(j+1)
e(j) = s""(x(j)-0)/24 e(j+1) = s""(x(j)+0)/24
f(j) = s""'(x(j)-0)/120 f(j+1) = s""'(x(j)+0)/120

at a triple knot, x(j) = x(j+1) = x(j+2), the output coefficients have the following values:

y(j) = s(x(j)) = y(j+1) = y(j+2)
b(j) = s'(x(j)) = b(j+1) = b(j+2)
c(j) = s"(x(j))/2 = c(j+1) = c(j+2)
d(j) = s"'((x(j)-0)/6 d(j+1) = 0 d(j+2) = s"'(x(j)+0)/6
e(j) = s""(x(j)-0)/24 e(j+1) = 0 e(j+2) = s""(x(j)+0)/24
f(j) = s""'(x(j)-0)/120 f(j+1) = 0 f(j+2) = s""'(x(j)+0)/120

Implements TSpline.

Definition at line 1904 of file TSpline.cxx.

◆ Class()

static TClass * TSpline5::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TSpline5::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TSpline5::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 316 of file TSpline.h.

◆ DeclFileName()

static const char * TSpline5::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 316 of file TSpline.h.

◆ Derivative()

Double_t TSpline5::Derivative ( Double_t  x) const

Derivative.

Definition at line 1571 of file TSpline.cxx.

◆ Eval()

Double_t TSpline5::Eval ( Double_t  x) const
overridevirtual

Eval this spline at x.

Implements TSpline.

Definition at line 1562 of file TSpline.cxx.

◆ FindX()

Int_t TSpline5::FindX ( Double_t  x) const

Find X.

Definition at line 1526 of file TSpline.cxx.

◆ GetCoeff()

void TSpline5::GetCoeff ( Int_t  i,
Double_t x,
Double_t y,
Double_t b,
Double_t c,
Double_t d,
Double_t e,
Double_t f 
) const
inline

Definition at line 302 of file TSpline.h.

◆ GetKnot()

void TSpline5::GetKnot ( Int_t  i,
Double_t x,
Double_t y 
) const
inlineoverridevirtual

Implements TSpline.

Definition at line 307 of file TSpline.h.

◆ IsA()

TClass * TSpline5::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TSpline.

Definition at line 316 of file TSpline.h.

◆ operator=()

TSpline5 & TSpline5::operator= ( const TSpline5 sp5)

Assignment operator.

Definition at line 1429 of file TSpline.cxx.

◆ SaveAs()

void TSpline5::SaveAs ( const char *  filename,
Option_t option = "" 
) const
overridevirtual

Write this spline as a C++ function that can be executed without ROOT the name of the function is the name of the file up to the "." if any.

Reimplemented from TSpline.

Definition at line 1581 of file TSpline.cxx.

◆ SavePrimitive()

void TSpline5::SavePrimitive ( std::ostream &  out,
Option_t option = "" 
)
overridevirtual

Save primitive as a C++ statement(s) on output stream out.

Reimplemented from TObject.

Definition at line 1772 of file TSpline.cxx.

◆ SetBoundaries()

void TSpline5::SetBoundaries ( Double_t  b1,
Double_t  e1,
Double_t  b2,
Double_t  e2,
const char *  cb1,
const char *  ce1,
const char *  cb2,
const char *  ce2 
)
protected

Set the boundary conditions at double/triple knots.

Definition at line 1477 of file TSpline.cxx.

◆ SetPoint()

void TSpline5::SetPoint ( Int_t  i,
Double_t  x,
Double_t  y 
)
virtual

Set point number i.

Definition at line 1805 of file TSpline.cxx.

◆ SetPointCoeff()

void TSpline5::SetPointCoeff ( Int_t  i,
Double_t  b,
Double_t  c,
Double_t  d,
Double_t  e,
Double_t  f 
)
virtual

Set point coefficient number i.

Definition at line 1816 of file TSpline.cxx.

◆ Streamer()

void TSpline5::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class TSpline5.

Reimplemented from TSpline.

Definition at line 2487 of file TSpline.cxx.

◆ StreamerNVirtual()

void TSpline5::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 316 of file TSpline.h.

◆ Test()

void TSpline5::Test ( )
static

Test method for TSpline5.

n number of data points.
m 2*m-1 is order of spline.
m = 3 always for quintic spline.
nn,nm1,mm,
mm1,i,k,
j,jj temporary integer variables.
z,p temporary double precision variables.
x[n] the sequence of knots.
y[n] the prescribed function values at the knots.
a[200][6] two dimensional array whose columns are
the computed spline coefficients
diff[5] maximum values of differences of values and
derivatives to right and left of knots.
com[5] maximum values of coefficients.
RooAbsReal & function()
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
TMarker m
Definition textangle.C:8

test of TSpline5 with non equidistant knots and equidistant knots follows.

Definition at line 2082 of file TSpline.cxx.

Member Data Documentation

◆ fPoly

TSplinePoly5* TSpline5::fPoly
protected

[fNp] Array of polynomial terms

Definition at line 260 of file TSpline.h.

Libraries for TSpline5:

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