Program Listing for File RemoveLogDeriv.h

Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/StellarEvolution/RemoveLogDeriv.h)

#ifndef __REMOVE_LOG_DERIV_H
#define __REMOVE_LOG_DERIV_H

#include "../Core/SharedLibraryExportMacros.h"
#include "../Core/LogDerivatives.h"

namespace StellarEvolution {

    class LIB_LOCAL RemoveLogDeriv : public LogDerivatives {
    private:
        const FunctionDerivatives *__log_deriv;

        bool __delete_deriv;
    protected:
        double calc_deriv(unsigned deriv_order) const
        {return __log_deriv->order(deriv_order);}
    public:
        RemoveLogDeriv(
            double age,
            bool log_quantity,
            const FunctionDerivatives *log_deriv,
            bool delete_deriv
        ) :
            LogDerivatives(age, log_quantity),
            __log_deriv(log_deriv),
            __delete_deriv(delete_deriv)
        {}

        ~RemoveLogDeriv()
        {if(__delete_deriv) delete __log_deriv;}
    }; //End RemoveLogDeriv class declaration.

} //End StellarEvolution namespace.

#endif