1#ifndef COOLPROP_REGION_PIECEWISE_CHEBYSHEV_CURVE_H
2#define COOLPROP_REGION_PIECEWISE_CHEBYSHEV_CURVE_H
60 static std::unique_ptr<PiecewiseChebyshevCurve>
build(
double a_lo,
double a_hi, std::size_t n_pieces, std::size_t degree,
ParamScale scale,
61 const std::function<
double(
double)>& f);
89 [[nodiscard]]
double eval(
double a)
const noexcept override;
90 [[nodiscard]]
double eval_da(
double a)
const noexcept override;
91 [[nodiscard]] std::pair<double, double>
bounds() const noexcept override;
92 [[nodiscard]] std::pair<
double,
double>
a_range() const noexcept override;
101 std::vector<double> coeffs;
107 std::vector<double> deriv_coeffs;
112 [[nodiscard]] std::size_t locate_piece(
double t)
const noexcept;
116 [[nodiscard]]
double to_t(
double a)
const noexcept;
121 [[nodiscard]]
double dt_da(
double a)
const noexcept;
126 std::vector<Piece> pieces_;