Mantid
Loading...
Searching...
No Matches
Framework
Algorithms
src
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
//----------------------------------------------------------------------
10
#include "
MantidAlgorithms/Exponential.h
"
11
#include <cmath>
12
13
using namespace
Mantid::API
;
14
using namespace
Mantid::Kernel
;
15
16
namespace
Mantid::Algorithms
{
17
// Register the class into the algorithm factory
18
DECLARE_ALGORITHM
(Exponential)
19
20
Exponential
::
Exponential
() :
UnaryOperation
() { this->useHistogram =
true
; }
21
22
void
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
/*
31
void Exponential::setOutputUnits(const API::MatrixWorkspace_const_sptr
32
lhs,API::MatrixWorkspace_sptr out)
33
{
34
// If Y has not units, then the output will be dimensionless, but not a
35
distribution
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
DECLARE_ALGORITHM
#define DECLARE_ALGORITHM(classname)
Definition:
Algorithm.h:576
Exponential.h
Mantid::Algorithms::Exponential
Exponential performs the exponential function on an input workspace.
Definition:
Exponential.h:32
Mantid::Algorithms::Exponential::performUnaryOperation
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
Mantid::Algorithms::UnaryOperation
UnaryOperation supports the implementation of a Unary operation on an input workspace.
Definition:
UnaryOperation.h:33
Mantid::API
Definition:
AbsorptionCorrection.h:20
Mantid::Algorithms
Definition:
AbsorptionCorrection.h:28
Mantid::Kernel
Definition:
AnnularRingAbsorption.h:15
Generated on Tue Jan 3 2023 11:57:18 for Mantid by
1.9.5