9#include "MantidKernel/DllConfig.h"
21template <
typename TYPE =
double>
class MANTID_KERNEL_DLL
VMDBase {
25 VMDBase(
double val0,
double val1);
26 VMDBase(
double val0,
double val1,
double val2);
27 VMDBase(
double val0,
double val1,
double val2,
double val3);
28 VMDBase(
double val0,
double val1,
double val2,
double val3,
double val4);
29 VMDBase(
double val0,
double val1,
double val2,
double val3,
double val4,
double val5);
35 VMDBase(
size_t nd,
const double *bareData);
36 VMDBase(
size_t nd,
const float *bareData);
38 VMDBase(
const std::vector<double> &vector);
39 VMDBase(
const std::vector<float> &vector);
40 VMDBase(
const std::string &str);
43 size_t getNumDims()
const;
45 const TYPE &operator[](
const size_t index)
const;
47 const TYPE *getBareArray()
const;
48 std::string
toString(
const std::string &separator =
" ")
const;
71 static std::vector<VMDBase> makeVectorsOrthogonal(std::vector<VMDBase> &vectors);
72 static VMDBase getNormalVector(
const std::vector<VMDBase> &vectors);
std::map< DeltaEMode::Type, std::string > index
Simple vector class for multiple dimensions (i.e.
size_t nd
Number of dimensions.
TYPE * data
Data, an array of size nd.
MatrixWorkspace_sptr MANTID_API_DLL operator/=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Divide two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator+=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Adds two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator-=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Subtracts two workspaces.
MatrixWorkspace_sptr MANTID_API_DLL operator*=(const MatrixWorkspace_sptr &lhs, const MatrixWorkspace_sptr &rhs)
Multiply two workspaces.
MANTID_KERNEL_DLL std::ostream & operator<<(std::ostream &, CPUTimer &)
Convenience function to provide for easier debug printing.
std::string toString(const T &value)
Convert values to strings.
MANTID_KERNEL_DLL V3D normalize(V3D v)
Normalizes a V3D.
float VMD_t
Underlying data type for the VMD type.
Helper class which provides the Collimation Length for SANS instruments.
constexpr wide_integer< Bits, Signed > operator-(const wide_integer< Bits, Signed > &lhs) noexcept(is_same< Signed, unsigned >::value)
constexpr bool operator==(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
constexpr bool operator!=(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
std::common_type_t< wide_integer< Bits, Signed >, wide_integer< Bits2, Signed2 > > constexpr operator*(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
constexpr wide_integer< Bits, Signed > operator+(const wide_integer< Bits, Signed > &lhs) noexcept(is_same< Signed, unsigned >::value)
std::common_type_t< wide_integer< Bits, Signed >, wide_integer< Bits2, Signed2 > > constexpr operator/(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)