24 auto mustBePositive = std::make_shared<BoundedValidator<double>>();
25 mustBePositive->setLower(0.0);
27 "The positive value by which the "
28 "entire exponent calculation is "
29 "multiplied (see formula below).");
32 "The value by which the entire calculation is "
33 "multiplied (see formula below).");
35 std::vector<std::string> operations(2);
36 operations[0] =
"Multiply";
37 operations[1] =
"Divide";
38 declareProperty(
"Operation",
"Divide", std::make_shared<Kernel::StringListValidator>(operations),
39 "Whether to divide (the default) or multiply the data by the "
40 "correction function.");
52 double factor =
m_c1 * (1.0 - exp(-1.0 *
m_c * XIn));
54 factor = 1.0 / factor;
#define DECLARE_ALGORITHM(classname)
void declareProperty(std::unique_ptr< Kernel::Property > p, const std::string &doc="") override
Add a property to the list of managed properties.
TypedValue getProperty(const std::string &name) const override
Get the value of a property.
Corrects the data and error values on a workspace by one minus the value of an exponential function w...
void defineProperties() override
A virtual function in which additional properties of an algorithm should be declared.
double m_c1
The multiplier.
bool m_divide
Whether the data should be divided by the correction (true) or multiplied by it (false)
void retrieveProperties() override
A virtual function in which additional properties should be retrieved into member variables.
void performUnaryOperation(const double XIn, const double YIn, const double EIn, double &YOut, double &EOut) override
Carries out the Unary operation on the current 'cell'.
double m_c
The constant term in the exponent.
UnaryOperation supports the implementation of a Unary operation on an input workspace.