diff --git a/Core/Algorithms/IIntensityFunction.cpp b/Core/Algorithms/IIntensityFunction.cpp new file mode 100644 index 0000000000000000000000000000000000000000..085db13b7c8159a8caff02f33c82dd400cacddb1 --- /dev/null +++ b/Core/Algorithms/IIntensityFunction.cpp @@ -0,0 +1,27 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/Algorithms/IIntensityFunction.h +//! @brief Implements the classes IntensityFunctionLog, IntensityFunctionSqrt +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#include <cmath> +#include "IIntensityFunction.h" + +double IntensityFunctionLog::evaluate(double value) const +{ + return value > 0 ? std::log(value) : 0; +} + +double IntensityFunctionSqrt::evaluate(double value) const +{ + return value > 0 ? std::sqrt(value) : 0; +}