9 #ifndef __LOG_ARG_DERIVATIVES_H 10 #define __LOG_ARG_DERIVATIVES_H 12 #include "../Core/SharedLibraryExportMacros.h" 38 mutable std::vector<double>
50 double transform_log_x_deriv(
unsigned order)
const;
56 double transform_log_y_deriv(
60 double uncorrected_derivative,
69 virtual double calc_deriv(
unsigned deriv_order)
const =0;
87 ) : __x(x), __log_x(!
std::isnan(x)), __log_y(log_y) {}
90 double order(
unsigned deriv_order=1)
const;
A hierarchy of classes representing functions.
Defines the exception hierarchy used by this code.
Calculate dy/dx given dy/dx, dy/dln(x), dln(y)/dx or dln(y)/dln(x).
LogDerivatives(double x=NaN, bool log_y=false)
Create a derivative for possibly log(functions) of possibly log(arg).
double __x
The value of the argument at which derivatives are calculated.
A class representing arbitrary order derivatives of a function.
std::vector< double > __underlying_deriv_values
Cache for previously computed underlying derivative values.
const double NaN
Not a number.
bool __log_y
Is the underlying derivative of log(quantity)