ANIMA  4.0
Classes | Enumerations | Functions | Variables
anima Namespace Reference

Classes

class  AnatomicalBlockMatcher
 
class  ApproximateMCMSmoothingCostFunction
 
class  AsymmetricBMRegistrationMethod
 
class  AtlasInitializer
 
class  AxisRotationTransform
 
class  B1GammaDerivativeDistributionIntegrand
 Integrand to compute the internal derivative integral per distribution in B1GammaMixtureT2RelaxometryCostFunction. More...
 
class  B1GammaDistributionIntegrand
 Integrand to compute the internal integral per distribution in B1GammaMixtureT2RelaxometryCostFunction. More...
 
class  B1GammaMixtureT2RelaxometryCostFunction
 
class  B1GMMDistributionIntegrand
 Integrand to compute the internal integral per distribution in B1GMMRelaxometryCostFunction. More...
 
class  B1GMMRelaxometryCostFunction
 Cost function for estimating B1 from T2 relaxometry acquisition, following a multi-T2 EPG decay model. The cost function includes (via variable projection) estimation of compartment weights. More...
 
class  B1T2RelaxometryDistributionCostFunction
 Cost function for estimating B1 from T2 relaxometry acquisition, following a multi-T2 EPG decay model. More...
 
class  BalooExternalExtrapolateImageFilter
 
class  BalooSVFTransformAgregator
 
class  BaseAffineBlockMatcher
 
class  BaseBlockMatcher
 
class  BaseBMRegistrationMethod
 
class  BaseCompartment
 
class  BaseIsotropicCompartment
 
class  BaseMCMCost
 Base cost function class to handle maximum likelihood estimation. More...
 
class  BaseOrientedModelImageToImageMetric
 
class  BaseProbabilisticTractographyImageFilter
 
class  BaseRootFindingAlgorithm
 
class  BaseTractographyImageFilter
 
class  BaseTransformAgregator
 
class  BisectionRootFindingAlgorithm
 
class  BLMLambdaCostFunction
 Levenberg-Marquardt lambda update cost function (phi) used for bounded levenberg marquardt optimizer . More...
 
class  Block
 
class  BlockMatchingInitializer
 
class  BobyqaOptimizer
 BOBYQA Optimizer. More...
 
class  BoostBisectionRootFindingAlgorithm
 
class  BoundedLevenbergMarquardtOptimizer
 Levenberg-Marquardt optimizer with lower and upper bounds on parameters Implementation of the original algorithmm, very well described in K. Madsen, H.B. Nielsen and O. Tingleff. Methods for non-linear least squares problems. 2004 http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf Bounded version by projection as suggested by Kanzow et al. but with a lot of modifications, including calculation of optimal lambda C. Kanzow, N. Yamashita and M. Fukushima. Levenberg-Marquardt methods with strong local convergence properties for solving nonlinear equations with convex constraints. Journal of computational and applied mathematics. 172:375-397, 2004. More...
 
class  BracketAndSolveRootFindingAlgorithm
 
class  BrentRootFindingAlgorithm
 
class  BVLSOptimizer
 Bounded variable least squares optimizer. Coming from Stark and Parker paper P.B. Stark and R.L. Parker. Bounded-variable least-squares: an algorithm and applications. Computational Statistics, 1995. More...
 
class  CheckStructureNeighborFilter
 Class removing lesions that are not sufficiently in the white matter. Intensity rules may not be enough to discard false positives, therefore we also use localization information. Considering that MS lesions are typically located in WM, we remove the detected ones that do not sufficiently achieve this condition. This filter take two entries: a lesion mask and a white matter map. More...
 
class  CholeskyDecomposition
 Cholesky decomposition: decomposes a symmetric matrix A in the form L D L^T, where L is lower triangular and D diagonal. May be used to solve efficiently any linear system using the solve methods. Refer to Gill, Golub et al. Methods for modifying matrix factorizations. 1974. More...
 
class  ClassificationStrategy
 
class  ComputeMahalanobisImagesFilter
 Compute the mahalanobis images from the NABT model. More...
 
class  ComputeSolution
 Class computing the 3-class GMM respresenting the NABT, where each Gaussian represents one of the brain tissues WM, GM and CSF. First a model initializer is launched, then the REM algorithm is performed using this initialization. The NABT model can be written in a csv file. More...
 
class  DawsonIntegrand
 
class  DBlock
 
class  DekkerRootFindingAlgorithm
 
class  DenseSVFTransformAgregator
 
class  DirectionScaleSkewTransform
 
class  DirectionScaleTransform
 
class  DirectionTransform
 
class  DistortionCorrectionBlockMatcher
 
class  DistortionCorrectionBMRegistrationMethod
 
class  DistortionCorrectionImageFilter
 
class  DTIEstimationImageFilter
 
class  DTIProbabilisticTractographyImageFilter
 
class  DTIScalarMapsImageFilter
 Applies an variance filter to an image. More...
 
class  dtiTractographyImageFilter
 DTI tractography image filter. Simple step by step tratpography, using advection-diffusion tricks from Weinstein et al. 1999. Tensorlines: Advection-Diffusion based Propagation through Diffusion Tensor Fields. More...
 
class  DWISimulatorFromDTIImageFilter
 
class  EPGSignalSimulator
 
struct  errors_pair_comparator
 
class  ExpTensorImageFilter
 
class  FastCorrelationImageToImageMetric
 
class  FastMeanSquaresImageToImageMetric
 
class  FDRCorrectImageFilter
 
class  FlipTensorImageFilter
 
class  FreeWaterCompartment
 
class  FuzzyCMeansFilter
 
class  GammaMixtureT2RelaxometryEstimationImageFilter
 
class  GaussianEMEstimator
 Gaussian Model estimator Class performing expectation-maximation algorithm. More...
 
class  GaussianMCMCost
 Class for computing marginal and profile costs and derivatives. This is not thread safe at all so be sure to intantiate one per thread. More...
 
class  GaussianMCMVariableProjectionCost
 Class for computing variable projection costs and derivatives. Right now, it is only available for Gaussian noise. By the way, this is not thread safe at all so be sure to intantiate one per thread. More...
 
class  GaussianMCMVariableProjectionMultipleValuedCostFunction
 
class  GaussianMCMVariableProjectionSingleValuedCostFunction
 
class  GaussianREMEstimator
 Class performing a robust expectation-maximation (REM) algorithm. Allow finding the 3-classes NABT model estimation. More...
 
class  GaussLaguerreQuadrature
 Computes the Gauss Laguerre quadrature of a function defined from R^+ into R. Recenters the function on the interest zone with an affine relation, then uses Gauss Legendre on the left out part of the function and computes the main part with Gauss Laguerre. More...
 
class  GcStremMsLesionsSegmentationFilter
 Class performing lesion segmentation. More...
 
class  GeneralizedFAImageFilter
 
class  GMMT2RelaxometryEstimationImageFilter
 
class  GradientFileReader
 
class  Graph
 
class  Graph3DFilter
 Class allowing the decimation of the images if necessary (if 3D graph size causes memory problems). This class just launchs NLinksFilter with appropriate image sizes. More...
 
class  GraphCutFilter
 Class performing grah cut segmentation. First the sources and sinks probabilities maps are computed using the TLinkFilter. Then the Graph3DFilter is called to perform the graph cut. More...
 
class  HierarchicalInitializer
 Class initializing a gaussian mixture with hierarchical information It uses 'a priori' knowledge of the sequences. More...
 
class  ImageClassifierFilter
 Classify each voxels into one of the given GMM classes. More...
 
class  ImageDataSplitter
 
class  IsotropicRestrictedWaterCompartment
 
class  JacobianMatrixImageFilter
 Compute the Jacobian matrix in real coordinates of a displacement field. More...
 
class  KissingSymmetricBMRegistrationMethod
 
class  KMeansFilter
 
class  KummerIntegrand
 
class  LocalPatchCovarianceDistanceImageFilter
 
class  LocalPatchMeanDistanceImageFilter
 
class  LogEuclideanTensorCalculator
 
class  LogRigid3DTransform
 
class  LogTensorImageFilter
 
class  LowMemoryLocalPatchCovarianceDistanceBridge
 
class  LowMemoryLocalPatchMeanDistanceBridge
 
class  LowMemoryNLMeansPatientToGroupComparisonBridge
 
class  LowMemoryPatientToGroupComparisonBridge
 
class  LowMemoryPatientToGroupODFComparisonBridge
 
class  LSWTransformAgregator
 
class  LTSWTransformAgregator
 
class  MajorityLabelVotingImageFilter
 
class  MaskedImageToImageFilter
 
class  MatrixLoggerFilter
 Class to compute many log-vectors in a multi-threaded way. More...
 
class  MCMAverageImagesImageFilter
 
class  MCMBlockMatcher
 
class  MCMBlockMatchingInitializer
 
class  MCMCorrelationImageToImageMetric
 
class  MCMEstimatorImageFilter
 
class  MCMFileReader
 
class  MCMFileWriter
 
class  MCMImage
 
class  MCML2DistanceComputer
 Computes a L2 distance between two MCM of any type. More...
 
class  MCMLinearInterpolateImageFunction
 
class  MCMMeanSquaresImageToImageMetric
 
class  MCMMultipleValuedCostFunction
 
class  MCMPairingMeanSquaresImageToImageMetric
 
class  MCMResampleImageFilter
 
class  MCMScalarMapsImageFilter
 
class  MCMSingleValuedCostFunction
 
class  MCMWeightedAverager
 Computes a weighted average of input multi-compartment models. The output model is at the same time giving the number and type of output compartments but also its parameters are erased when performing Update to get the result. More...
 
class  MeanAndVarianceImagesFilter
 Applies an variance filter to an image. More...
 
class  MEstimateSVFImageFilter
 
class  MEstTransformAgregator
 
class  ModelInitializer
 Gaussian model initializers Model Initializer represents the processes computing a gaussian model that will be used as the model initialization in an EM process. More...
 
class  MTPairingCorrelationImageToImageMetric
 Multi-tensor correlation similarity measure as defined by Taquet et al, based on pairing of the individual compartments. More...
 
class  MultiCompartmentModel
 MultiCompartmentModel: holds several diffusion compartments, ordered by type It also handles weights of the different compartments. Although there are N weights in memory for N compartments, the parameters returned and set are considered to have one less weight in them, the first one being removed. This comes from the fact that they sum up to 1. More...
 
class  MultiCompartmentModelCreator
 Really this class is some simplified factory that creates the MCM that it knows. More...
 
class  MultiT2EPGRelaxometryCostFunction
 Cost function for estimating B1 from T2 relaxometry acquisition, following a multi-T2 EPG decay model. More...
 
class  MultiT2RelaxometryEstimationImageFilter
 Implements multi-peak T2 relaxometry estimation (with or without regularization) More...
 
class  MultiTensorSmoothingCostFunction
 
class  NLinksFilter
 Class creating a 3D graph in a graph cut framework. More...
 
class  NLMeansPatientToGroupComparisonImageFilter
 
class  NLMeansVectorPatchSearcher
 
class  NLOPTOptimizers
 Implements an ITK wrapper for the NLOPT library. More...
 
class  NLOPTParametersConstraintFunction
 
class  NNLSOptimizer
 Non negative least squares optimizer. Implements Lawson et al method, of squared problem is activated, assumes we pass AtA et AtB and uses Bro and de Jong method. More...
 
class  NODDICompartment
 
class  NoiseGeneratorImageFilter
 
class  NonLocalMeansImageFilter
 
class  NonLocalMeansPatchSearcher
 
class  NonLocalMeansTemporalImageFilter
 
class  NonLocalPatchBaseSearcher
 
class  NonLocalT2DistributionPatchSearcher
 
class  NumberedThreadImageToImageFilter
 Implements a class to handle thread number in a dynamic way for multithreaded methods needing thread numbering even for dynamic threading. More...
 
class  ODFEstimatorImageFilter
 
class  ODFMaximaCostFunction
 
class  ODFProbabilisticTractographyImageFilter
 
class  ODFResampleImageFilter
 
class  ODFSphericalHarmonicBasis
 
class  OrientedModelBaseResampleImageFilter
 
struct  pair_decreasing_comparator
 
struct  pair_increasing_comparator
 
class  PatientToGroupComparisonImageFilter
 Implements patient to group comparison as in http://dx.doi.org/10.1007/978-3-540-85988-8_116. More...
 
class  PatientToGroupODFComparisonImageFilter
 
class  PyramidalBlockMatchingBridge
 
class  PyramidalDenseMCMSVFMatchingBridge
 
class  PyramidalDenseSVFMatchingBridge
 
class  PyramidalDenseTensorSVFMatchingBridge
 
class  PyramidalDistortionCorrectionBlockMatchingBridge
 
class  PyramidalSymmetryBridge
 
class  PyramidalSymmetryConstrainedRegistrationBridge
 
class  PyramidImageFilter
 Computes a pyramid of images using the provided resampler to perform resampling. More...
 
class  RandomInitializer
 Class initializing ramdomly a gaussian model. More...
 
class  RecursiveLineYvvGaussianImageFilter
 
class  RemoveTouchingBorderFilter
 Class selecting the connected components touching a given mask border. In MRI, external CSF may contain artifacts due to fluid flow. These effects can cause voxels in the cortex or external CSF to have intensities similar to MS lesions. In order to reduce the number of false positives due to these effects, we remove all candidate lesions that are contiguous to the brain mask border. More...
 
class  ResampleImageFilter
 
class  RootFindingFunctionBoostBridge
 
class  RootToleranceBoostBridge
 
class  SegmentationMeasuresImageFilter
 
class  SegPerfApp
 Main class to structure application and handle command line options. More...
 
class  SegPerfCAnalyzer
 Class to compute various metrics to evaluate segmentation results. More...
 
class  SegPerfLabelSetMeasures
 
class  SegPerfResults
 Class to format and saves results. More...
 
class  ShapesReader
 
class  ShapesWriter
 
class  SimuBlochCoherentGRE
 
class  SimuBlochGRE
 
class  SimuBlochIRGRE
 
class  SimuBlochIRSE
 
class  SimuBlochSE
 
class  SimuBlochSPGRE
 
class  SmoothingRecursiveYvvGaussianImageFilter
 
class  SpectralClusteringFilter
 Provides an implementation of spectral clustering, as proposed in A.Y. Ng, M.I. Jordan and Y. Weiss. "On Spectral Clustering: Analysis and an Algorithm." Advances in Neural Information Processing Systems 14. 2001. More...
 
class  SphericalHarmonic
 
class  SplitAffine3DTransform
 
class  StaniszCompartment
 
class  StationaryWaterCompartment
 
class  StickCompartment
 
class  StimulatedSpinEchoImageFilter
 
class  SVFExponentialImageFilter
 Computes the exponentiation of a stationary velocity field using sclaing and squaring and approximated exponential integrators. More...
 
class  SVFLieBracketImageFilter
 Computes the Lie bracket between two fields u and v as expressed by Bossa et al. More...
 
class  SymmetricBMRegistrationMethod
 
class  SymmetryPlaneTransform
 
class  T1RelaxometryEstimationImageFilter
 
class  T1SERelaxometryCostFunction
 
class  T1SERelaxometryEstimationImageFilter
 
class  T2EPGRelaxometryCostFunction
 
class  T2EPGRelaxometryEstimationImageFilter
 
class  T2RelaxometryCostFunction
 
class  T2RelaxometryEstimationImageFilter
 
class  TensorBlockMatcher
 
class  TensorCompartment
 
class  TensorCorrelationImageToImageMetric
 Tensor correlation similarity measure as defined by Taquet et al. More...
 
class  TensorGeneralizedCorrelationImageToImageMetric
 
class  TensorMeanSquaresImageToImageMetric
 
class  TensorResampleImageFilter
 
class  TLinksFilter
 Class computing the probability maps that are used to create the t-links. More...
 
class  TOMS748RootFindingAlgorithm
 
class  TransformSeriesReader
 
class  VectorModelLinearInterpolateImageFunction
 
class  VoxelExhaustiveOptimizer
 
class  ZeppelinCompartment
 

Enumerations

enum  DiffusionModelCompartmentType {
  FreeWater = 0,
  StationaryWater,
  IsotropicRestrictedWater,
  Stanisz,
  Stick,
  Zeppelin,
  Tensor,
  NODDI,
  DDI
}
 

Functions

double a0r_support (double x, unsigned int N)
 Support function for besserl_ratio_i. More...
 
double ak_support (double x, unsigned int N, unsigned int k)
 Support function for besserl_ratio_i. More...
 
double bessel_i_lower_bound (unsigned int N, double x)
 Computes a lower bound of the modified Bessel function of the first kind: I_{N} (N >= 0) More...
 
double bessel_ratio_i (double x, unsigned int N, unsigned int approx_order=10)
 Computes the ratio of modified Bessel functions of the first kind: I_{N} / I_{N-1} (N >= 1) More...
 
double bessel_ratio_i_derivative (double x, unsigned int N, unsigned int approx_order=10)
 Computes the derivative of the ratio of modified Bessel functions of the first kind: d/dx( I_{N}(x) / I_{N-1}(x) ) (N >= 1) More...
 
double bessel_ratio_i_derivative_approx (double x, unsigned int N)
 Computes fast and accurate approximation of the derivative of the ratio of modified Bessel functions of the first kind: d/dx( I_{N}(x) / I_{N-1}(x) ) (N >= 1) More...
 
double bessel_ratio_i_lower_bound (double x, unsigned int N)
 Computes a lower bound of the ratio of modified Bessel functions of the first kind: I_{N} / I_{N-1} (N >= 1) More...
 
void BHCorrection (std::vector< double > &pvalues, double qValue)
 
void BYCorrection (std::vector< double > &pvalues, double qValue)
 
template<class ScalarType >
std::complex< double > ComplexShRatio (const ScalarType &k, const ScalarType &alpha, const ScalarType &beta)
 
template<class ScalarType , unsigned int NDimensions>
void composeDistortionCorrections (typename rpi::DisplacementFieldTransform< ScalarType, NDimensions >::Pointer &baseTrsf, typename rpi::DisplacementFieldTransform< ScalarType, NDimensions >::Pointer &positiveAddOn, typename rpi::DisplacementFieldTransform< ScalarType, NDimensions >::Pointer &negativeAddOn, unsigned int numThreads)
 
template<class ScalarType , unsigned int NDimensions>
void composeSVF (itk::StationaryVelocityFieldTransform< ScalarType, NDimensions > *baseTrsf, itk::StationaryVelocityFieldTransform< ScalarType, NDimensions > *addonTrsf, unsigned int numThreads, unsigned int bchOrder)
 
template<class TInput , class TScalarType , unsigned int NDimensions>
itk::Point< TInput, NDimensions > computeAffineLSWFromTranslations (std::vector< itk::Point< TInput, NDimensions > > &inputOrigins, std::vector< itk::Point< TInput, NDimensions > > &inputTransformed, std::vector< TInput > &weights, typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &resultTransform)
 
template<class VectorType >
double ComputeAngle (const VectorType &v1, const VectorType &v2)
 
template<class TInput , class TScalarType , unsigned int NDimensions>
itk::Point< TInput, NDimensions > computeAnisotropSimLSWFromTranslations (std::vector< itk::Point< TInput, NDimensions > > &inputOrigins, std::vector< itk::Point< TInput, NDimensions > > &inputTransformed, std::vector< TInput > &weights, typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &resultTransform, vnl_matrix< double > &UMatrix)
 
template<class T1 , class T2 , unsigned int Dimension>
void computeAverageLocalCovariance (vnl_matrix< T2 > &resVariance, itk::VectorImage< T1, Dimension > *inputImage, itk::Image< unsigned char, Dimension > *maskImage, const itk::ImageRegion< Dimension > &averagingRegion, int localNeighborhood)
 Noise estimation for a patch of a vector image. More...
 
template<class VectorType >
void ComputeCrossProduct (const VectorType &v1, const VectorType &v2, const unsigned int NDimension, VectorType &resVec)
 
template<class ScalarType , unsigned int NDimension>
void ComputeCrossProduct (const itk::Vector< ScalarType, NDimension > &v1, const itk::Vector< ScalarType, NDimension > &v2, itk::Vector< ScalarType, NDimension > &resVec)
 
template<class ScalarType >
void ComputeCrossProduct (const itk::VariableLengthVector< ScalarType > &v1, const itk::VariableLengthVector< ScalarType > &v2, itk::VariableLengthVector< ScalarType > &resVec)
 
template<class ScalarType , unsigned int NDimension>
void ComputeCrossProduct (const itk::Point< ScalarType, NDimension > &v1, const itk::Point< ScalarType, NDimension > &v2, itk::Point< ScalarType, NDimension > &resVec)
 
template<class ScalarType >
void ComputeCrossProduct (const vnl_vector< ScalarType > &v1, const vnl_vector< ScalarType > &v2, vnl_vector< ScalarType > &resVec)
 
template<class ScalarType , unsigned int NDimension>
void ComputeCrossProduct (const vnl_vector_fixed< ScalarType, NDimension > &v1, const vnl_vector_fixed< ScalarType, NDimension > &v2, vnl_vector_fixed< ScalarType, NDimension > &resVec)
 
template<class ScalarType >
void ComputeCrossProduct (const std::vector< ScalarType > &v1, const std::vector< ScalarType > &v2, std::vector< ScalarType > &resVec)
 
template<class VectorType >
double ComputeDirectedHausdorffDistance (const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
 
template<class VectorType >
double ComputeEuclideanDistance (const VectorType &x1, const VectorType &x2, const unsigned int NDimension)
 
template<class ScalarType , unsigned int NDimension>
double ComputeEuclideanDistance (const itk::Vector< ScalarType, NDimension > &x1, const itk::Vector< ScalarType, NDimension > &x2)
 
template<class ScalarType >
double ComputeEuclideanDistance (const itk::VariableLengthVector< ScalarType > &x1, const itk::VariableLengthVector< ScalarType > &x2)
 
template<class ScalarType , unsigned int NDimension>
double ComputeEuclideanDistance (const itk::Point< ScalarType, NDimension > &x1, const itk::Point< ScalarType, NDimension > &x2)
 
template<class ScalarType >
double ComputeEuclideanDistance (const vnl_vector< ScalarType > &x1, const vnl_vector< ScalarType > &x2)
 
template<class ScalarType , unsigned int NDimension>
double ComputeEuclideanDistance (const vnl_vector_fixed< ScalarType, NDimension > &x1, const vnl_vector_fixed< ScalarType, NDimension > &x2)
 
template<class ScalarType >
double ComputeEuclideanDistance (const std::vector< ScalarType > &x1, const std::vector< ScalarType > &x2)
 
template<class VectorType >
double ComputeHausdorffDistance (const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
 
template<class VectorType >
void ComputeHouseholderVector (const VectorType &inputVector, VectorType &outputVector, double &beta, unsigned int dimension)
 
template<class ScalarType >
void ComputeHouseholderVector (const std::vector< ScalarType > &inputVector, std::vector< ScalarType > &outputVector, double &beta)
 
template<class ScalarType >
void ComputeHouseholderVector (std::vector< ScalarType > &vector, double &beta)
 
template<class TInput , class TScalarType , unsigned int NDimensions>
void computeLogEuclideanAverage (std::vector< vnl_matrix< TInput > > &inputTransforms, std::vector< TInput > &weights, typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &resultTransform)
 
template<class VectorType >
double ComputeModifiedDirectedHausdorffDistance (const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
 
template<class VectorType >
double ComputeModifiedHausdorffDistance (const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
 
template<class VectorType >
double ComputeNorm (const VectorType &v)
 
template<class VectorType >
double ComputeOrientationAngle (const VectorType &v1, const VectorType &v2)
 
template<class T1 , class T2 , unsigned int Dimension>
unsigned int computePatchMeanAndCovariance (const itk::VectorImage< T1, Dimension > *inputImage, const itk::ImageRegion< Dimension > &patchRegion, itk::VariableLengthVector< T2 > &patchMean, vnl_matrix< T2 > &patchCov)
 Computes the average and covariance matrix from a patch of a vector image. More...
 
template<class VectorType >
double ComputePointToSetDistance (const VectorType &x, const std::vector< VectorType > &s)
 
template<class TInput , class TScalarType , unsigned int NDimensions>
void computeRigidLSWFromTranslations (std::vector< itk::Point< TInput, NDimensions > > &inputOrigins, std::vector< itk::Point< TInput, NDimensions > > &inputTransformed, std::vector< TInput > &weights, typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &resultTransform)
 
template<class TInput , class TOutput >
vnl_matrix< TOutput > computeRotationFromQuaternion (vnl_vector< TInput > eigenVector)
 
template<class VectorType >
double ComputeScalarProduct (const VectorType &v1, const VectorType &v2, const unsigned int NDimension)
 
template<class ScalarType , unsigned int NDimension>
double ComputeScalarProduct (const itk::Vector< ScalarType, NDimension > &v1, const itk::Vector< ScalarType, NDimension > &v2)
 
template<class ScalarType >
double ComputeScalarProduct (const itk::VariableLengthVector< ScalarType > &v1, const itk::VariableLengthVector< ScalarType > &v2)
 
template<class ScalarType , unsigned int NDimension>
double ComputeScalarProduct (const itk::Point< ScalarType, NDimension > &v1, const itk::Point< ScalarType, NDimension > &v2)
 
template<class ScalarType >
double ComputeScalarProduct (const vnl_vector< ScalarType > &v1, const vnl_vector< ScalarType > &v2)
 
template<class ScalarType , unsigned int NDimension>
double ComputeScalarProduct (const vnl_vector_fixed< ScalarType, NDimension > &v1, const vnl_vector_fixed< ScalarType, NDimension > &v2)
 
template<class ScalarType >
double ComputeScalarProduct (const std::vector< ScalarType > &v1, const std::vector< ScalarType > &v2)
 
template<class ScalarType >
void ComputeSphericalCentroid (const std::vector< std::vector< ScalarType > > &dataPoints, std::vector< ScalarType > &centroidValue, const std::vector< ScalarType > &initPoint, const std::vector< ScalarType > &weights, std::vector< ScalarType > *workLogVector=0, std::vector< ScalarType > *workVector=0, double tol=1.0e-4)
 
template<class TInput , class TScalarType , unsigned int NDimensions>
void computeTranslationLSWFromTranslations (std::vector< itk::Point< TInput, NDimensions > > &inputOrigins, std::vector< itk::Point< TInput, NDimensions > > &inputTransformed, std::vector< TInput > &weights, typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &resultTransform)
 
template<class VectorType , class ScalarType >
double ComputeVMFPdf (const VectorType &v, const VectorType &meanDirection, const ScalarType &kappa)
 
template<class T >
Cubic (T x0, T x1, T x2, T x3, T y0, T y1, T y2, T y3, T x)
 
template<class T >
void CubicInterpolator (std::vector< T > &transfVect, std::vector< T > &scale, std::vector< T > &outputVect, T LengthLine)
 
void EstimateLocalODFRotationMatrix (vnl_matrix< double > &resVal, unsigned int l, double alpha, double beta, double gamma)
 
double EvaluateDawsonFunction (double x)
 compute Dawson(x) = sqrt(pi)/2 * exp(-x^2) * erfi(x) More...
 
double EvaluateDawsonFunctionNR (double x)
 Numerical recipes implementation of Dawson integral. More...
 
double EvaluateDawsonIntegral (const double x, const bool scaled)
 
template<class VectorType , class ScalarType >
double EvaluateWatsonPDF (const VectorType &v, const VectorType &meanAxis, const ScalarType &kappa)
 
template<class ScalarType >
double EvaluateWatsonPDF (const vnl_vector_fixed< ScalarType, 3 > &v, const vnl_vector_fixed< ScalarType, 3 > &meanAxis, const ScalarType &kappa)
 
template<class ScalarType >
double EvaluateWatsonPDF (const itk::Point< ScalarType, 3 > &v, const itk::Point< ScalarType, 3 > &meanAxis, const ScalarType &kappa)
 
template<class ScalarType >
double EvaluateWatsonPDF (const itk::Vector< ScalarType, 3 > &v, const itk::Vector< ScalarType, 3 > &meanAxis, const ScalarType &kappa)
 
double EvaluateWImFunction (double x)
 
double EvaluateWImY100Function (double y100, double x)
 
template<class VectorType >
double ExponentialSum (const VectorType &x, const unsigned int NDimension)
 
template<class ScalarType , unsigned int NDimension>
double ExponentialSum (const itk::Vector< ScalarType, NDimension > &x)
 
template<class ScalarType >
double ExponentialSum (const itk::VariableLengthVector< ScalarType > &x)
 
template<class ScalarType , unsigned int NDimension>
double ExponentialSum (const itk::Point< ScalarType, NDimension > &x)
 
template<class ScalarType >
double ExponentialSum (const vnl_vector< ScalarType > &x)
 
template<class ScalarType , unsigned int NDimension>
double ExponentialSum (const vnl_vector_fixed< ScalarType, NDimension > &x)
 
template<class ScalarType >
double ExponentialSum (const std::vector< ScalarType > &x)
 
template<typename RealType , typename MatrixType >
void ExtractPPDRotationFromJacobianMatrix (vnl_matrix< RealType > &jacobianMatrix, vnl_matrix< RealType > &rotationMatrix, MatrixType &eigenVectors)
 
template<typename RealType >
void ExtractRotationFromJacobianMatrix (vnl_matrix< RealType > &jacobianMatrix, vnl_matrix< RealType > &rotationMatrix, vnl_matrix< RealType > &tmpMat)
 
double gammaHalfMinusN (unsigned int n)
 
double gammaHalfPlusN (unsigned int n)
 
template<class T >
void Get3DRotationExponential (const std::vector< T > &angles, vnl_matrix< T > &outputRotation)
 Computation of a 3D rotation matrix exponential. Rodrigues' explicit formula. More...
 
template<class T >
void Get3DRotationLogarithm (const vnl_matrix< T > &rotationMatrix, std::vector< T > &outputAngles)
 Computation of a 3D rotation matrix logarithm. Rodrigues' explicit formula. More...
 
double GetBValueFromAcquisitionParameters (double smallDelta, double bigDelta, double gradientStrength)
 Given gyromagnetic ratio in rad/s/T, gradient strength in T/mm and deltas in s, computes b-value in s/mm^2. More...
 
double GetDValue (unsigned int l, int m, int mp, double angle)
 
void GetEulerAnglesFromRotationMatrix (vnl_matrix< double > &R, std::vector< double > &resVal)
 
template<class T >
vnl_matrix< T > GetExponential (const vnl_matrix< T > &m, const int numApprox=1)
 Computation of the matrix exponential. Algo: classical scaling and squaring, as in Matlab. See Higham, SIAM Matr. Anal., 2004. More...
 
double GetGradientStrengthFromBValue (double bValue, double smallDelta, double bigDelta)
 Given b-value in s/mm^2 and deltas in s, computes gradient strength in T/mm. More...
 
template<class InputImageType , class OutputImageType >
std::vector< itk::SmartPointer< OutputImageType > > getImagesFromHigherDimensionImage (InputImageType *inputImage)
 Get a vector of input images from a higher dimensional image. More...
 
double GetKummerFunctionValue (const double &x, const double &a, const double &b, const unsigned int maxIter=1000, const double tol=1.0e-8)
 Computes the confluent hypergeometric function 1F1 also known as the Kummer function M. It calls Kummer function core to get the value. More...
 
template<class T >
vnl_matrix< T > GetLogarithm (const vnl_matrix< T > &m, const double precision=0.00000000001, const int numApprox=1)
 Computation of the matrix logarithm. Algo: inverse scaling and squaring, variant proposed by Cheng et al., SIAM Matrix Anal., 2001. More...
 
itk::ImageIOBase::IOComponentType ANIMAMCM_EXPORT GetMCMComponentType (std::string fileName)
 
template<class T >
vnl_matrix< T > GetPadeLogarithm (const vnl_matrix< double > &m, const int numApprox)
 Final part of the computation of the log. Estimates the log with a Pade approximation for a matrix m such that |m-Id| <= 0.5. More...
 
template<class T >
vnl_matrix< T > GetPadeLogarithm (const vnl_matrix< T > &m, const int numApprox)
 
template<typename ScalarType >
void GetQMatrixQRPivoDecomposition (vnl_matrix< ScalarType > &qrMatrix, std::vector< ScalarType > &houseBetaValues, vnl_matrix< ScalarType > &qMatrix, unsigned int rank)
 
template<typename ScalarType >
void GetQMatrixQRPivotDecomposition (vnl_matrix< ScalarType > &qrMatrix, std::vector< ScalarType > &houseBetaValues, vnl_matrix< ScalarType > &qMatrix, unsigned int rank)
 
template<typename ScalarType >
void GetQtBFromQRPivotDecomposition (vnl_matrix< ScalarType > &qrMatrix, vnl_vector< ScalarType > &bVector, std::vector< ScalarType > &houseBetaValues, unsigned int rank)
 
template<class VectorType >
itk::Matrix< double, 3, 3 > GetRotationMatrixFromVectors (const VectorType &first_direction, const VectorType &second_direction, const unsigned int dimension)
 
template<class ScalarType >
itk::Matrix< double, 3, 3 > GetRotationMatrixFromVectors (const itk::Point< ScalarType > &first_direction, const itk::Point< ScalarType > &second_direction)
 
template<class ScalarType , unsigned int NDimension>
itk::Matrix< double, 3, 3 > GetRotationMatrixFromVectors (const itk::Vector< ScalarType, NDimension > &first_direction, const itk::Vector< ScalarType, NDimension > &second_direction)
 
template<class ScalarType , unsigned int NDimension>
itk::Matrix< double, 3, 3 > GetRotationMatrixFromVectors (const vnl_vector_fixed< ScalarType, NDimension > &first_direction, const vnl_vector_fixed< ScalarType, NDimension > &second_direction)
 
double GetScaledKummerFunctionValue (const double &x, const double &a, const double &b, const unsigned int maxIter=1000, const double tol=1.0e-8)
 Computes the confluent hypergeometric function 1F1 also known as the Kummer function M. It returns a scaled value: exp(-x) * M(x,a,b). More...
 
template<class ScalarType >
void GetSphereEvenSampling (std::vector< std::vector< ScalarType > > &spherePoints, unsigned int numSamples)
 
template<class T >
vnl_matrix< T > GetSquareRoot (const vnl_matrix< T > &m, const double precision, vnl_matrix< T > &resultM)
 Gets the square root of matrix m. More...
 
template<class ScalarType >
void GetStandardWatsonSHCoefficients (const ScalarType k, std::vector< ScalarType > &coefficients, std::vector< ScalarType > &derivatives)
 
template<class ScalarType , unsigned int NDimensions>
void GetSVFExponential (itk::StationaryVelocityFieldTransform< ScalarType, NDimensions > *baseTrsf, rpi::DisplacementFieldTransform< ScalarType, NDimensions > *resultTransform, unsigned int exponentiationOrder, unsigned int numThreads, bool invert)
 
template<class T1 , class T2 >
void GetTensorFromVectorRepresentation (const itk::VariableLengthVector< T1 > &vector, vnl_matrix< T2 > &tensor, unsigned int tensDim=0, bool scale=false)
 
template<class T1 , class T2 >
void GetVectorRepresentation (const vnl_matrix< T1 > &tensor, itk::VariableLengthVector< T2 > &vector, unsigned int vecDim=0, bool scale=false)
 
template<class ScalarType >
double GetVonMisesConcentrationMLE (const ScalarType rbar)
 Maximum likelihood estimation of the concentration parameter of the 2D von Mises distribution according to Mardia, Statistics of Directional Data, 1972. More...
 
std::vector< std::vector< double > > InitializeSampleDirections (unsigned int nbTheta, unsigned int nbPhi, std::string sampleDirFileName)
 
template<class T >
void InverseCubicInterpolator (std::vector< T > &inputVect, std::vector< T > &outputVect, T step)
 
template<class T >
double jfour (const T &k)
 
template<class T >
double jtwo (const T &k)
 
double KummerIntegrandMethod (const double &x, const double &a, const double &b)
 According to Muller, K. E. (2001) ‘Computing the confluent hypergeometric function, M (a, b, x)’, Numerische Mathematik, pp. 179–196. Method with integral if b > a > 0. More...
 
double KummerMethod1 (const double &x, const double &a, const double &b, const unsigned int maxIter=1000, const double tol=1.0e-8)
 According to Muller, K. E. (2001) ‘Computing the confluent hypergeometric function, M (a, b, x)’, Numerische Mathematik, pp. 179–196. Method 1.C, p.5. More...
 
double KummerMethod2 (const double &x, const double &a, const double &b, const unsigned int maxIter=1000, const double tol=1.0e-8)
 According to Muller, K. E. (2001) ‘Computing the confluent hypergeometric function, M (a, b, x)’, Numerische Mathematik, pp. 179–196. Method 2, p.6. More...
 
double legendre_first_derivative (int L, int M, double value)
 
double legendre_second_derivative (int L, int M, double value)
 
double log_bessel_i (unsigned int N, double x)
 Computes the log of modified Bessel function of the first kind: I_{N} (N >= 0) More...
 
double log_bessel_i_lower_bound (unsigned int N, double x)
 Computes a lower bound of the log of modified Bessel function of the first kind: I_{N} (N >= 0) More...
 
double log_bessel_order_derivative_i (double x, unsigned int order, double emc, unsigned int approx_order=50)
 Computes the derivative of the log of modified Bessel function of the first kind w.r.t. its order (emc is the Euler-Mascheroni constant) More...
 
template<class ScalarType , class VectorType >
void LowerTriangularSolver (vnl_matrix< ScalarType > &matrix, VectorType &rhs, VectorType &result, unsigned int rank=0)
 
template<class VectorType >
void Normalize (const VectorType &v, const unsigned int NDimension, VectorType &resVec)
 
template<class ScalarType , unsigned int NDimension>
void Normalize (const itk::Vector< ScalarType, NDimension > &v, itk::Vector< ScalarType, NDimension > &resVec)
 
template<class ScalarType >
void Normalize (const itk::VariableLengthVector< ScalarType > &v, itk::VariableLengthVector< ScalarType > &resVec)
 
template<class ScalarType , unsigned int NDimension>
void Normalize (const itk::Point< ScalarType, NDimension > &v, itk::Point< ScalarType, NDimension > &resVec)
 
template<class ScalarType >
void Normalize (const vnl_vector< ScalarType > &v, vnl_vector< ScalarType > &resVec)
 
template<class ScalarType , unsigned int NDimension>
void Normalize (const vnl_vector_fixed< ScalarType, NDimension > &v, vnl_vector_fixed< ScalarType, NDimension > &resVec)
 
template<class ScalarType >
void Normalize (const std::vector< ScalarType > &v, std::vector< ScalarType > &resVec)
 
template<class T1 >
double ovlScore (vnl_diag_matrix< T1 > &eigsX, vnl_matrix< T1 > &eigVecsX, vnl_diag_matrix< T1 > &eigsY, vnl_matrix< T1 > &eigVecsY)
 
template<class TInput , class TOutput , unsigned int NDimensions>
void pairingToQuaternion (const vnl_vector_fixed< TInput, NDimensions > &inputPoint, const vnl_vector_fixed< TInput, NDimensions > &inputTransformedPoint, vnl_matrix< TOutput > &outputMatrix)
 
template<class TInput , class TOutput , unsigned int NDimensions>
void pairingToQuaternion (const itk::Vector< TInput, NDimensions > &inputPoint, const itk::Vector< TInput, NDimensions > &inputTransformedPoint, vnl_matrix< TOutput > &outputMatrix)
 
template<class PointType , class TOutput >
void pairingToQuaternion (const PointType &inputPoint, const PointType &inputTransformedPoint, vnl_matrix< TOutput > &outputMatrix, unsigned int ndim)
 
template<class TInput , class TOutput , unsigned int NDimensions>
void pairingToQuaternionScalingsDerivative (const vnl_vector_fixed< TInput, NDimensions > &inputPoint, const vnl_vector_fixed< TInput, NDimensions > &inputTransformedPoint, vnl_matrix< TOutput > &outputMatrix, const int &dimScal)
 
template<class TInput , class TOutput , unsigned int NDimensions>
void pairingToQuaternionScalingsDerivative (const itk::Vector< TInput, NDimensions > &inputPoint, const itk::Vector< TInput, NDimensions > &inputTransformedPoint, vnl_matrix< TOutput > &outputMatrix, const int &dimScal)
 
template<class PointType , class TOutput >
void pairingToQuaternionScalingsDerivative (const PointType &inputPoint, const PointType &inputTransformedPoint, vnl_matrix< TOutput > &outputMatrix, unsigned int ndim, const int &dimScal)
 
double PochHammer (const double &x, const unsigned int n)
 
template<class T1 , class T2 , class T3 >
void ProjectOnOrthogonalPlane (const std::vector< T1 > &v, const std::vector< T2 > &normalVec, std::vector< T3 > &resVec)
 
template<class T >
void ProjectOnTensorSpace (const vnl_matrix< T > &matrix, vnl_matrix< T > &tensor)
 
double psi_function (unsigned int n, double emc)
 
template<typename ScalarType >
void QRGivensDecomposition (vnl_matrix< ScalarType > &aMatrix, vnl_vector< ScalarType > &bVector)
 
template<typename ScalarType >
void QRPivotDecomposition (vnl_matrix< ScalarType > &aMatrix, std::vector< unsigned int > &pivotVector, std::vector< ScalarType > &houseBetaValues, unsigned int &rank)
 
template<class ImageType >
itk::SmartPointer< ImageType > readImage (std::string filename)
 
template<class T1 , class T2 >
void RecomposeTensor (vnl_diag_matrix< T1 > &eigs, vnl_matrix< T1 > &eigVecs, vnl_matrix< T2 > &resMatrix)
 Recompose tensor from values extracted using SymmetricEigenAnalysis (vnl_symmetric_eigensystem transposes all this) More...
 
template<class ImageType >
itk::SmartPointer< ImageType > reorient3DImage (typename itk::SmartPointer< ImageType > input, itk::SpatialOrientation::ValidCoordinateOrientationFlags orientation)
 
template<class ImageType , class GradientType >
void reorientGradients (typename itk::SmartPointer< ImageType > input, std::vector< GradientType > &gradients)
 
template<class ImageType >
itk::SmartPointer< ImageType > reorientImage (typename itk::SmartPointer< ImageType > input, itk::SpatialOrientation::ValidCoordinateOrientationFlags orientation)
 
template<class VectorType >
void Revert (const VectorType &v, const unsigned int vSize, VectorType &resVec)
 
template<class ScalarType >
void Revert (const std::vector< ScalarType > &v, std::vector< ScalarType > &resVec)
 
template<class ScalarType >
void Revert (const itk::Point< ScalarType > &v, itk::Point< ScalarType > &resVec)
 
template<class ScalarType , unsigned int NDimension>
void Revert (const vnl_vector_fixed< ScalarType, NDimension > &v, vnl_vector_fixed< ScalarType, NDimension > &resVec)
 
template<class T1 , class T2 , class T3 , class T4 >
void RotateAroundAxis (const std::vector< T1 > &v, const T2 &phi, const std::vector< T3 > &normalVec, std::vector< T4 > &resVec)
 
template<class Vector3DType , class ScalarType >
void RotateAroundAxis (const Vector3DType &v, const ScalarType &phi, const Vector3DType &normalVec, Vector3DType &resVec)
 
template<class T1 , class T2 , class T3 >
void RotateSymmetricMatrix (T1 &tensor, T2 &rotationMatrix, T3 &rotated_tensor, unsigned int tensorDim)
 Rotates a symmetric matrix by performing R^T D R where R is a rotation matrix and D the symmetric matrix. More...
 
template<class T1 , class T2 >
void RotateSymmetricMatrix (vnl_matrix< T1 > &tensor, vnl_matrix< T2 > &rotationMatrix, vnl_matrix< T2 > &rotated_tensor)
 
template<class T1 , class T2 , unsigned int NDim>
void RotateSymmetricMatrix (itk::Matrix< T1, NDim, NDim > &tensor, itk::Matrix< T2, NDim, NDim > &rotationMatrix, itk::Matrix< T2, NDim, NDim > &rotated_tensor)
 
template<class ScalarType >
double safe_log (const ScalarType x)
 
template<class T >
unsigned int SampleFromBernoulliDistribution (const T &p, std::mt19937 &generator)
 
template<class T >
double SampleFromGaussianDistribution (const T &mean, const T &std, std::mt19937 &generator)
 
template<class VectorType , class ScalarType >
void SampleFromMultivariateGaussianDistribution (const VectorType &mean, const vnl_matrix< ScalarType > &mat, VectorType &resVec, std::mt19937 &generator, bool isMatCovariance=true)
 
template<class T >
double SampleFromUniformDistribution (const T &a, const T &b, std::mt19937 &generator)
 
template<class VectorType >
void SampleFromUniformDistributionOn2Sphere (std::mt19937 &generator, VectorType &resVec)
 
template<class VectorType , class ScalarType >
void SampleFromVMFDistribution (const ScalarType &kappa, const VectorType &meanDirection, VectorType &resVec, std::mt19937 &generator)
 
template<class VectorType , class ScalarType >
void SampleFromVMFDistributionNumericallyStable (const ScalarType &kappa, const VectorType &meanDirection, VectorType &resVec, std::mt19937 &generator)
 
template<class ScalarType , class VectorType >
void SampleFromWatsonDistribution (const ScalarType &kappa, const VectorType &meanDirection, VectorType &resVec, unsigned int DataDimension, std::mt19937 &generator)
 
template<class ScalarType , unsigned int DataDimension>
void SampleFromWatsonDistribution (const ScalarType &kappa, const vnl_vector_fixed< ScalarType, DataDimension > &meanDirection, vnl_vector_fixed< ScalarType, DataDimension > &resVec, std::mt19937 &generator)
 
template<class ScalarType , unsigned int DataDimension>
void SampleFromWatsonDistribution (const ScalarType &kappa, const itk::Point< ScalarType, DataDimension > &meanDirection, itk::Point< ScalarType, DataDimension > &resVec, std::mt19937 &generator)
 
template<class ScalarType , unsigned int DataDimension>
void SampleFromWatsonDistribution (const ScalarType &kappa, const itk::Vector< ScalarType, DataDimension > &meanDirection, itk::Vector< ScalarType, DataDimension > &resVec, std::mt19937 &generator)
 
template<class InputImageType , class ImageFilterType >
unsigned int setMultipleImageFilterInputsFromFileName (std::string &fileName, ImageFilterType *filter)
 Set inputs of an image to image filter from a file name containing either a list of files or a higher dimensional image. More...
 
template<class T >
double ShOverId (const T &x)
 
template<class T1 , class T2 , class T3 >
double ShRatio (const T1 &k, const T2 &alpha, const T3 &beta)
 
template<class T >
double SinOverId (const T &x)
 
template<class ScalarType >
void sphere_exp_map (const std::vector< ScalarType > &p, const std::vector< ScalarType > &x, std::vector< ScalarType > &expValue)
 
template<class ScalarType >
void sphere_log_map (const std::vector< ScalarType > &p, const std::vector< ScalarType > &x, std::vector< ScalarType > &logValue)
 
template<class VectorType >
void TransformCartesianToSphericalCoordinates (const VectorType &v, VectorType &resVec)
 
template<class VectorType >
void TransformSphericalToCartesianCoordinates (const VectorType &v, VectorType &resVec)
 
template<class VectorType >
void TransformSphericalToCartesianCoordinates (double theta, double phi, double vectorNorm, VectorType &resVec)
 
template<class ScalarType , class VectorType >
void UpperTriangularSolver (const vnl_matrix< ScalarType > &matrix, const VectorType &rhs, VectorType &result, unsigned int rank=0)
 
template<class T >
double VectorCovarianceTest (vnl_matrix< T > &logRefPatchCov, vnl_matrix< T > &movingPatchCov)
 Test if covariance matrices are different (returns distance) More...
 
template<class T >
double VectorMeansTest (itk::VariableLengthVector< T > &refPatchMean, itk::VariableLengthVector< T > &movingPatchMean, const unsigned int &refPatchNumElts, const unsigned int &movingPatchNumElts, vnl_matrix< T > &refPatchCov, vnl_matrix< T > &movingPatchCov)
 Test if vector means are different (returns distance) More...
 
template<class ScalarType , unsigned int Dimension>
double VMFDistance (const itk::Point< ScalarType, Dimension > &muFirst, const double &kappaFirst, const itk::Point< ScalarType, Dimension > &muSec, const double &kappaSec)
 
template<class OutputImageType >
void writeImage (std::string filename, OutputImageType *img)
 
template<class T >
double xi (const T &k)
 

Variables

const double DiffusionBigDelta = 40.0e-3
 Default big delta value (classical values) More...
 
const double DiffusionGyromagneticRatio = 267.513e6
 Gyromagnetic ratio (in rad/s/T), from Nelson, J., Nuclear Magnetic Resonance Spectroscopy, Prentice Hall, Londres, 2003. More...
 
const double DiffusionSmallDelta = 10.0e-3
 Default small delta value (classical values) More...
 
const double MCMAxialDiffusivityAddonLowerBound = 5.0e-4
 Axial diffusivity add on to lower bound (used to ensure a minimal anisotropy to the anisotropic compartments) More...
 
const double MCMAzimuthAngleUpperBound = 2.0 * M_PI
 Azimuth angle upper bound. More...
 
const double MCMCompartmentsFractionUpperBound = 1.0e7
 Compartment fractions upper bound (B0 times weight) More...
 
const double MCMConcentrationUpperBound = 128.0
 Concentration upper bound (used in NODDI and DDI) More...
 
const double MCMDiffusivityLowerBound = 1.0e-6
 Diffusivity lower bound for estimation. More...
 
const double MCMDiffusivityUpperBound = 3.0e-3
 Diffusivity upper bound. More...
 
const double MCMEpsilon = 1.0e-2
 Epsilon value in case we do not want to have parameters reaching their true bounds (used for now in DDI) More...
 
const double MCMFractionUpperBound = 1.0
 Fraction upper bound (intra/extra axonal) More...
 
const double MCMFreeWaterDiffusivityLowerBound = 2.0e-3
 Free water diffusivity lower bound. More...
 
const double MCMFreeWaterDiffusivityUpperBound = 4.0e-3
 Free water diffusivity upper bound. More...
 
const double MCMIsotropicRestrictedWaterDiffusivityLowerBound = 0.25e-4
 Isotropic restricted water diffusivity lower bound. More...
 
const double MCMIsotropicRestrictedWaterDiffusivityUpperBound = 2.0e-3
 Isotropic restricted water diffusivity upper bound. More...
 
const double MCMPolarAngleUpperBound = M_PI
 Polar angle upper bound (used in tensor for now) More...
 
const double MCMRadialDiffusivityUpperBound = 1.0e-3
 Radial diffusivity upper bound. More...
 
const double MCMTissueRadiusLowerBound = 1.0e-4
 Tissue radius lower bound (in Stanisz for now) More...
 
const double MCMTissueRadiusUpperBound = 4.01e-2
 Tissue radius upper bound (in Stanisz for now) More...
 
const double MCMZeroLowerBound = 0.0
 Default zero lower bound (in case we want something else than zero one day) More...
 

Enumeration Type Documentation

◆ DiffusionModelCompartmentType

Enumerator
FreeWater 
StationaryWater 
IsotropicRestrictedWater 
Stanisz 
Stick 
Zeppelin 
Tensor 
NODDI 
DDI 

Definition at line 17 of file animaBaseCompartment.h.

Function Documentation

◆ a0r_support()

ANIMASPECIALFUNCTIONS_EXPORT double anima::a0r_support ( double  x,
unsigned int  N 
)

Support function for besserl_ratio_i.

Definition at line 155 of file animaBesselFunctions.cxx.

Referenced by bessel_ratio_i().

◆ ak_support()

ANIMASPECIALFUNCTIONS_EXPORT double anima::ak_support ( double  x,
unsigned int  N,
unsigned int  k 
)

Support function for besserl_ratio_i.

Definition at line 160 of file animaBesselFunctions.cxx.

Referenced by bessel_ratio_i().

◆ bessel_i_lower_bound()

ANIMASPECIALFUNCTIONS_EXPORT double anima::bessel_i_lower_bound ( unsigned int  N,
double  x 
)

Computes a lower bound of the modified Bessel function of the first kind: I_{N} (N >= 0)

Definition at line 50 of file animaBesselFunctions.cxx.

◆ bessel_ratio_i()

ANIMASPECIALFUNCTIONS_EXPORT double anima::bessel_ratio_i ( double  x,
unsigned int  N,
unsigned int  approx_order 
)

Computes the ratio of modified Bessel functions of the first kind: I_{N} / I_{N-1} (N >= 1)

Definition at line 76 of file animaBesselFunctions.cxx.

References a0r_support(), and ak_support().

Referenced by bessel_ratio_i_derivative(), and log_bessel_i().

◆ bessel_ratio_i_derivative()

ANIMASPECIALFUNCTIONS_EXPORT double anima::bessel_ratio_i_derivative ( double  x,
unsigned int  N,
unsigned int  approx_order 
)

Computes the derivative of the ratio of modified Bessel functions of the first kind: d/dx( I_{N}(x) / I_{N-1}(x) ) (N >= 1)

Definition at line 110 of file animaBesselFunctions.cxx.

References bessel_ratio_i().

◆ bessel_ratio_i_derivative_approx()

ANIMASPECIALFUNCTIONS_EXPORT double anima::bessel_ratio_i_derivative_approx ( double  x,
unsigned int  N 
)

Computes fast and accurate approximation of the derivative of the ratio of modified Bessel functions of the first kind: d/dx( I_{N}(x) / I_{N-1}(x) ) (N >= 1)

Definition at line 120 of file animaBesselFunctions.cxx.

References bessel_ratio_i_lower_bound().

◆ bessel_ratio_i_lower_bound()

ANIMASPECIALFUNCTIONS_EXPORT double anima::bessel_ratio_i_lower_bound ( double  x,
unsigned int  N 
)

Computes a lower bound of the ratio of modified Bessel functions of the first kind: I_{N} / I_{N-1} (N >= 1)

Definition at line 103 of file animaBesselFunctions.cxx.

Referenced by bessel_ratio_i_derivative_approx().

◆ BHCorrection()

ANIMASTATISTICALTESTS_EXPORT void anima::BHCorrection ( std::vector< double > &  pvalues,
double  qValue 
)

In place correction of p-values according to Benjamini Hochberg FDR method Output is a thresholded list at the specified q-value Eq. (1) of Y. Benjamini and Y. Hochberg. Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing. Journal of the Royal Statistical Society. Series B (Methodological) Vol. 57, No. 1 (1995), pp. 289-300

Definition at line 8 of file animaFDRCorrection.cxx.

Referenced by anima::FDRCorrectImageFilter< PixelScalarType >::GenerateData(), and anima::pair_increasing_comparator::operator()().

◆ BYCorrection()

ANIMASTATISTICALTESTS_EXPORT void anima::BYCorrection ( std::vector< double > &  pvalues,
double  qValue 
)

◆ ComplexShRatio()

template<class ScalarType >
std::complex< double > anima::ComplexShRatio ( const ScalarType &  k,
const ScalarType &  alpha,
const ScalarType &  beta 
)

Definition at line 20 of file animaHyperbolicFunctions.hxx.

◆ composeDistortionCorrections()

template<class ScalarType , unsigned int NDimensions>
void anima::composeDistortionCorrections ( typename rpi::DisplacementFieldTransform< ScalarType, NDimensions >::Pointer &  baseTrsf,
typename rpi::DisplacementFieldTransform< ScalarType, NDimensions >::Pointer &  positiveAddOn,
typename rpi::DisplacementFieldTransform< ScalarType, NDimensions >::Pointer &  negativeAddOn,
unsigned int  numThreads 
)

Compose distortion correction opposite updates, ensures opposite symmetry baseTrsf is replaced by the result !

Definition at line 251 of file animaVelocityUtils.hxx.

◆ composeSVF()

template<class ScalarType , unsigned int NDimensions>
void anima::composeSVF ( itk::StationaryVelocityFieldTransform< ScalarType, NDimensions > *  baseTrsf,
itk::StationaryVelocityFieldTransform< ScalarType, NDimensions > *  addonTrsf,
unsigned int  numThreads,
unsigned int  bchOrder 
)

Performs BCH approximation to composition of exp(baseTrsf) and exp(addonTrsf). As explained in M. Bossa et al. "Contributions to 3D diffeomorphic atlas estimation : application to brain images.", MICCAI 2007, p. 667–674.

Definition at line 16 of file animaVelocityUtils.hxx.

Referenced by anima::BaseBMRegistrationMethod< TInputImageType >::ComposeAddOnWithTransform(), and main().

◆ computeAffineLSWFromTranslations()

template<class TInput , class TScalarType , unsigned int NDimensions>
itk::Point< TInput, NDimensions > anima::computeAffineLSWFromTranslations ( std::vector< itk::Point< TInput, NDimensions > > &  inputOrigins,
std::vector< itk::Point< TInput, NDimensions > > &  inputTransformed,
std::vector< TInput > &  weights,
typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &  resultTransform 
)

Definition at line 296 of file animaLinearTransformEstimationTools.hxx.

◆ ComputeAngle()

template<class VectorType >
double anima::ComputeAngle ( const VectorType &  v1,
const VectorType &  v2 
)

Definition at line 422 of file animaVectorOperations.hxx.

References ComputeNorm(), and ComputeScalarProduct().

◆ computeAnisotropSimLSWFromTranslations()

template<class TInput , class TScalarType , unsigned int NDimensions>
itk::Point< TInput, NDimensions > anima::computeAnisotropSimLSWFromTranslations ( std::vector< itk::Point< TInput, NDimensions > > &  inputOrigins,
std::vector< itk::Point< TInput, NDimensions > > &  inputTransformed,
std::vector< TInput > &  weights,
typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &  resultTransform,
vnl_matrix< double > &  UMatrix 
)

◆ computeAverageLocalCovariance()

template<class T1 , class T2 , unsigned int Dimension>
void anima::computeAverageLocalCovariance ( vnl_matrix< T2 > &  resVariance,
itk::VectorImage< T1, Dimension > *  inputImage,
itk::Image< unsigned char, Dimension > *  maskImage,
const itk::ImageRegion< Dimension > &  averagingRegion,
int  localNeighborhood 
)

◆ ComputeCrossProduct() [1/7]

template<class VectorType >
void anima::ComputeCrossProduct ( const VectorType &  v1,
const VectorType &  v2,
const unsigned int  NDimension,
VectorType &  resVec 
)

Definition at line 254 of file animaVectorOperations.hxx.

Referenced by ComputeCrossProduct(), and SampleFromWatsonDistribution().

◆ ComputeCrossProduct() [2/7]

template<class ScalarType , unsigned int NDimension>
void anima::ComputeCrossProduct ( const itk::Vector< ScalarType, NDimension > &  v1,
const itk::Vector< ScalarType, NDimension > &  v2,
itk::Vector< ScalarType, NDimension > &  resVec 
)

Definition at line 264 of file animaVectorOperations.hxx.

References ComputeCrossProduct().

◆ ComputeCrossProduct() [3/7]

template<class ScalarType >
void anima::ComputeCrossProduct ( const itk::VariableLengthVector< ScalarType > &  v1,
const itk::VariableLengthVector< ScalarType > &  v2,
itk::VariableLengthVector< ScalarType > &  resVec 
)

Definition at line 269 of file animaVectorOperations.hxx.

References ComputeCrossProduct().

◆ ComputeCrossProduct() [4/7]

template<class ScalarType , unsigned int NDimension>
void anima::ComputeCrossProduct ( const itk::Point< ScalarType, NDimension > &  v1,
const itk::Point< ScalarType, NDimension > &  v2,
itk::Point< ScalarType, NDimension > &  resVec 
)

Definition at line 280 of file animaVectorOperations.hxx.

References ComputeCrossProduct().

◆ ComputeCrossProduct() [5/7]

template<class ScalarType >
void anima::ComputeCrossProduct ( const vnl_vector< ScalarType > &  v1,
const vnl_vector< ScalarType > &  v2,
vnl_vector< ScalarType > &  resVec 
)

Definition at line 285 of file animaVectorOperations.hxx.

References ComputeCrossProduct().

◆ ComputeCrossProduct() [6/7]

template<class ScalarType , unsigned int NDimension>
void anima::ComputeCrossProduct ( const vnl_vector_fixed< ScalarType, NDimension > &  v1,
const vnl_vector_fixed< ScalarType, NDimension > &  v2,
vnl_vector_fixed< ScalarType, NDimension > &  resVec 
)

Definition at line 296 of file animaVectorOperations.hxx.

References ComputeCrossProduct().

◆ ComputeCrossProduct() [7/7]

template<class ScalarType >
void anima::ComputeCrossProduct ( const std::vector< ScalarType > &  v1,
const std::vector< ScalarType > &  v2,
std::vector< ScalarType > &  resVec 
)

Definition at line 301 of file animaVectorOperations.hxx.

References ComputeCrossProduct().

◆ ComputeDirectedHausdorffDistance()

template<class VectorType >
double anima::ComputeDirectedHausdorffDistance ( const std::vector< VectorType > &  s1,
const std::vector< VectorType > &  s2 
)

Definition at line 92 of file animaVectorOperations.hxx.

References ComputePointToSetDistance().

Referenced by ComputeHausdorffDistance().

◆ ComputeEuclideanDistance() [1/7]

template<class VectorType >
double anima::ComputeEuclideanDistance ( const VectorType &  x1,
const VectorType &  x2,
const unsigned int  NDimension 
)

◆ ComputeEuclideanDistance() [2/7]

template<class ScalarType , unsigned int NDimension>
double anima::ComputeEuclideanDistance ( const itk::Vector< ScalarType, NDimension > &  x1,
const itk::Vector< ScalarType, NDimension > &  x2 
)

Definition at line 26 of file animaVectorOperations.hxx.

References ComputeEuclideanDistance().

◆ ComputeEuclideanDistance() [3/7]

template<class ScalarType >
double anima::ComputeEuclideanDistance ( const itk::VariableLengthVector< ScalarType > &  x1,
const itk::VariableLengthVector< ScalarType > &  x2 
)

Definition at line 31 of file animaVectorOperations.hxx.

References ComputeEuclideanDistance().

◆ ComputeEuclideanDistance() [4/7]

template<class ScalarType , unsigned int NDimension>
double anima::ComputeEuclideanDistance ( const itk::Point< ScalarType, NDimension > &  x1,
const itk::Point< ScalarType, NDimension > &  x2 
)

Definition at line 41 of file animaVectorOperations.hxx.

References ComputeEuclideanDistance().

◆ ComputeEuclideanDistance() [5/7]

template<class ScalarType >
double anima::ComputeEuclideanDistance ( const vnl_vector< ScalarType > &  x1,
const vnl_vector< ScalarType > &  x2 
)

Definition at line 46 of file animaVectorOperations.hxx.

References ComputeEuclideanDistance().

◆ ComputeEuclideanDistance() [6/7]

template<class ScalarType , unsigned int NDimension>
double anima::ComputeEuclideanDistance ( const vnl_vector_fixed< ScalarType, NDimension > &  x1,
const vnl_vector_fixed< ScalarType, NDimension > &  x2 
)

Definition at line 57 of file animaVectorOperations.hxx.

References ComputeEuclideanDistance().

◆ ComputeEuclideanDistance() [7/7]

template<class ScalarType >
double anima::ComputeEuclideanDistance ( const std::vector< ScalarType > &  x1,
const std::vector< ScalarType > &  x2 
)

Definition at line 62 of file animaVectorOperations.hxx.

References ComputeEuclideanDistance().

◆ ComputeHausdorffDistance()

template<class VectorType >
double anima::ComputeHausdorffDistance ( const std::vector< VectorType > &  s1,
const std::vector< VectorType > &  s2 
)

Definition at line 110 of file animaVectorOperations.hxx.

References ComputeDirectedHausdorffDistance().

◆ ComputeHouseholderVector() [1/3]

template<class VectorType >
void anima::ComputeHouseholderVector ( const VectorType &  inputVector,
VectorType &  outputVector,
double &  beta,
unsigned int  dimension 
)

Definition at line 376 of file animaVectorOperations.hxx.

Referenced by ComputeHouseholderVector(), and QRPivotDecomposition().

◆ ComputeHouseholderVector() [2/3]

template<class ScalarType >
void anima::ComputeHouseholderVector ( const std::vector< ScalarType > &  inputVector,
std::vector< ScalarType > &  outputVector,
double &  beta 
)

Definition at line 406 of file animaVectorOperations.hxx.

References ComputeHouseholderVector().

◆ ComputeHouseholderVector() [3/3]

template<class ScalarType >
void anima::ComputeHouseholderVector ( std::vector< ScalarType > &  vector,
double &  beta 
)

Definition at line 415 of file animaVectorOperations.hxx.

References ComputeHouseholderVector().

◆ computeLogEuclideanAverage()

template<class TInput , class TScalarType , unsigned int NDimensions>
void anima::computeLogEuclideanAverage ( std::vector< vnl_matrix< TInput > > &  inputTransforms,
std::vector< TInput > &  weights,
typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &  resultTransform 
)

Definition at line 261 of file animaLinearTransformEstimationTools.hxx.

References GetExponential().

◆ ComputeModifiedDirectedHausdorffDistance()

template<class VectorType >
double anima::ComputeModifiedDirectedHausdorffDistance ( const std::vector< VectorType > &  s1,
const std::vector< VectorType > &  s2 
)

◆ ComputeModifiedHausdorffDistance()

template<class VectorType >
double anima::ComputeModifiedHausdorffDistance ( const std::vector< VectorType > &  s1,
const std::vector< VectorType > &  s2 
)

◆ ComputeNorm()

template<class VectorType >
double anima::ComputeNorm ( const VectorType &  v)

◆ ComputeOrientationAngle()

template<class VectorType >
double anima::ComputeOrientationAngle ( const VectorType &  v1,
const VectorType &  v2 
)

◆ computePatchMeanAndCovariance()

template<class T1 , class T2 , unsigned int Dimension>
unsigned int anima::computePatchMeanAndCovariance ( const itk::VectorImage< T1, Dimension > *  inputImage,
const itk::ImageRegion< Dimension > &  patchRegion,
itk::VariableLengthVector< T2 > &  patchMean,
vnl_matrix< T2 > &  patchCov 
)

◆ ComputePointToSetDistance()

template<class VectorType >
double anima::ComputePointToSetDistance ( const VectorType &  x,
const std::vector< VectorType > &  s 
)

◆ computeRigidLSWFromTranslations()

template<class TInput , class TScalarType , unsigned int NDimensions>
void anima::computeRigidLSWFromTranslations ( std::vector< itk::Point< TInput, NDimensions > > &  inputOrigins,
std::vector< itk::Point< TInput, NDimensions > > &  inputTransformed,
std::vector< TInput > &  weights,
typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &  resultTransform 
)

Definition at line 63 of file animaLinearTransformEstimationTools.hxx.

References pairingToQuaternion().

◆ computeRotationFromQuaternion()

template<class TInput , class TOutput >
vnl_matrix< TOutput > anima::computeRotationFromQuaternion ( vnl_vector< TInput >  eigenVector)

Definition at line 363 of file animaLinearTransformEstimationTools.hxx.

◆ ComputeScalarProduct() [1/7]

template<class VectorType >
double anima::ComputeScalarProduct ( const VectorType &  v1,
const VectorType &  v2,
const unsigned int  NDimension 
)

◆ ComputeScalarProduct() [2/7]

template<class ScalarType , unsigned int NDimension>
double anima::ComputeScalarProduct ( const itk::Vector< ScalarType, NDimension > &  v1,
const itk::Vector< ScalarType, NDimension > &  v2 
)

Definition at line 206 of file animaVectorOperations.hxx.

References ComputeScalarProduct().

◆ ComputeScalarProduct() [3/7]

template<class ScalarType >
double anima::ComputeScalarProduct ( const itk::VariableLengthVector< ScalarType > &  v1,
const itk::VariableLengthVector< ScalarType > &  v2 
)

Definition at line 211 of file animaVectorOperations.hxx.

References ComputeScalarProduct().

◆ ComputeScalarProduct() [4/7]

template<class ScalarType , unsigned int NDimension>
double anima::ComputeScalarProduct ( const itk::Point< ScalarType, NDimension > &  v1,
const itk::Point< ScalarType, NDimension > &  v2 
)

Definition at line 221 of file animaVectorOperations.hxx.

References ComputeScalarProduct().

◆ ComputeScalarProduct() [5/7]

template<class ScalarType >
double anima::ComputeScalarProduct ( const vnl_vector< ScalarType > &  v1,
const vnl_vector< ScalarType > &  v2 
)

Definition at line 226 of file animaVectorOperations.hxx.

References ComputeScalarProduct().

◆ ComputeScalarProduct() [6/7]

template<class ScalarType , unsigned int NDimension>
double anima::ComputeScalarProduct ( const vnl_vector_fixed< ScalarType, NDimension > &  v1,
const vnl_vector_fixed< ScalarType, NDimension > &  v2 
)

Definition at line 236 of file animaVectorOperations.hxx.

References ComputeScalarProduct().

◆ ComputeScalarProduct() [7/7]

template<class ScalarType >
double anima::ComputeScalarProduct ( const std::vector< ScalarType > &  v1,
const std::vector< ScalarType > &  v2 
)

Definition at line 241 of file animaVectorOperations.hxx.

References ComputeScalarProduct().

◆ ComputeSphericalCentroid()

template<class ScalarType >
void anima::ComputeSphericalCentroid ( const std::vector< std::vector< ScalarType > > &  dataPoints,
std::vector< ScalarType > &  centroidValue,
const std::vector< ScalarType > &  initPoint,
const std::vector< ScalarType > &  weights,
std::vector< ScalarType > *  workLogVector = 0,
std::vector< ScalarType > *  workVector = 0,
double  tol = 1.0e-4 
)

Computes the weighted average of several points on the hyper-sphere.

Parameters
dataPointsList of points on the sphere
initPointStarting point for average computation
weightsWeights for each point
workLogVectorOptional work variable (for speed up) to compute the logarithms, to avoid creating it inside this function
workVectorOptional work variable (for speed up), to avoid creating it inside this function
tolTolerance for convergence

Definition at line 55 of file animaLogExpMapsUnitSphere.hxx.

References sphere_exp_map(), and sphere_log_map().

Referenced by anima::FuzzyCMeansFilter< double >::ComputeCentroids(), and main().

◆ computeTranslationLSWFromTranslations()

template<class TInput , class TScalarType , unsigned int NDimensions>
void anima::computeTranslationLSWFromTranslations ( std::vector< itk::Point< TInput, NDimensions > > &  inputOrigins,
std::vector< itk::Point< TInput, NDimensions > > &  inputTransformed,
std::vector< TInput > &  weights,
typename itk::AffineTransform< TScalarType, NDimensions >::Pointer &  resultTransform 
)

Definition at line 17 of file animaLinearTransformEstimationTools.hxx.

◆ ComputeVMFPdf()

template<class VectorType , class ScalarType >
double anima::ComputeVMFPdf ( const VectorType &  v,
const VectorType &  meanDirection,
const ScalarType &  kappa 
)

Definition at line 15 of file animaVMFDistribution.hxx.

References ComputeNorm(), and ComputeScalarProduct().

◆ Cubic()

template<class T >
T anima::Cubic ( x0,
x1,
x2,
x3,
y0,
y1,
y2,
y3,
x 
)

Definition at line 9 of file animaCubicInterpolation.hxx.

Referenced by InverseCubicInterpolator().

◆ CubicInterpolator()

template<class T >
void anima::CubicInterpolator ( std::vector< T > &  transfVect,
std::vector< T > &  scale,
std::vector< T > &  outputVect,
LengthLine 
)

Definition at line 81 of file animaCubicInterpolation.hxx.

◆ EstimateLocalODFRotationMatrix()

ANIMASHTOOLS_EXPORT void anima::EstimateLocalODFRotationMatrix ( vnl_matrix< double > &  resVal,
unsigned int  l,
double  alpha,
double  beta,
double  gamma 
)

◆ EvaluateDawsonFunction()

ANIMASPECIALFUNCTIONS_EXPORT double anima::EvaluateDawsonFunction ( double  x)

compute Dawson(x) = sqrt(pi)/2 * exp(-x^2) * erfi(x)

Definition at line 57 of file animaErrorFunctions.cxx.

References EvaluateWImFunction().

Referenced by anima::DawsonIntegrand::operator()().

◆ EvaluateDawsonFunctionNR()

ANIMASPECIALFUNCTIONS_EXPORT double anima::EvaluateDawsonFunctionNR ( double  x)

Numerical recipes implementation of Dawson integral.

Definition at line 20 of file animaErrorFunctions.cxx.

Referenced by EvaluateWatsonPDF(), and anima::DawsonIntegrand::operator()().

◆ EvaluateDawsonIntegral()

ANIMASPECIALFUNCTIONS_EXPORT double anima::EvaluateDawsonIntegral ( const double  x,
const bool  scaled 
)

◆ EvaluateWatsonPDF() [1/4]

template<class VectorType , class ScalarType >
double anima::EvaluateWatsonPDF ( const VectorType &  v,
const VectorType &  meanAxis,
const ScalarType &  kappa 
)

◆ EvaluateWatsonPDF() [2/4]

template<class ScalarType >
double anima::EvaluateWatsonPDF ( const vnl_vector_fixed< ScalarType, 3 > &  v,
const vnl_vector_fixed< ScalarType, 3 > &  meanAxis,
const ScalarType &  kappa 
)

Definition at line 56 of file animaWatsonDistribution.hxx.

◆ EvaluateWatsonPDF() [3/4]

template<class ScalarType >
double anima::EvaluateWatsonPDF ( const itk::Point< ScalarType, 3 > &  v,
const itk::Point< ScalarType, 3 > &  meanAxis,
const ScalarType &  kappa 
)

Definition at line 65 of file animaWatsonDistribution.hxx.

◆ EvaluateWatsonPDF() [4/4]

template<class ScalarType >
double anima::EvaluateWatsonPDF ( const itk::Vector< ScalarType, 3 > &  v,
const itk::Vector< ScalarType, 3 > &  meanAxis,
const ScalarType &  kappa 
)

Definition at line 74 of file animaWatsonDistribution.hxx.

◆ EvaluateWImFunction()

ANIMASPECIALFUNCTIONS_EXPORT double anima::EvaluateWImFunction ( double  x)

◆ EvaluateWImY100Function()

ANIMASPECIALFUNCTIONS_EXPORT double anima::EvaluateWImY100Function ( double  y100,
double  x 
)

◆ ExponentialSum() [1/7]

template<class VectorType >
double anima::ExponentialSum ( const VectorType &  x,
const unsigned int  NDimension 
)

◆ ExponentialSum() [2/7]

template<class ScalarType , unsigned int NDimension>
double anima::ExponentialSum ( const itk::Vector< ScalarType, NDimension > &  x)

Definition at line 160 of file animaVectorOperations.hxx.

References ExponentialSum().

◆ ExponentialSum() [3/7]

template<class ScalarType >
double anima::ExponentialSum ( const itk::VariableLengthVector< ScalarType > &  x)

Definition at line 165 of file animaVectorOperations.hxx.

References ExponentialSum().

◆ ExponentialSum() [4/7]

template<class ScalarType , unsigned int NDimension>
double anima::ExponentialSum ( const itk::Point< ScalarType, NDimension > &  x)

Definition at line 171 of file animaVectorOperations.hxx.

References ExponentialSum().

◆ ExponentialSum() [5/7]

template<class ScalarType >
double anima::ExponentialSum ( const vnl_vector< ScalarType > &  x)

Definition at line 176 of file animaVectorOperations.hxx.

References ExponentialSum().

◆ ExponentialSum() [6/7]

template<class ScalarType , unsigned int NDimension>
double anima::ExponentialSum ( const vnl_vector_fixed< ScalarType, NDimension > &  x)

Definition at line 182 of file animaVectorOperations.hxx.

References ExponentialSum().

◆ ExponentialSum() [7/7]

template<class ScalarType >
double anima::ExponentialSum ( const std::vector< ScalarType > &  x)

Definition at line 187 of file animaVectorOperations.hxx.

References ExponentialSum().

◆ ExtractPPDRotationFromJacobianMatrix()

template<typename RealType , typename MatrixType >
void anima::ExtractPPDRotationFromJacobianMatrix ( vnl_matrix< RealType > &  jacobianMatrix,
vnl_matrix< RealType > &  rotationMatrix,
MatrixType &  eigenVectors 
)

◆ ExtractRotationFromJacobianMatrix()

template<typename RealType >
void anima::ExtractRotationFromJacobianMatrix ( vnl_matrix< RealType > &  jacobianMatrix,
vnl_matrix< RealType > &  rotationMatrix,
vnl_matrix< RealType > &  tmpMat 
)

◆ gammaHalfMinusN()

ANIMASPECIALFUNCTIONS_EXPORT double anima::gammaHalfMinusN ( unsigned int  n)

Definition at line 33 of file animaGammaFunctions.cxx.

◆ gammaHalfPlusN()

ANIMASPECIALFUNCTIONS_EXPORT double anima::gammaHalfPlusN ( unsigned int  n)

Definition at line 23 of file animaGammaFunctions.cxx.

◆ Get3DRotationExponential()

template<class T >
void anima::Get3DRotationExponential ( const std::vector< T > &  angles,
vnl_matrix< T > &  outputRotation 
)

◆ Get3DRotationLogarithm()

template<class T >
void anima::Get3DRotationLogarithm ( const vnl_matrix< T > &  rotationMatrix,
std::vector< T > &  outputAngles 
)

Computation of a 3D rotation matrix logarithm. Rodrigues' explicit formula.

Definition at line 272 of file animaMatrixLogExp.hxx.

Referenced by anima::DTIEstimationImageFilter< InputPixelScalarType, OutputPixelScalarType >::DynamicThreadedGenerateData().

◆ GetBValueFromAcquisitionParameters()

double anima::GetBValueFromAcquisitionParameters ( double  smallDelta,
double  bigDelta,
double  gradientStrength 
)
inline

◆ GetDValue()

ANIMASHTOOLS_EXPORT double anima::GetDValue ( unsigned int  l,
int  m,
int  mp,
double  angle 
)

Definition at line 99 of file animaODFFunctions.cxx.

Referenced by EstimateLocalODFRotationMatrix().

◆ GetEulerAnglesFromRotationMatrix()

ANIMASHTOOLS_EXPORT void anima::GetEulerAnglesFromRotationMatrix ( vnl_matrix< double > &  R,
std::vector< double > &  resVal 
)

◆ GetExponential()

template<class T >
vnl_matrix< T > anima::GetExponential ( const vnl_matrix< T > &  m,
const int  numApprox = 1 
)

Computation of the matrix exponential. Algo: classical scaling and squaring, as in Matlab. See Higham, SIAM Matr. Anal., 2004.

Definition at line 198 of file animaMatrixLogExp.hxx.

Referenced by computeLogEuclideanAverage(), anima::LogRigid3DTransform< TScalarType >::ComputeMatrix(), main(), anima::SymmetricBMRegistrationMethod< TInputImageType >::PerformOneIteration(), and anima::KissingSymmetricBMRegistrationMethod< TInputImageType >::PerformOneIteration().

◆ GetGradientStrengthFromBValue()

double anima::GetGradientStrengthFromBValue ( double  bValue,
double  smallDelta,
double  bigDelta 
)
inline

Given b-value in s/mm^2 and deltas in s, computes gradient strength in T/mm.

Definition at line 20 of file animaMCMConstants.h.

Referenced by anima::StaniszCompartment::GetLogDiffusionProfile(), and anima::GradientFileReader< GradientType, BValueScalarType >::Update().

◆ getImagesFromHigherDimensionImage()

template<class InputImageType , class OutputImageType >
std::vector< itk::SmartPointer <OutputImageType> > anima::getImagesFromHigherDimensionImage ( InputImageType *  inputImage)

Get a vector of input images from a higher dimensional image.

Definition at line 42 of file animaReadWriteFunctions.h.

◆ GetKummerFunctionValue()

ANIMASPECIALFUNCTIONS_EXPORT double anima::GetKummerFunctionValue ( const double &  x,
const double &  a,
const double &  b,
const unsigned int  maxIter,
const double  tol 
)

Computes the confluent hypergeometric function 1F1 also known as the Kummer function M. It calls Kummer function core to get the value.

Definition at line 112 of file animaKummerFunctions.cxx.

References KummerIntegrandMethod(), KummerMethod1(), and KummerMethod2().

Referenced by main(), and anima::NODDICompartment::UpdateSignals().

◆ GetLogarithm()

template<class T >
vnl_matrix< T > anima::GetLogarithm ( const vnl_matrix< T > &  m,
const double  precision = 0.00000000001,
const int  numApprox = 1 
)

◆ GetMCMComponentType()

itk::ImageIOBase::IOComponentType ANIMAMCMBASE_EXPORT anima::GetMCMComponentType ( std::string  fileName)

Definition at line 8 of file animaMCMFileReader.cxx.

◆ GetPadeLogarithm() [1/2]

template<class T >
vnl_matrix<T> anima::GetPadeLogarithm ( const vnl_matrix< double > &  m,
const int  numApprox 
)

Final part of the computation of the log. Estimates the log with a Pade approximation for a matrix m such that |m-Id| <= 0.5.

Referenced by GetLogarithm().

◆ GetPadeLogarithm() [2/2]

template<class T >
vnl_matrix<T> anima::GetPadeLogarithm ( const vnl_matrix< T > &  m,
const int  numApprox 
)

Definition at line 65 of file animaMatrixLogExp.hxx.

◆ GetQMatrixQRPivoDecomposition()

template<typename ScalarType >
void anima::GetQMatrixQRPivoDecomposition ( vnl_matrix< ScalarType > &  qrMatrix,
std::vector< ScalarType > &  houseBetaValues,
vnl_matrix< ScalarType > &  qMatrix,
unsigned int  rank 
)

From the results of QR decomposition, compute Q from the obtained matrix in QRPivotDecomposition, beta values

◆ GetQMatrixQRPivotDecomposition()

template<typename ScalarType >
void anima::GetQMatrixQRPivotDecomposition ( vnl_matrix< ScalarType > &  qrMatrix,
std::vector< ScalarType > &  houseBetaValues,
vnl_matrix< ScalarType > &  qMatrix,
unsigned int  rank 
)

Definition at line 245 of file animaQRDecomposition.hxx.

Referenced by main().

◆ GetQtBFromQRPivotDecomposition()

template<typename ScalarType >
void anima::GetQtBFromQRPivotDecomposition ( vnl_matrix< ScalarType > &  qrMatrix,
vnl_vector< ScalarType > &  bVector,
std::vector< ScalarType > &  houseBetaValues,
unsigned int  rank 
)

From the results of QR decomposition, compute QtB from the obtained matrix in QRPivotDecomposition, beta values and provided vector B

Definition at line 221 of file animaQRDecomposition.hxx.

Referenced by main(), and anima::BoundedLevenbergMarquardtOptimizer::StartOptimization().

◆ GetRotationMatrixFromVectors() [1/4]

template<class VectorType >
itk::Matrix< double, 3, 3 > anima::GetRotationMatrixFromVectors ( const VectorType &  first_direction,
const VectorType &  second_direction,
const unsigned int  dimension 
)

◆ GetRotationMatrixFromVectors() [2/4]

template<class ScalarType >
itk::Matrix< double, 3, 3 > anima::GetRotationMatrixFromVectors ( const itk::Point< ScalarType > &  first_direction,
const itk::Point< ScalarType > &  second_direction 
)

Definition at line 54 of file animaMatrixOperations.hxx.

References GetRotationMatrixFromVectors().

◆ GetRotationMatrixFromVectors() [3/4]

template<class ScalarType , unsigned int NDimension>
itk::Matrix< double, 3, 3 > anima::GetRotationMatrixFromVectors ( const itk::Vector< ScalarType, NDimension > &  first_direction,
const itk::Vector< ScalarType, NDimension > &  second_direction 
)

Definition at line 62 of file animaMatrixOperations.hxx.

References GetRotationMatrixFromVectors().

◆ GetRotationMatrixFromVectors() [4/4]

template<class ScalarType , unsigned int NDimension>
itk::Matrix< double, 3, 3 > anima::GetRotationMatrixFromVectors ( const vnl_vector_fixed< ScalarType, NDimension > &  first_direction,
const vnl_vector_fixed< ScalarType, NDimension > &  second_direction 
)

Definition at line 69 of file animaMatrixOperations.hxx.

References GetRotationMatrixFromVectors().

◆ GetScaledKummerFunctionValue()

ANIMASPECIALFUNCTIONS_EXPORT double anima::GetScaledKummerFunctionValue ( const double &  x,
const double &  a,
const double &  b,
const unsigned int  maxIter,
const double  tol 
)

Computes the confluent hypergeometric function 1F1 also known as the Kummer function M. It returns a scaled value: exp(-x) * M(x,a,b).

Definition at line 154 of file animaKummerFunctions.cxx.

References KummerIntegrandMethod(), KummerMethod1(), and KummerMethod2().

◆ GetSphereEvenSampling()

template<class ScalarType >
void anima::GetSphereEvenSampling ( std::vector< std::vector< ScalarType > > &  spherePoints,
unsigned int  numSamples 
)

Computes N samples almost evenly spread on the half-sphere. C.G. Koay. A simple scheme for generating nearly uniform distribution of antipodally symmetric pointson the unit sphere Journal of computer science, 2, 2011, pp. 377-381

Parameters
spherePointsoutput vector containing all sampled point
numSamplesnumber of output samples required

Definition at line 8 of file animaSphereOperations.hxx.

Referenced by anima::MCMEstimatorImageFilter< InputPixelType, OutputPixelType >::BeforeThreadedGenerateData().

◆ GetSquareRoot()

template<class T >
vnl_matrix< T > anima::GetSquareRoot ( const vnl_matrix< T > &  m,
const double  precision,
vnl_matrix< T > &  resultM 
)

Gets the square root of matrix m.

Definition at line 13 of file animaMatrixLogExp.hxx.

Referenced by GetLogarithm().

◆ GetStandardWatsonSHCoefficients()

template<class ScalarType >
void anima::GetStandardWatsonSHCoefficients ( const ScalarType  k,
std::vector< ScalarType > &  coefficients,
std::vector< ScalarType > &  derivatives 
)

◆ GetSVFExponential()

template<class ScalarType , unsigned int NDimensions>
void anima::GetSVFExponential ( itk::StationaryVelocityFieldTransform< ScalarType, NDimensions > *  baseTrsf,
rpi::DisplacementFieldTransform< ScalarType, NDimensions > *  resultTransform,
unsigned int  exponentiationOrder,
unsigned int  numThreads,
bool  invert 
)

◆ GetTensorFromVectorRepresentation()

template<class T1 , class T2 >
void anima::GetTensorFromVectorRepresentation ( const itk::VariableLengthVector< T1 > &  vector,
vnl_matrix< T2 > &  tensor,
unsigned int  tensDim = 0,
bool  scale = false 
)

◆ GetVectorRepresentation()

template<class T1 , class T2 >
void anima::GetVectorRepresentation ( const vnl_matrix< T1 > &  tensor,
itk::VariableLengthVector< T2 > &  vector,
unsigned int  vecDim = 0,
bool  scale = false 
)

Definition at line 83 of file animaBaseTensorTools.hxx.

Referenced by anima::DTIProbabilisticTractographyImageFilter::ComputeModelValue(), anima::MCMWeightedAverager::ComputeOutputTensorCompatibleModel(), anima::MCMPairingMeanSquaresImageToImageMetric< TFixedImagePixelType, TMovingImagePixelType, ImageDimension >::ComputeTensorBasedMetricPart(), anima::MCMWeightedAverager::ComputeTensorDistanceMatrix(), anima::LogTensorImageFilter< TScalarType, NDimensions >::DynamicThreadedGenerateData(), anima::ExpTensorImageFilter< TScalarType, NDimensions >::DynamicThreadedGenerateData(), anima::DTIEstimationImageFilter< InputPixelScalarType, OutputPixelScalarType >::DynamicThreadedGenerateData(), anima::TensorCompartment::GetCompartmentVector(), anima::TensorMeanSquaresImageToImageMetric< TFixedImagePixelType, TMovingImagePixelType, ImageDimension >::GetValue(), anima::TensorGeneralizedCorrelationImageToImageMetric< TFixedImagePixelType, TMovingImagePixelType, ImageDimension >::GetValue(), anima::TensorCorrelationImageToImageMetric< TFixedImagePixelType, TMovingImagePixelType, ImageDimension >::GetValue(), anima::MTPairingCorrelationImageToImageMetric< TFixedImagePixelType, TMovingImagePixelType, ImageDimension >::GetValue(), anima::MTPairingCorrelationImageToImageMetric< TFixedImagePixelType, TMovingImagePixelType, ImageDimension >::PreComputeFixedValues(), anima::TensorCompartment::Reorient(), and anima::TensorResampleImageFilter< TImageType, TInterpolatorPrecisionType >::ReorientInterpolatedModel().

◆ GetVonMisesConcentrationMLE()

template<class ScalarType >
double anima::GetVonMisesConcentrationMLE ( const ScalarType  rbar)

Maximum likelihood estimation of the concentration parameter of the 2D von Mises distribution according to Mardia, Statistics of Directional Data, 1972.

Definition at line 72 of file animaVMFDistribution.hxx.

◆ InitializeSampleDirections()

ANIMASHTOOLS_EXPORT std::vector< std::vector< double > > anima::InitializeSampleDirections ( unsigned int  nbTheta,
unsigned int  nbPhi,
std::string  sampleDirFileName 
)

Definition at line 15 of file animaODFFunctions.cxx.

References TransformCartesianToSphericalCoordinates().

Referenced by main().

◆ InverseCubicInterpolator()

template<class T >
void anima::InverseCubicInterpolator ( std::vector< T > &  inputVect,
std::vector< T > &  outputVect,
step 
)

◆ jfour()

template<class T >
double anima::jfour ( const T &  k)

Definition at line 66 of file animaHyperbolicFunctions.hxx.

◆ jtwo()

template<class T >
double anima::jtwo ( const T &  k)

Definition at line 54 of file animaHyperbolicFunctions.hxx.

◆ KummerIntegrandMethod()

ANIMASPECIALFUNCTIONS_EXPORT double anima::KummerIntegrandMethod ( const double &  x,
const double &  a,
const double &  b 
)

According to Muller, K. E. (2001) ‘Computing the confluent hypergeometric function, M (a, b, x)’, Numerische Mathematik, pp. 179–196. Method with integral if b > a > 0.

Definition at line 99 of file animaKummerFunctions.cxx.

References anima::KummerIntegrand::SetAValue(), anima::KummerIntegrand::SetBValue(), and anima::KummerIntegrand::SetXValue().

Referenced by GetKummerFunctionValue(), and GetScaledKummerFunctionValue().

◆ KummerMethod1()

ANIMASPECIALFUNCTIONS_EXPORT double anima::KummerMethod1 ( const double &  x,
const double &  a,
const double &  b,
const unsigned int  maxIter,
const double  tol 
)

According to Muller, K. E. (2001) ‘Computing the confluent hypergeometric function, M (a, b, x)’, Numerische Mathematik, pp. 179–196. Method 1.C, p.5.

Definition at line 21 of file animaKummerFunctions.cxx.

Referenced by GetKummerFunctionValue(), and GetScaledKummerFunctionValue().

◆ KummerMethod2()

ANIMASPECIALFUNCTIONS_EXPORT double anima::KummerMethod2 ( const double &  x,
const double &  a,
const double &  b,
const unsigned int  maxIter,
const double  tol 
)

According to Muller, K. E. (2001) ‘Computing the confluent hypergeometric function, M (a, b, x)’, Numerische Mathematik, pp. 179–196. Method 2, p.6.

Definition at line 54 of file animaKummerFunctions.cxx.

References PochHammer().

Referenced by GetKummerFunctionValue(), and GetScaledKummerFunctionValue().

◆ legendre_first_derivative()

ANIMASPECIALFUNCTIONS_EXPORT double anima::legendre_first_derivative ( int  L,
int  M,
double  value 
)

◆ legendre_second_derivative()

ANIMASPECIALFUNCTIONS_EXPORT double anima::legendre_second_derivative ( int  L,
int  M,
double  value 
)

◆ log_bessel_i()

ANIMASPECIALFUNCTIONS_EXPORT double anima::log_bessel_i ( unsigned int  N,
double  x 
)

Computes the log of modified Bessel function of the first kind: I_{N} (N >= 0)

Definition at line 12 of file animaBesselFunctions.cxx.

References bessel_ratio_i().

◆ log_bessel_i_lower_bound()

ANIMASPECIALFUNCTIONS_EXPORT double anima::log_bessel_i_lower_bound ( unsigned int  N,
double  x 
)

Computes a lower bound of the log of modified Bessel function of the first kind: I_{N} (N >= 0)

Definition at line 63 of file animaBesselFunctions.cxx.

◆ log_bessel_order_derivative_i()

ANIMASPECIALFUNCTIONS_EXPORT double anima::log_bessel_order_derivative_i ( double  x,
unsigned int  order,
double  emc,
unsigned int  approx_order 
)

Computes the derivative of the log of modified Bessel function of the first kind w.r.t. its order (emc is the Euler-Mascheroni constant)

Definition at line 130 of file animaBesselFunctions.cxx.

References psi_function().

◆ LowerTriangularSolver()

template<class ScalarType , class VectorType >
void anima::LowerTriangularSolver ( vnl_matrix< ScalarType > &  matrix,
VectorType &  rhs,
VectorType &  result,
unsigned int  rank = 0 
)

Solves lower triangular system matrix * result = rhs using Gauss elimination. Matrix is a square matrix. Can be used with rhs and result pointing to the same address in which case, result will be erased. result has to be the same size as rhs If the matrix is not of full rank, rank can be set to something different than zero, in which case the solver will take only the first rank rows and columns

Definition at line 76 of file animaMatrixOperations.hxx.

Referenced by anima::BLMLambdaCostFunction::GetDerivative().

◆ Normalize() [1/7]

template<class VectorType >
void anima::Normalize ( const VectorType &  v,
const unsigned int  NDimension,
VectorType &  resVec 
)

◆ Normalize() [2/7]

template<class ScalarType , unsigned int NDimension>
void anima::Normalize ( const itk::Vector< ScalarType, NDimension > &  v,
itk::Vector< ScalarType, NDimension > &  resVec 
)

Definition at line 339 of file animaVectorOperations.hxx.

References Normalize().

◆ Normalize() [3/7]

template<class ScalarType >
void anima::Normalize ( const itk::VariableLengthVector< ScalarType > &  v,
itk::VariableLengthVector< ScalarType > &  resVec 
)

Definition at line 344 of file animaVectorOperations.hxx.

References Normalize().

◆ Normalize() [4/7]

template<class ScalarType , unsigned int NDimension>
void anima::Normalize ( const itk::Point< ScalarType, NDimension > &  v,
itk::Point< ScalarType, NDimension > &  resVec 
)

Definition at line 350 of file animaVectorOperations.hxx.

References Normalize().

◆ Normalize() [5/7]

template<class ScalarType >
void anima::Normalize ( const vnl_vector< ScalarType > &  v,
vnl_vector< ScalarType > &  resVec 
)

Definition at line 355 of file animaVectorOperations.hxx.

References Normalize().

◆ Normalize() [6/7]

template<class ScalarType , unsigned int NDimension>
void anima::Normalize ( const vnl_vector_fixed< ScalarType, NDimension > &  v,
vnl_vector_fixed< ScalarType, NDimension > &  resVec 
)

Definition at line 361 of file animaVectorOperations.hxx.

References Normalize().

◆ Normalize() [7/7]

template<class ScalarType >
void anima::Normalize ( const std::vector< ScalarType > &  v,
std::vector< ScalarType > &  resVec 
)

Definition at line 366 of file animaVectorOperations.hxx.

References Normalize().

◆ ovlScore()

template<class T1 >
double anima::ovlScore ( vnl_diag_matrix< T1 > &  eigsX,
vnl_matrix< T1 > &  eigVecsX,
vnl_diag_matrix< T1 > &  eigsY,
vnl_matrix< T1 > &  eigVecsY 
)

◆ pairingToQuaternion() [1/3]

template<class TInput , class TOutput , unsigned int NDimensions>
void anima::pairingToQuaternion ( const vnl_vector_fixed< TInput, NDimensions > &  inputPoint,
const vnl_vector_fixed< TInput, NDimensions > &  inputTransformedPoint,
vnl_matrix< TOutput > &  outputMatrix 
)

◆ pairingToQuaternion() [2/3]

template<class TInput , class TOutput , unsigned int NDimensions>
void anima::pairingToQuaternion ( const itk::Vector< TInput, NDimensions > &  inputPoint,
const itk::Vector< TInput, NDimensions > &  inputTransformedPoint,
vnl_matrix< TOutput > &  outputMatrix 
)

Definition at line 395 of file animaLinearTransformEstimationTools.hxx.

References pairingToQuaternion().

◆ pairingToQuaternion() [3/3]

template<class PointType , class TOutput >
void anima::pairingToQuaternion ( const PointType &  inputPoint,
const PointType &  inputTransformedPoint,
vnl_matrix< TOutput > &  outputMatrix,
unsigned int  ndim 
)

Definition at line 402 of file animaLinearTransformEstimationTools.hxx.

◆ pairingToQuaternionScalingsDerivative() [1/3]

template<class TInput , class TOutput , unsigned int NDimensions>
void anima::pairingToQuaternionScalingsDerivative ( const vnl_vector_fixed< TInput, NDimensions > &  inputPoint,
const vnl_vector_fixed< TInput, NDimensions > &  inputTransformedPoint,
vnl_matrix< TOutput > &  outputMatrix,
const int &  dimScal 
)

◆ pairingToQuaternionScalingsDerivative() [2/3]

template<class TInput , class TOutput , unsigned int NDimensions>
void anima::pairingToQuaternionScalingsDerivative ( const itk::Vector< TInput, NDimensions > &  inputPoint,
const itk::Vector< TInput, NDimensions > &  inputTransformedPoint,
vnl_matrix< TOutput > &  outputMatrix,
const int &  dimScal 
)

◆ pairingToQuaternionScalingsDerivative() [3/3]

template<class PointType , class TOutput >
void anima::pairingToQuaternionScalingsDerivative ( const PointType &  inputPoint,
const PointType &  inputTransformedPoint,
vnl_matrix< TOutput > &  outputMatrix,
unsigned int  ndim,
const int &  dimScal 
)

Definition at line 453 of file animaLinearTransformEstimationTools.hxx.

◆ PochHammer()

ANIMASPECIALFUNCTIONS_EXPORT double anima::PochHammer ( const double &  x,
const unsigned int  n 
)

Definition at line 9 of file animaKummerFunctions.cxx.

Referenced by KummerMethod2().

◆ ProjectOnOrthogonalPlane()

template<class T1 , class T2 , class T3 >
void anima::ProjectOnOrthogonalPlane ( const std::vector< T1 > &  v,
const std::vector< T2 > &  normalVec,
std::vector< T3 > &  resVec 
)

Definition at line 529 of file animaVectorOperations.hxx.

References ComputeScalarProduct(), and Normalize().

◆ ProjectOnTensorSpace()

template<class T >
void anima::ProjectOnTensorSpace ( const vnl_matrix< T > &  matrix,
vnl_matrix< T > &  tensor 
)

Definition at line 135 of file animaBaseTensorTools.hxx.

References RecomposeTensor().

◆ psi_function()

ANIMASPECIALFUNCTIONS_EXPORT double anima::psi_function ( unsigned int  n,
double  emc 
)

Definition at line 11 of file animaGammaFunctions.cxx.

Referenced by log_bessel_order_derivative_i().

◆ QRGivensDecomposition()

template<typename ScalarType >
void anima::QRGivensDecomposition ( vnl_matrix< ScalarType > &  aMatrix,
vnl_vector< ScalarType > &  bVector 
)

Computes QR decomposition following Golub et al. Matrix computations. 1996 (algorithm 5.2.2) Computes aMatrix = Q * R Only the R matrix gets stored back into aMatrix. If bVector is not empty, it is replaced by Q^t bVector

Definition at line 9 of file animaQRDecomposition.hxx.

Referenced by anima::BLMLambdaCostFunction::GetValue().

◆ QRPivotDecomposition()

template<typename ScalarType >
void anima::QRPivotDecomposition ( vnl_matrix< ScalarType > &  aMatrix,
std::vector< unsigned int > &  pivotVector,
std::vector< ScalarType > &  houseBetaValues,
unsigned int &  rank 
)

Computes QR decomposition with pivoting following Golub et al. Matrix computations. 1996 (algorithm 5.4.1) Computes aMatrix * pivot = Q * R Everything gets stored back into aMatrix and housBetaValues (R is the upper triangular part of aMatrix) Pivot is stored as pivotVector allowing to construct pivot by setting pivot(pivotVector(i),i) = 1, the rest being null

Definition at line 57 of file animaQRDecomposition.hxx.

References ComputeHouseholderVector().

Referenced by main(), and anima::BoundedLevenbergMarquardtOptimizer::StartOptimization().

◆ readImage()

template<class ImageType >
itk::SmartPointer<ImageType> anima::readImage ( std::string  filename)

Definition at line 12 of file animaReadWriteFunctions.h.

Referenced by main().

◆ RecomposeTensor()

template<class T1 , class T2 >
void anima::RecomposeTensor ( vnl_diag_matrix< T1 > &  eigs,
vnl_matrix< T1 > &  eigVecs,
vnl_matrix< T2 > &  resMatrix 
)

◆ reorient3DImage()

template<class ImageType >
itk::SmartPointer<ImageType> anima::reorient3DImage ( typename itk::SmartPointer< ImageType >  input,
itk::SpatialOrientation::ValidCoordinateOrientationFlags  orientation 
)

Definition at line 12 of file animaReorientation.h.

◆ reorientGradients()

template<class ImageType , class GradientType >
void anima::reorientGradients ( typename itk::SmartPointer< ImageType >  input,
std::vector< GradientType > &  gradients 
)

Definition at line 139 of file animaReorientation.h.

Referenced by convert().

◆ reorientImage()

template<class ImageType >
itk::SmartPointer<ImageType> anima::reorientImage ( typename itk::SmartPointer< ImageType >  input,
itk::SpatialOrientation::ValidCoordinateOrientationFlags  orientation 
)

Definition at line 31 of file animaReorientation.h.

Referenced by convert().

◆ Revert() [1/4]

template<class VectorType >
void anima::Revert ( const VectorType &  v,
const unsigned int  vSize,
VectorType &  resVec 
)

◆ Revert() [2/4]

template<class ScalarType >
void anima::Revert ( const std::vector< ScalarType > &  v,
std::vector< ScalarType > &  resVec 
)

Definition at line 456 of file animaVectorOperations.hxx.

References Revert().

◆ Revert() [3/4]

template<class ScalarType >
void anima::Revert ( const itk::Point< ScalarType > &  v,
itk::Point< ScalarType > &  resVec 
)

Definition at line 462 of file animaVectorOperations.hxx.

References Revert().

◆ Revert() [4/4]

template<class ScalarType , unsigned int NDimension>
void anima::Revert ( const vnl_vector_fixed< ScalarType, NDimension > &  v,
vnl_vector_fixed< ScalarType, NDimension > &  resVec 
)

Definition at line 469 of file animaVectorOperations.hxx.

References Revert().

◆ RotateAroundAxis() [1/2]

template<class T1 , class T2 , class T3 , class T4 >
void anima::RotateAroundAxis ( const std::vector< T1 > &  v,
const T2 &  phi,
const std::vector< T3 > &  normalVec,
std::vector< T4 > &  resVec 
)

Definition at line 546 of file animaVectorOperations.hxx.

Referenced by SampleFromWatsonDistribution().

◆ RotateAroundAxis() [2/2]

template<class Vector3DType , class ScalarType >
void anima::RotateAroundAxis ( const Vector3DType &  v,
const ScalarType &  phi,
const Vector3DType &  normalVec,
Vector3DType &  resVec 
)

Definition at line 582 of file animaVectorOperations.hxx.

◆ RotateSymmetricMatrix() [1/3]

template<class T1 , class T2 , class T3 >
void anima::RotateSymmetricMatrix ( T1 &  tensor,
T2 &  rotationMatrix,
T3 &  rotated_tensor,
unsigned int  tensorDim 
)

◆ RotateSymmetricMatrix() [2/3]

template<class T1 , class T2 >
void anima::RotateSymmetricMatrix ( vnl_matrix< T1 > &  tensor,
vnl_matrix< T2 > &  rotationMatrix,
vnl_matrix< T2 > &  rotated_tensor 
)

Definition at line 300 of file animaBaseTensorTools.hxx.

References RotateSymmetricMatrix().

◆ RotateSymmetricMatrix() [3/3]

template<class T1 , class T2 , unsigned int NDim>
void anima::RotateSymmetricMatrix ( itk::Matrix< T1, NDim, NDim > &  tensor,
itk::Matrix< T2, NDim, NDim > &  rotationMatrix,
itk::Matrix< T2, NDim, NDim > &  rotated_tensor 
)

Definition at line 309 of file animaBaseTensorTools.hxx.

References RotateSymmetricMatrix().

◆ safe_log()

template<class ScalarType >
double anima::safe_log ( const ScalarType  x)

◆ SampleFromBernoulliDistribution()

template<class T >
unsigned int anima::SampleFromBernoulliDistribution ( const T &  p,
std::mt19937 &  generator 
)

Definition at line 45 of file animaDistributionSampling.hxx.

◆ SampleFromGaussianDistribution()

template<class T >
double anima::SampleFromGaussianDistribution ( const T &  mean,
const T &  std,
std::mt19937 &  generator 
)

◆ SampleFromMultivariateGaussianDistribution()

template<class VectorType , class ScalarType >
void anima::SampleFromMultivariateGaussianDistribution ( const VectorType &  mean,
const vnl_matrix< ScalarType > &  mat,
VectorType &  resVec,
std::mt19937 &  generator,
bool  isMatCovariance = true 
)

◆ SampleFromUniformDistribution()

template<class T >
double anima::SampleFromUniformDistribution ( const T &  a,
const T &  b,
std::mt19937 &  generator 
)

◆ SampleFromUniformDistributionOn2Sphere()

template<class VectorType >
void anima::SampleFromUniformDistributionOn2Sphere ( std::mt19937 &  generator,
VectorType &  resVec 
)

Definition at line 26 of file animaDistributionSampling.hxx.

Referenced by main().

◆ SampleFromVMFDistribution()

template<class VectorType , class ScalarType >
void anima::SampleFromVMFDistribution ( const ScalarType &  kappa,
const VectorType &  meanDirection,
VectorType &  resVec,
std::mt19937 &  generator 
)

◆ SampleFromVMFDistributionNumericallyStable()

template<class VectorType , class ScalarType >
void anima::SampleFromVMFDistributionNumericallyStable ( const ScalarType &  kappa,
const VectorType &  meanDirection,
VectorType &  resVec,
std::mt19937 &  generator 
)

◆ SampleFromWatsonDistribution() [1/4]

template<class ScalarType , class VectorType >
void anima::SampleFromWatsonDistribution ( const ScalarType &  kappa,
const VectorType &  meanDirection,
VectorType &  resVec,
unsigned int  DataDimension,
std::mt19937 &  generator 
)
   void
SampleFromWatsonDistribution(const ScalarType &kappa,
                const VectorType &meanDirection,
                VectorType &resVec,
                unsigned int DataDimension,
                std::mt19937 &generator)

Sample from the Watson distribution using the procedure described in Fisher et al., Statistical Analysis of Spherical Data, 1993, p.59.

Author
Aymeric Stamm
Date
October 2013
Parameters
kappaConcentration parameter of the Watson distribution.
meanDirectionMean direction of the Watson distribution.
resVecResulting sample.
DataDimensionDimension of the sphere + 1.
generatorPseudo-random number generator.

Definition at line 177 of file animaDistributionSampling.hxx.

References ComputeCrossProduct(), ComputeNorm(), Normalize(), RotateAroundAxis(), SampleFromUniformDistribution(), and TransformCartesianToSphericalCoordinates().

Referenced by anima::DTIProbabilisticTractographyImageFilter::ProposeNewDirection(), anima::ODFProbabilisticTractographyImageFilter::ProposeNewDirection(), and SampleFromWatsonDistribution().

◆ SampleFromWatsonDistribution() [2/4]

template<class ScalarType , unsigned int DataDimension>
void anima::SampleFromWatsonDistribution ( const ScalarType &  kappa,
const vnl_vector_fixed< ScalarType, DataDimension > &  meanDirection,
vnl_vector_fixed< ScalarType, DataDimension > &  resVec,
std::mt19937 &  generator 
)
   void
SampleFromWatsonDistribution(const ScalarType &kappa,
                const vnl_vector_fixed < ScalarType, DataDimension > &meanDirection,
                vnl_vector_fixed < ScalarType, DataDimension > &resVec,
                std::mt19937 &generator)

Sample from the Watson distribution using the procedure described in Fisher et al., Statistical Analysis of Spherical Data, 1993, p.59.

Author
Aymeric Stamm
Date
October 2013
Parameters
kappaConcentration parameter of the Watson distribution.
meanDirectionMean direction of the Watson distribution.
resVecResulting sample.
generatorPseudo-random number generator.

Definition at line 292 of file animaDistributionSampling.hxx.

References SampleFromWatsonDistribution().

◆ SampleFromWatsonDistribution() [3/4]

template<class ScalarType , unsigned int DataDimension>
void anima::SampleFromWatsonDistribution ( const ScalarType &  kappa,
const itk::Point< ScalarType, DataDimension > &  meanDirection,
itk::Point< ScalarType, DataDimension > &  resVec,
std::mt19937 &  generator 
)
   void
SampleFromWatsonDistribution(const ScalarType &kappa,
                const itk::Point < ScalarType, DataDimension > &meanDirection,
                itk::Point < ScalarType, DataDimension > &resVec,
                std::mt19937 &generator)

Sample from the Watson distribution using the procedure described in Fisher et al., Statistical Analysis of Spherical Data, 1993, p.59.

Author
Aymeric Stamm
Date
October 2013
Parameters
kappaConcentration parameter of the Watson distribution.
meanDirectionMean direction of the Watson distribution.
resVecResulting sample.
generatorPseudo-random number generator.

Definition at line 320 of file animaDistributionSampling.hxx.

References SampleFromWatsonDistribution().

◆ SampleFromWatsonDistribution() [4/4]

template<class ScalarType , unsigned int DataDimension>
void anima::SampleFromWatsonDistribution ( const ScalarType &  kappa,
const itk::Vector< ScalarType, DataDimension > &  meanDirection,
itk::Vector< ScalarType, DataDimension > &  resVec,
std::mt19937 &  generator 
)
   void
SampleFromWatsonDistribution(const ScalarType &kappa,
                const itk::Vector < ScalarType, DataDimension > &meanDirection,
                itk::Vector < ScalarType, DataDimension > &resVec,
                std::mt19937 &generator)

Sample from the Watson distribution using the procedure described in Fisher et al., Statistical Analysis of Spherical Data, 1993, p.59.

Author
Aymeric Stamm
Date
October 2013
Parameters
kappaConcentration parameter of the Watson distribution.
meanDirectionMean direction of the Watson distribution.
resVecResulting sample.
generatorPseudo-random number generator.

Definition at line 348 of file animaDistributionSampling.hxx.

References SampleFromWatsonDistribution().

◆ setMultipleImageFilterInputsFromFileName()

template<class InputImageType , class ImageFilterType >
unsigned int anima::setMultipleImageFilterInputsFromFileName ( std::string &  fileName,
ImageFilterType *  filter 
)

Set inputs of an image to image filter from a file name containing either a list of files or a higher dimensional image.

Definition at line 79 of file animaReadWriteFunctions.h.

◆ ShOverId()

template<class T >
double anima::ShOverId ( const T &  x)

Definition at line 8 of file animaHyperbolicFunctions.hxx.

◆ ShRatio()

template<class T1 , class T2 , class T3 >
double anima::ShRatio ( const T1 &  k,
const T2 &  alpha,
const T3 &  beta 
)

Definition at line 33 of file animaHyperbolicFunctions.hxx.

◆ SinOverId()

template<class T >
double anima::SinOverId ( const T &  x)

Definition at line 8 of file animaTrigonometricFunctions.hxx.

◆ sphere_exp_map()

template<class ScalarType >
void anima::sphere_exp_map ( const std::vector< ScalarType > &  p,
const std::vector< ScalarType > &  x,
std::vector< ScalarType > &  expValue 
)

Computes the exponential map on the hyper-sphere.

Parameters
plog-point to exponentiate
xreference point of the exponential
expValueexponential value (result)

Definition at line 32 of file animaLogExpMapsUnitSphere.hxx.

Referenced by ComputeSphericalCentroid().

◆ sphere_log_map()

template<class ScalarType >
void anima::sphere_log_map ( const std::vector< ScalarType > &  p,
const std::vector< ScalarType > &  x,
std::vector< ScalarType > &  logValue 
)

Computes the logarithm map on the hyper-sphere.

Parameters
ppoint to compute the logarithm from
xreference point on the sphere (unfolding happens from that point)
logValueLogarithm value (result)

Definition at line 8 of file animaLogExpMapsUnitSphere.hxx.

Referenced by ComputeSphericalCentroid().

◆ TransformCartesianToSphericalCoordinates()

template<class VectorType >
void anima::TransformCartesianToSphericalCoordinates ( const VectorType &  v,
VectorType &  resVec 
)

◆ TransformSphericalToCartesianCoordinates() [1/2]

template<class VectorType >
void anima::TransformSphericalToCartesianCoordinates ( const VectorType &  v,
VectorType &  resVec 
)

◆ TransformSphericalToCartesianCoordinates() [2/2]

template<class VectorType >
void anima::TransformSphericalToCartesianCoordinates ( double  theta,
double  phi,
double  vectorNorm,
VectorType &  resVec 
)

Definition at line 509 of file animaVectorOperations.hxx.

◆ UpperTriangularSolver()

template<class ScalarType , class VectorType >
void anima::UpperTriangularSolver ( const vnl_matrix< ScalarType > &  matrix,
const VectorType &  rhs,
VectorType &  result,
unsigned int  rank = 0 
)

Solves upper triangular system matrix * result = rhs using Gauss elimination. Matrix is a square matrix. Can be used with rhs and result pointing to the same address in which case, result will be erased. result has to be the same size as rhs If the matrix is not of full rank, rank can be set to something different than zero, in which case the solver will take only the first rank rows and columns

Definition at line 94 of file animaMatrixOperations.hxx.

Referenced by anima::BLMLambdaCostFunction::GetValue().

◆ VectorCovarianceTest()

template<class T >
double anima::VectorCovarianceTest ( vnl_matrix< T > &  logRefPatchCov,
vnl_matrix< T > &  movingPatchCov 
)

◆ VectorMeansTest()

template<class T >
double anima::VectorMeansTest ( itk::VariableLengthVector< T > &  refPatchMean,
itk::VariableLengthVector< T > &  movingPatchMean,
const unsigned int &  refPatchNumElts,
const unsigned int &  movingPatchNumElts,
vnl_matrix< T > &  refPatchCov,
vnl_matrix< T > &  movingPatchCov 
)

◆ VMFDistance()

template<class ScalarType , unsigned int Dimension>
double anima::VMFDistance ( const itk::Point< ScalarType, Dimension > &  muFirst,
const double &  kappaFirst,
const itk::Point< ScalarType, Dimension > &  muSec,
const double &  kappaSec 
)

Definition at line 46 of file animaVMFDistribution.hxx.

References safe_log().

◆ writeImage()

template<class OutputImageType >
void anima::writeImage ( std::string  filename,
OutputImageType *  img 
)

Definition at line 28 of file animaReadWriteFunctions.h.

Referenced by main().

◆ xi()

template<class T >
double anima::xi ( const T &  k)

Variable Documentation

◆ DiffusionBigDelta

const double anima::DiffusionBigDelta = 40.0e-3

◆ DiffusionGyromagneticRatio

const double anima::DiffusionGyromagneticRatio = 267.513e6

Gyromagnetic ratio (in rad/s/T), from Nelson, J., Nuclear Magnetic Resonance Spectroscopy, Prentice Hall, Londres, 2003.

Definition at line 10 of file animaMCMConstants.h.

Referenced by anima::StaniszCompartment::GetFourierTransformedDiffusionProfile(), anima::StaniszCompartment::GetLogDiffusionProfile(), anima::StaniszCompartment::GetSignalAttenuationJacobian(), and anima::StaniszCompartment::UpdateSignals().

◆ DiffusionSmallDelta

const double anima::DiffusionSmallDelta = 10.0e-3

◆ MCMAxialDiffusivityAddonLowerBound

const double anima::MCMAxialDiffusivityAddonLowerBound = 5.0e-4

◆ MCMAzimuthAngleUpperBound

const double anima::MCMAzimuthAngleUpperBound = 2.0 * M_PI

◆ MCMCompartmentsFractionUpperBound

const double anima::MCMCompartmentsFractionUpperBound = 1.0e7

Compartment fractions upper bound (B0 times weight)

Definition at line 39 of file animaMCMConstants.h.

Referenced by anima::MultiCompartmentModel::GetParameterUpperBounds().

◆ MCMConcentrationUpperBound

const double anima::MCMConcentrationUpperBound = 128.0

Concentration upper bound (used in NODDI and DDI)

Definition at line 72 of file animaMCMConstants.h.

Referenced by anima::NODDICompartment::GetParameterUpperBounds().

◆ MCMDiffusivityLowerBound

const double anima::MCMDiffusivityLowerBound = 1.0e-6

◆ MCMDiffusivityUpperBound

const double anima::MCMDiffusivityUpperBound = 3.0e-3

◆ MCMEpsilon

const double anima::MCMEpsilon = 1.0e-2

Epsilon value in case we do not want to have parameters reaching their true bounds (used for now in DDI)

Definition at line 36 of file animaMCMConstants.h.

◆ MCMFractionUpperBound

const double anima::MCMFractionUpperBound = 1.0

Fraction upper bound (intra/extra axonal)

Definition at line 75 of file animaMCMConstants.h.

Referenced by anima::MultiCompartmentModel::GetParameterLowerBounds(), and anima::NODDICompartment::GetParameterUpperBounds().

◆ MCMFreeWaterDiffusivityLowerBound

const double anima::MCMFreeWaterDiffusivityLowerBound = 2.0e-3

Free water diffusivity lower bound.

Definition at line 54 of file animaMCMConstants.h.

Referenced by anima::FreeWaterCompartment::GetParameterLowerBounds().

◆ MCMFreeWaterDiffusivityUpperBound

const double anima::MCMFreeWaterDiffusivityUpperBound = 4.0e-3

Free water diffusivity upper bound.

Definition at line 57 of file animaMCMConstants.h.

Referenced by anima::FreeWaterCompartment::GetParameterUpperBounds().

◆ MCMIsotropicRestrictedWaterDiffusivityLowerBound

const double anima::MCMIsotropicRestrictedWaterDiffusivityLowerBound = 0.25e-4

Isotropic restricted water diffusivity lower bound.

Definition at line 60 of file animaMCMConstants.h.

Referenced by anima::IsotropicRestrictedWaterCompartment::GetParameterLowerBounds().

◆ MCMIsotropicRestrictedWaterDiffusivityUpperBound

const double anima::MCMIsotropicRestrictedWaterDiffusivityUpperBound = 2.0e-3

Isotropic restricted water diffusivity upper bound.

Definition at line 63 of file animaMCMConstants.h.

Referenced by anima::IsotropicRestrictedWaterCompartment::GetParameterUpperBounds().

◆ MCMPolarAngleUpperBound

const double anima::MCMPolarAngleUpperBound = M_PI

◆ MCMRadialDiffusivityUpperBound

const double anima::MCMRadialDiffusivityUpperBound = 1.0e-3

Radial diffusivity upper bound.

Definition at line 51 of file animaMCMConstants.h.

Referenced by anima::ZeppelinCompartment::GetParameterUpperBounds(), and anima::TensorCompartment::GetParameterUpperBounds().

◆ MCMTissueRadiusLowerBound

const double anima::MCMTissueRadiusLowerBound = 1.0e-4

Tissue radius lower bound (in Stanisz for now)

Definition at line 78 of file animaMCMConstants.h.

Referenced by anima::StaniszCompartment::GetParameterLowerBounds().

◆ MCMTissueRadiusUpperBound

const double anima::MCMTissueRadiusUpperBound = 4.01e-2

Tissue radius upper bound (in Stanisz for now)

Definition at line 81 of file animaMCMConstants.h.

Referenced by anima::StaniszCompartment::GetParameterUpperBounds().

◆ MCMZeroLowerBound

const double anima::MCMZeroLowerBound = 0.0