12#include "MantidAPI/DllConfig.h"
19#include <boost/scoped_array.hpp>
20#include <boost/variant.hpp>
37class ParameterReference;
39class FunctionDomainMD;
55 std::shared_ptr<IFunction> clone()
const override;
58 void setWorkspace(std::shared_ptr<const Workspace> ws)
override;
67 virtual void useDimension(
const std::string &
id);
76 std::vector<std::shared_ptr<const Mantid::Geometry::IMDDimension>>
m_dimensions;
80 virtual void useAllDimensions(std::shared_ptr<const IMDWorkspace>
workspace);
IPeaksWorkspace_sptr workspace
Implements a domain for MD functions (IFunctionMD).
Base class that represents the domain of a function.
A class to store values calculated by a function.
This is a specialization of IFunction for functions defined on an IMDWorkspace.
std::vector< std::shared_ptr< const Mantid::Geometry::IMDDimension > > m_dimensions
dimensions used in this function in the expected order
virtual double functionMD(const IMDIterator &r) const =0
Does the function evaluation. Must be implemented in derived classes.
void functionDeriv(const FunctionDomain &domain, Jacobian &jacobian) override
Derivatives of function with respect to active parameters.
std::map< std::string, size_t > m_dimensionIndexMap
maps dimension id to its index in m_dimensions
virtual void initDimensions()
Do finction initialization after useAllDimensions() was called.
This is an interface to a fitting function - a semi-abstarct class.
This is an interface to an iterator of an IMDWorkspace.
Represents the Jacobian in IFitFunction::functionDeriv.
Helper class which provides the Collimation Length for SANS instruments.