//! Uses cubic splines to create a piecewise polynomial (order 3) for the given data pairs vdSupportingPoints and vdDataPoints. vdSupportingPoints need to be sorted in ascending order
//! Uses cubic splines to create a piecewise polynomial (order 3) for the given data pairs vdSupportingPoints and vdDataPoints. Evaluates that Polynom at vdCostumPoints. vdSupportingPoints need to be sorted in ascending order.
//! Uses cubic splines to create a piecewise polynomial (order 3) for the given data pairs vdSupportingPoints and vdDataPoints. vdSupportingPoints need to be sorted in ascending order
//! Uses cubic splines to create a piecewise polynomial (order 3) for the given data pairs vdSupportingPoints and vdDataPoints. Evaluates that Polynom at vdCostumPoints. vdSupportingPoints need to be sorted in ascending order.
ITA_EXCEPT_INVALID_PARAMETER("Polynom order must be greater or equal zero.");
constintiMinimumNBreakPoints=std::max(2,iOrder+1);// At least one interval
if(vdBreakPoints.size()<iMinimumNBreakPoints)
ITA_EXCEPT_INVALID_PARAMETER("Number of break points not sufficient for polynom order: Expected "+std::to_string(iMinimumNBreakPoints)+" but got "+std::to_string(vdBreakPoints.size())+".");
constintnCoeffs=NumIntervals()*(iOrder+1);
if(vdCoeffs.size()!=nCoeffs)
ITA_EXCEPT_INVALID_PARAMETER("Invalid number of coefficients: Expected "+std::to_string(nCoeffs)+" but got "+std::to_string(vdCoeffs.size())+".");
ITA_EXCEPT_INVALID_PARAMETER("Polynom order must be greater or equal zero.");
constintiMinimumNBreakPoints=std::max(2,iOrder+1);// At least one interval
if(vdBreakPoints.size()<iMinimumNBreakPoints)
ITA_EXCEPT_INVALID_PARAMETER("Number of break points not sufficient for polynom order: Expected "+std::to_string(iMinimumNBreakPoints)+" but got "+std::to_string(vdBreakPoints.size())+".");
constintnCoeffs=NumIntervals()*(iOrder+1);
if(vdCoeffs.size()!=nCoeffs)
ITA_EXCEPT_INVALID_PARAMETER("Invalid number of coefficients: Expected "+std::to_string(nCoeffs)+" but got "+std::to_string(vdCoeffs.size())+".");