ROOT   Reference Guide
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 247 of file TSpline.h.

## Public Member Functions

TSpline5 ()

TSpline5 (const char *title, const TGraph *g, const char *opt=0, 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. More...

TSpline5 (const char *title, Double_t x[], const TF1 *func, Int_t n, const char *opt=0, 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. More...

TSpline5 (const char *title, Double_t x[], Double_t y[], Int_t n, const char *opt=0, 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. More...

TSpline5 (const char *title, Double_t xmin, Double_t xmax, const TF1 *func, Int_t n, const char *opt=0, 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. More...

TSpline5 (const char *title, Double_t xmin, Double_t xmax, Double_t y[], Int_t n, const char *opt=0, 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. More...

TSpline5 (const TH1 *h, const char *opt=0, Double_t b1=0, Double_t e1=0, Double_t b2=0, Double_t e2=0)
Quintic natural spline creator given a TH1. More...

TSpline5 (const TSpline5 &)
Copy constructor. More...

virtual ~TSpline5 ()

Double_t Derivative (Double_t x) const
Derivative. More...

Double_t Eval (Double_t x) const
Eval this spline at x. More...

Int_t FindX (Double_t x) const
Find X. More...

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)

void GetKnot (Int_t i, Double_t &x, Double_t &y) const

TSpline5operator= (const TSpline5 &)
Assignment operator. More...

virtual void SaveAs (const char *filename, Option_t *option="") const
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. More...

virtual void SavePrimitive (std::ostream &out, Option_t *option="")
Save primitive as a C++ statement(s) on output stream out. More...

virtual void SetPoint (Int_t i, Double_t x, Double_t y)
Set point number i. More...

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. More...

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)

virtual ~TSpline ()
Destructor. More...

virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
Compute distance from point px,py to a spline. More...

virtual void Draw (Option_t *option="")
Draw this function with its current attributes. More...

virtual Double_t Eval (Double_t x) const =0

virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
Execute action corresponding to one event. More...

virtual Double_t GetDelta () const

TH1FGetHistogram () const

virtual void GetKnot (Int_t i, Double_t &x, Double_t &y) const =0

virtual Int_t GetNp () const

virtual Int_t GetNpx () const

virtual Double_t GetXmax () const

virtual Double_t GetXmin () const

virtual void Paint (Option_t *option="")
Paint this function with its current attributes. More...

virtual void SaveAs (const char *, Option_t *) const
Save this object in the file specified by filename. More...

void SetNpx (Int_t n)

Public Member Functions inherited from TNamed
TNamed ()

TNamed (const char *name, const char *title)

TNamed (const TNamed &named)
TNamed copy ctor. More...

TNamed (const TString &name, const TString &title)

virtual ~TNamed ()
TNamed destructor. More...

virtual void Clear (Option_t *option="")
Set name and title to empty strings (""). More...

virtual TObjectClone (const char *newname="") const
Make a clone of an object using the Streamer facility. More...

virtual Int_t Compare (const TObject *obj) const
Compare two TNamed objects. More...

virtual void Copy (TObject &named) const
Copy this to obj. More...

virtual void FillBuffer (char *&buffer)
Encode TNamed into output buffer. More...

virtual const char * GetName () const
Returns name of object. More...

virtual const char * GetTitle () const
Returns title of object. More...

virtual ULong_t Hash () const
Return hash value for this object. More...

virtual Bool_t IsSortable () const

virtual void ls (Option_t *option="") const
List TNamed name and title. More...

TNamedoperator= (const TNamed &rhs)
TNamed assignment operator. More...

virtual void Print (Option_t *option="") const
Print TNamed name and title. More...

virtual void SetName (const char *name)
Set the name of the TNamed. More...

virtual void SetNameTitle (const char *name, const char *title)
Set all the TNamed parameters (name and title). More...

virtual void SetTitle (const char *title="")
Set the title of the TNamed. More...

virtual Int_t Sizeof () const
Return size of the TNamed part of the TObject. More...

Public Member Functions inherited from TObject
TObject ()
TObject constructor. More...

TObject (const TObject &object)
TObject copy ctor. More...

virtual ~TObject ()
TObject destructor. More...

void AbstractMethod (const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...

Append graphics object to current pad. More...

virtual void Browse (TBrowser *b)
Browse object. May be overridden for another default action. More...

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. More...

virtual const char * ClassName () const
Returns name of class to which the object belongs. More...

virtual void Clear (Option_t *="")

virtual TObjectClone (const char *newname="") const
Make a clone of an object using the Streamer facility. More...

virtual Int_t Compare (const TObject *obj) const
Compare abstract method. More...

virtual void Copy (TObject &object) const
Copy this to obj. More...

virtual void Delete (Option_t *option="")
Delete this object. More...

virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
Computes distance from point (px,py) to the object. More...

virtual void Draw (Option_t *option="")
Default Draw method for all objects. More...

virtual void DrawClass () const
Draw class inheritance tree of the class to which this object belongs. More...

virtual TObjectDrawClone (Option_t *option="") const

virtual void Dump () const
Dump contents of object on stdout. More...

virtual void Error (const char *method, const char *msgfmt,...) const
Issue error message. More...

virtual void Execute (const char *method, const char *params, Int_t *error=0)
Execute method on this object with the given parameter string, e.g. More...

virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
Execute method on this object with parameters stored in the TObjArray. More...

virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
Execute action corresponding to an event at (px,py). More...

virtual void Fatal (const char *method, const char *msgfmt,...) const
Issue fatal error message. More...

virtual TObjectFindObject (const char *name) const
Must be redefined in derived classes. More...

virtual TObjectFindObject (const TObject *obj) const
Must be redefined in derived classes. More...

virtual Option_tGetDrawOption () const
Get option used by the graphics system to draw this object. More...

virtual const char * GetIconName () const
Returns mime type name of object. More...

virtual const char * GetName () const
Returns name of object. More...

virtual char * GetObjectInfo (Int_t px, Int_t py) const
Returns string containing info about the object at position (px,py). More...

virtual Option_tGetOption () const

virtual const char * GetTitle () const
Returns title of object. More...

virtual UInt_t GetUniqueID () const
Return the unique object id. More...

virtual Bool_t HandleTimer (TTimer *timer)
Execute action in response of a timer timing out. More...

virtual ULong_t Hash () const
Return hash value for this object. More...

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. More...

virtual void Info (const char *method, const char *msgfmt,...) const
Issue info message. More...

virtual Bool_t InheritsFrom (const char *classname) const
Returns kTRUE if object inherits from class "classname". More...

virtual Bool_t InheritsFrom (const TClass *cl) const
Returns kTRUE if object inherits from TClass cl. More...

virtual void Inspect () const
Dump contents of this object in a graphics canvas. More...

void InvertBit (UInt_t f)

virtual Bool_t IsEqual (const TObject *obj) const
Default equal comparison (objects are equal if they have the same address in memory). More...

virtual Bool_t IsFolder () const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...

R__ALWAYS_INLINE Bool_t IsOnHeap () const

virtual Bool_t IsSortable () const

R__ALWAYS_INLINE Bool_t IsZombie () const

virtual void ls (Option_t *option="") const
The ls function lists the contents of a class on stdout. More...

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). More...

virtual Bool_t Notify ()
This method must be overridden to handle object notification. More...

void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
Use this method to declare a method obsolete. More...

void operator delete (void *ptr)
Operator delete. More...

void operator delete[] (void *ptr)
Operator delete []. More...

voidoperator new (size_t sz)

voidoperator new (size_t sz, void *vp)

voidoperator new[] (size_t sz)

voidoperator new[] (size_t sz, void *vp)

TObjectoperator= (const TObject &rhs)
TObject assignment operator. More...

virtual void Paint (Option_t *option="")
This method must be overridden if a class wants to paint itself. More...

virtual void Pop ()
Pop on object drawn in a pad to the top of the display list. More...

virtual void Print (Option_t *option="") const
This method must be overridden when a class wants to print itself. More...

virtual Int_t Read (const char *name)
Read contents of object with specified name from the current directory. More...

virtual void RecursiveRemove (TObject *obj)
Recursively remove this object from a list. More...

void ResetBit (UInt_t f)

virtual void SaveAs (const char *filename="", Option_t *option="") const
Save this object in the file specified by filename. More...

virtual void SavePrimitive (std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out". More...

void SetBit (UInt_t f)

void SetBit (UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f. More...

virtual void SetDrawOption (Option_t *option="")
Set drawing option for object. More...

virtual void SetUniqueID (UInt_t uid)
Set the unique object id. More...

virtual void SysError (const char *method, const char *msgfmt,...) const
Issue system error message. More...

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. More...

virtual void Warning (const char *method, const char *msgfmt,...) const
Issue warning message. More...

virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory. More...

virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
Write this object to the current directory. More...

Public Member Functions inherited from TAttLine
TAttLine ()
AttLine default constructor. More...

TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
AttLine normal constructor. More...

virtual ~TAttLine ()
AttLine destructor. More...

void Copy (TAttLine &attline) const
Copy this line attributes to a new TAttLine. More...

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. More...

virtual Color_t GetLineColor () const
Return the line color. More...

virtual Style_t GetLineStyle () const
Return the line style. More...

virtual Width_t GetLineWidth () const
Return the line width. More...

virtual void Modify ()
Change current line attributes if necessary. More...

virtual void ResetAttLine (Option_t *option="")
Reset this line attributes to default values. More...

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. More...

virtual void SetLineAttributes ()
Invoke the DialogCanvas Line attributes. More...

virtual void SetLineColor (Color_t lcolor)
Set the line color. More...

virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
Set a transparent line color. More...

virtual void SetLineStyle (Style_t lstyle)
Set the line style. More...

virtual void SetLineWidth (Width_t lwidth)
Set the line width. More...

Public Member Functions inherited from TAttFill
TAttFill ()
AttFill default constructor. More...

TAttFill (Color_t fcolor, Style_t fstyle)
AttFill normal constructor. More...

virtual ~TAttFill ()
AttFill destructor. More...

void Copy (TAttFill &attfill) const
Copy this fill attributes to a new TAttFill. More...

virtual Color_t GetFillColor () const
Return the fill area color. More...

virtual Style_t GetFillStyle () const
Return the fill area style. More...

virtual Bool_t IsTransparent () const

virtual void Modify ()
Change current fill area attributes if necessary. More...

virtual void ResetAttFill (Option_t *option="")
Reset this fill attributes to default values. More...

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. More...

virtual void SetFillAttributes ()
Invoke the DialogCanvas Fill attributes. More...

virtual void SetFillColor (Color_t fcolor)
Set the fill area color. More...

virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
Set a transparent fill color. More...

virtual void SetFillStyle (Style_t fstyle)
Set the fill area style. More...

Public Member Functions inherited from TAttMarker
TAttMarker ()
TAttMarker default constructor. More...

TAttMarker (Color_t color, Style_t style, Size_t msize)
TAttMarker normal constructor. More...

virtual ~TAttMarker ()
TAttMarker destructor. More...

void Copy (TAttMarker &attmarker) const
Copy this marker attributes to a new TAttMarker. More...

virtual Color_t GetMarkerColor () const
Return the marker color. More...

virtual Size_t GetMarkerSize () const
Return the marker size. More...

virtual Style_t GetMarkerStyle () const
Return the marker style. More...

virtual void Modify ()
Change current marker attributes if necessary. More...

virtual void ResetAttMarker (Option_t *toption="")
Reset this marker attributes to the default values. More...

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. More...

virtual void SetMarkerAttributes ()
Invoke the DialogCanvas Marker attributes. More...

virtual void SetMarkerColor (Color_t mcolor=1)
Set the marker color. More...

virtual void SetMarkerColorAlpha (Color_t mcolor, Float_t malpha)
Set a transparent marker color. More...

virtual void SetMarkerSize (Size_t msize=1)
Set the marker size. More...

virtual void SetMarkerStyle (Style_t mstyle=1)
Set the marker style. More...

## Static Public Member Functions

static void Test ()
Test method for TSpline5. More...

Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
Return destructor only flag. More...

static Bool_t GetObjectStat ()
Get status of object stat flag. More...

static void SetDtorOnly (void *obj)
Set destructor only flag. More...

static void SetObjectStat (Bool_t stat)
Turn on/off tracking of objects in the TObjectTable. More...

Static Public Member Functions inherited from TAttMarker
static Width_t GetMarkerLineWidth (Style_t style)
Internal helper function that returns the line width of the given marker style (0 = filled marker) More...

static Style_t GetMarkerStyleBase (Style_t style)
Internal helper function that returns the corresponding marker style with line width 1 for the given style. More...

## 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. More...

void BuildCoeff ()
Algorithm 600, collected algorithms from acm. More...

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. More...

Protected Member Functions inherited from TSpline
TSpline (const TSpline &)
Copy constructor. More...

virtual void BuildCoeff ()=0

TSplineoperator= (const TSpline &)
Assignment operator. More...

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). More...

void MakeZombie ()

## Protected Attributes

TSplinePoly5fPoly

Protected Attributes inherited from TSpline
Double_t fDelta

TGraphfGraph

TH1FfHistogram

Bool_t fKstep

Int_t fNp

Int_t fNpx

Double_t fXmax

Double_t fXmin

Protected Attributes inherited from TNamed
TString fName

TString fTitle

Protected Attributes inherited from TAttLine
Color_t fLineColor
Line color. More...

Style_t fLineStyle
Line style. More...

Width_t fLineWidth
Line width. More...

Protected Attributes inherited from TAttFill
Color_t fFillColor
Fill area color. More...

Style_t fFillStyle
Fill area style. More...

Protected Attributes inherited from TAttMarker
Color_t fMarkerColor
Marker color. More...

Size_t fMarkerSize
Marker size. More...

Style_t fMarkerStyle
Marker style. More...

Public Types inherited from TObject
enum  {
kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
}

enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }

enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }

enum  EStatusBits {
kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}

Protected Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }

#include <TSpline.h>

Inheritance diagram for TSpline5:
[legend]

## ◆ TSpline5() [1/8]

 TSpline5::TSpline5 ( )
inline

Definition at line 260 of file TSpline.h.

## ◆ TSpline5() [2/8]

 TSpline5::TSpline5 ( const char * title, Double_t x[], Double_t y[], Int_t n, const char * opt = 0, 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 1209 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 = 0, 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 1242 of file TSpline.cxx.

## ◆ TSpline5() [4/8]

 TSpline5::TSpline5 ( const char * title, Double_t x[], const TF1 * func, Int_t n, const char * opt = 0, 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 1276 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 = 0, 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 1309 of file TSpline.cxx.

## ◆ TSpline5() [6/8]

 TSpline5::TSpline5 ( const char * title, const TGraph * g, const char * opt = 0, 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 1345 of file TSpline.cxx.

## ◆ TSpline5() [7/8]

 TSpline5::TSpline5 ( const TH1 * h, const char * opt = 0, 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 1380 of file TSpline.cxx.

## ◆ TSpline5() [8/8]

 TSpline5::TSpline5 ( const TSpline5 & sp5 )

Copy constructor.

Definition at line 1412 of file TSpline.cxx.

## ◆ ~TSpline5()

 virtual TSpline5::~TSpline5 ( )
inlinevirtual

Definition at line 291 of file TSpline.h.

## ◆ 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 1442 of file TSpline.cxx.

## ◆ BuildCoeff()

 void TSpline5::BuildCoeff ( void )
protectedvirtual

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
static constexpr double s

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
float * q
Definition: THbookFile.cxx:87

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 1900 of file TSpline.cxx.

## ◆ Derivative()

 Double_t TSpline5::Derivative ( Double_t x ) const

Derivative.

Definition at line 1567 of file TSpline.cxx.

## ◆ Eval()

 Double_t TSpline5::Eval ( Double_t x ) const
virtual

Eval this spline at x.

Implements TSpline.

Definition at line 1558 of file TSpline.cxx.

## ◆ FindX()

 Int_t TSpline5::FindX ( Double_t x ) const

Find X.

Definition at line 1522 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 )
inline

Definition at line 292 of file TSpline.h.

## ◆ GetKnot()

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

Implements TSpline.

Definition at line 297 of file TSpline.h.

## ◆ operator=()

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

Assignment operator.

Definition at line 1425 of file TSpline.cxx.

## ◆ SaveAs()

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

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 1577 of file TSpline.cxx.

## ◆ SavePrimitive()

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

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

Reimplemented from TObject.

Definition at line 1768 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 1473 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 1801 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 1812 of file TSpline.cxx.

## ◆ 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.
point * points
Definition: X3DBuffer.c:22
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
Definition: RExports.h:151
static constexpr double mm
void variables(TString dataset, TString fin="TMVA.root", TString dirName="InputVariables_Id", TString title="TMVA Input Variables", Bool_t isRegression=kFALSE, Bool_t useTMVAStyle=kTRUE)
auto * m
Definition: textangle.C:8

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

Definition at line 2078 of file TSpline.cxx.

## ◆ fPoly

 TSplinePoly5* TSpline5::fPoly
protected

Definition at line 250 of file TSpline.h.

Libraries for TSpline5:
[legend]

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