CoolProp

This is generalized class that can be used to manage an ancillary curve, here they are ancillary curves for saturation pressure, density, enthalpy, entropy.
The form of the ancillary equation can take one of a number of forms:
a) Socalled "exponential" form (type = TYPE_EXPONENTIAL) that has a form like
\[ y = y_c\exp\left(\frac{T_c}{T}\sum(n_i \theta^{t_i})\right) \]
or
\[ y = y_c\exp\left(\sum(n_i \theta^{t_i})\right) \]
b) A nonexponential form (type = TYPE_NOT_EXPONENTIAL) that has a form of
\[ y = y_c\left(1+\sum_i(n_i\theta^t_i)\right) \]
with
\[ \theta = \left(1\frac{T}{T_c}\right) \]
which is conveniently equal to zero at the critical point
c) Rational polynomial form (type = TYPE_RATIONAL_POLYNOMIAL) that has a form of
\[ y = \frac{\sum_iA_iT^i}{\sum_iB_iT^i}\]
where i is an integer, and the coefficients are in increasing order in both numerator and denominator
#include <Ancillaries.h>
Public Member Functions  
SaturationAncillaryFunction (rapidjson::Value &json_code)  
bool  enabled (void) 
Return true if the ancillary is enabled (type is not TYPE_NOT_SET)  
CoolPropDbl  get_max_abs_error () 
Get the maximum absolute error for this fit. More...  
double  evaluate (double T) 
Evaluate this ancillary function, yielding for instance the saturated liquid density. More...  
double  invert (double value, double min_bound=1, double max_bound=1) 
Invert this ancillary function, and calculate the temperature given the output the value of the function. More...  
double  get_Tmin (void) 
Get the minimum temperature in K.  
double  get_Tmax (void) 
Get the maximum temperature in K.  
double CoolProp::SaturationAncillaryFunction::evaluate  (  double  T  ) 
Evaluate this ancillary function, yielding for instance the saturated liquid density.
T  The temperature in K 

inline 
Get the maximum absolute error for this fit.
double CoolProp::SaturationAncillaryFunction::invert  (  double  value, 
double  min_bound = 1 , 

double  max_bound = 1 

) 
Invert this ancillary function, and calculate the temperature given the output the value of the function.
value  The value of the output 
min_bound  (optional) The minimum value for T; ignored if < 0 
max_bound  (optional) The maximum value for T; ignored if < 0 