Ticket #4385: ExpDecayOsc.cpp

File ExpDecayOsc.cpp, 1.1 KB (added by Anders Markvardsen, 9 years ago)
Line 
1//----------------------------------------------------------------------
2// Includes
3//----------------------------------------------------------------------
4#include "Muon_ExpDecayOsc.h"
5#include <cmath>
6
7namespace Mantid
8{
9namespace CurveFitting
10{
11
12using namespace Kernel;
13using namespace API;
14
15DECLARE_FUNCTION(Muon_ExpDecayOsc)
16
17void Muon_ExpDecayOsc::init()
18{
19  declareParameter("A", 0.2);
20  declareParameter("lambda", 0.2);
21  declareParameter("frequency", 0.5);
22  declareParameter("phi", 0.0);
23}
24
25
26void Muon_ExpDecayOsc::functionLocal(double* out, const double* xValues, const int& nData)const
27{
28    const double& gA0 = getParameter("A");
29    const double& gs = getParameter("lambda");
30        const double& gf = getParameter("frequency");
31        const double& gphi = getParameter("phi");
32 
33 
34   for (int i = 0; i < nData; i++) {
35        out[i] = gA0*exp(-gs*xValues[i])*cos(2*3.1415926536*gf*xValues[i]+gphi);
36    }
37}
38void Muon_ExpDecayOsc::functionDerivLocal(API::Jacobian* out, const double* xValues, const int& nData)
39{
40  calNumericalDeriv(out, xValues, nData);
41}
42
43
44
45
46} // namespace CurveFitting
47} // namespace Mantid