Mantid
Loading...
Searching...
No Matches
Exponential.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7//----------------------------------------------------------------------
8// Includes
9//----------------------------------------------------------------------
11#include <cmath>
12
13using namespace Mantid::API;
14using namespace Mantid::Kernel;
15
16namespace Mantid::Algorithms {
17// Register the class into the algorithm factory
18DECLARE_ALGORITHM(Exponential)
19
20Exponential::Exponential() : UnaryOperation() { this->useHistogram = true; }
21
22void Exponential::performUnaryOperation(const double XIn, const double YIn, const double EIn, double &YOut,
23 double &EOut) {
24 (void)XIn; // Avoid compiler warning
25 // Multiply the data and error by the correction factor
26 YOut = exp(YIn);
27 EOut = EIn * YOut;
28}
29
30/*
31void Exponential::setOutputUnits(const API::MatrixWorkspace_const_sptr
32lhs,API::MatrixWorkspace_sptr out)
33{
34 // If Y has not units, then the output will be dimensionless, but not a
35distribution
36 if ( lhs->YUnit().empty() )
37 {
38 out->setYUnit("");
39 out->setDistribution(false); // might be, maybe not?
40 }
41 // Else units are questionable...
42 else
43 {
44 out->setYUnit("exp(" + lhs->YUnit()+ ")");
45 }
46}
47*/
48
49} // namespace Mantid::Algorithms
#define DECLARE_ALGORITHM(classname)
Definition: Algorithm.h:576
Exponential performs the exponential function on an input workspace.
Definition: Exponential.h:32
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'.
Definition: Exponential.cpp:22
UnaryOperation supports the implementation of a Unary operation on an input workspace.