4 #include <vnl/vnl_matrix.h> 5 #include <vnl/vnl_vector_fixed.h> 16 template <
class VectorType>
25 template <
class VectorType,
class ScalarType>
27 std::mt19937 &generator,
bool isMatCovariance =
true);
30 template <
class VectorType,
class ScalarType>
31 void SampleFromVMFDistribution(
const ScalarType &kappa,
const VectorType &meanDirection, VectorType &resVec, std::mt19937 &generator);
34 template <
class VectorType,
class ScalarType>
37 template <
class ScalarType,
class VectorType>
39 SampleFromWatsonDistribution(
const ScalarType &kappa,
const VectorType &meanDirection, VectorType &resVec,
unsigned int DataDimension, std::mt19937 &generator);
41 template <
class ScalarType,
unsigned int DataDimension>
43 SampleFromWatsonDistribution(
const ScalarType &kappa,
const vnl_vector_fixed < ScalarType, DataDimension > &meanDirection, vnl_vector_fixed < ScalarType, DataDimension > &resVec, std::mt19937 &generator);
45 template <
class ScalarType,
unsigned int DataDimension>
47 SampleFromWatsonDistribution(
const ScalarType &kappa,
const itk::Point < ScalarType, DataDimension > &meanDirection, itk::Point < ScalarType, DataDimension > &resVec, std::mt19937 &generator);
49 template <
class ScalarType,
unsigned int DataDimension>
51 SampleFromWatsonDistribution(
const ScalarType &kappa,
const itk::Vector < ScalarType, DataDimension > &meanDirection, itk::Vector < ScalarType, DataDimension > &resVec, std::mt19937 &generator);
void SampleFromUniformDistributionOn2Sphere(std::mt19937 &generator, VectorType &resVec)
void SampleFromVMFDistribution(const ScalarType &kappa, const VectorType &meanDirection, VectorType &resVec, std::mt19937 &generator)
void SampleFromVMFDistributionNumericallyStable(const ScalarType &kappa, const VectorType &meanDirection, VectorType &resVec, std::mt19937 &generator)
unsigned int SampleFromBernoulliDistribution(const T &p, std::mt19937 &generator)
double SampleFromGaussianDistribution(const T &mean, const T &std, std::mt19937 &generator)
void SampleFromMultivariateGaussianDistribution(const VectorType &mean, const vnl_matrix< ScalarType > &mat, VectorType &resVec, std::mt19937 &generator, bool isMatCovariance=true)
void SampleFromWatsonDistribution(const ScalarType &kappa, const VectorType &meanDirection, VectorType &resVec, unsigned int DataDimension, std::mt19937 &generator)
double SampleFromUniformDistribution(const T &a, const T &b, std::mt19937 &generator)