1#ifndef COOLPROP_SVD_HERMITE1D_H
2#define COOLPROP_SVD_HERMITE1D_H
34 const double t2 = t * t;
35 const double t3 = t2 * t;
36 return {2.0 * t3 - 3.0 * t2 + 1.0, t3 - 2.0 * t2 + t, -2.0 * t3 + 3.0 * t2, t3 - t2};
39inline double hermite_eval(
double y0,
double y1,
double m0,
double m1,
double h,
double t)
noexcept {
41 return b.
h00 * y0 + b.
h10 * h * m0 + b.
h01 * y1 + b.
h11 * h * m1;
45inline double hermite_eval_deriv(
double y0,
double y1,
double m0,
double m1,
double h,
double t)
noexcept {
46 const double t2 = t * t;
48 const double dh00 = 6.0 * t2 - 6.0 * t;
49 const double dh10 = 3.0 * t2 - 4.0 * t + 1.0;
50 const double dh01 = -6.0 * t2 + 6.0 * t;
51 const double dh11 = 3.0 * t2 - 2.0 * t;
52 const double dp_dt = dh00 * y0 + dh10 * h * m0 + dh01 * y1 + dh11 * h * m1;