Program Listing for File ZeroQuantity.h

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

#ifndef __ZERO_QUANTITY_H
#define __ZERO_QUANTITY_H

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

namespace StellarEvolution {

    class LIB_LOCAL ZeroQuantity : public EvolvingStellarQuantity {
    public:
        void select_interpolation_region(double age) {}

        double operator()(double) const {return 0;}

        const FunctionDerivatives *deriv(double) const
        {return new Core::ZeroDerivatives;}

        double range_high() const {return Inf;}

        double range_low() const {return -Inf;}

        double next_discontinuity() const {return Inf;}

        double enable_next_interpolation_region();

        InterpSolutionIterator crossings(double =0) const
        {throw Error::Runtime("Called ZeroQuantity::crossings, "
                              "which are ill defined.");}
    }; //End ZeroQuantity declaration.

} //End StellarEvolution namespace.

#endif