NPL
Neurological Programs and Libraries
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cnpl::ArmijoImplementation of Armijo approximate line search algorithm
 Cnpl::Bytes< T >
 Cnpl::ChunkSlicerThis class is used to step through an ND array in order of dimensions, but unlike Slicer it breaks the NDArray into chunks. Iteration stops at the end of each chunk until nextChunk is called. By default only one chunk is used, equal to the entire image. Use setBreaks() to set the frequency of chunks. The input to setBreaks() is an array of integers, where the next chunk occurs when distbreak == 0, with the special property that break=0 indicates no breaks for the dimension. So for a 3D image, setBreaks({1,0,0}) will stop every time a new x-values is reached. Note that the affects the order of iteration, so x cannot be the fastest iterator. setChunkSize() is an alias for setBreaks. Note that in cases where breaksize != 0, for example image size = 5 and break = 3, chunk sizes will differ during the course of iteration!
 Cnpl::ChunkConstIter< T >Constant iterator for NDArray. This is slightly different from order iterator in that the ROI may be broken down into chunks. When the end of a chunk is reached, no more iteration can be performed until nextChunk() is called. isEnd() will return false until nextChunk() is called while the current chunk is at the last available. Note that if setBreaks uses an array that is smaller than input dimension, then the whole of the dimension will be used
 Cnpl::ChunkIter< T >This class is used to iterate through an N-Dimensional array
 Cnpl::ClassifierBase class for all ND classifiers
 Cnpl::ExpMaxExpectation Maximization With Gaussian Mixture Model
 Cnpl::KMeansK-means classifier
 Cstd::complexSTL class
 Cnpl::cdouble_t
 Cnpl::cfloat_t
 Cnpl::cquad_t
 Cnpl::Counter< T, MAXDIM >Very basic counter that iterates over an ND region
 CDftHead
 Cnpl::DistCorrInfoCompThe distortion correction MI Computer is used to compute the mutual information and gradient of mutual information between two images using nonrigid, unidirectional, B-spline transform
 Cenable_shared_from_this
 Cnpl::NDArrayPure virtual interface to interact with an ND array
 Cnpl::NDArrayStore< 1, double >
 Cnpl::NDArrayStore< 2, double >
 Cnpl::NDArrayStore< 3, double >
 Cnpl::NDArrayStore< D, double >
 Cnpl::MRImageStore< 3, double >
 Cnpl::MRImageStore< 4, double >
 Cnpl::MRImageStore< 5, double >
 Cnpl::MRImageMRImage can basically be used like an NDArray, with the addition of orientation related additions
 Cnpl::MRImageStore< 3, double >
 Cnpl::MRImageStore< 4, double >
 Cnpl::MRImageStore< 5, double >
 Cnpl::MRImageStore< D, T >MRImageStore is a version of NDArray that has an orientation matrix. Right now it also has additional data that is unique to nifti. Eventually this class will be forked into a subclass, and this will only have the orientation
 Cnpl::NDArrayStore< D, T >Basic storage unity for ND array. Creates a big chunk of memory
 Cnpl::MRImageStore< D, T >MRImageStore is a version of NDArray that has an orientation matrix. Right now it also has additional data that is unique to nifti. Eventually this class will be forked into a subclass, and this will only have the orientation
 Cnpl::FlatConstIter< T >Flat iterator iterator for NDArray. No information is kept about the current index. Just goes through all data. This casts the output to the type specified using T
 Cnpl::FlatIter< T >Flat iterator for NDArray. No information is kept about the current ND index. Just goes through all data. This casts the output to the type specified using T
 Cnpl::Graph< T >
 Cnpl::KDTree< K, E, T, D >
 Cnpl::KDTreeNode< K, E, T, D >
 Cnpl::KSlicerThis class is used to slice an image in along a dimension, and to step an arbitrary direction in an image. Order may be any size from 0 to the number of dimensions. The first member of order will be the fastest moving, and the last will be the slowest. Any not dimensions not included in the order vector will be slower than the last member of order
 Cnpl::KernelIter< T >Iterator for an image, that allows for easy access to the neighbors of the current element/pixel. Neighbors can be accessed through offset(i) which simply provides the value of the i'th neighbor. To get that neighbors index you can use it.offset_index(i). For the center use it.center()/it.center_index(). [] may also be used in place of offset. To get the number of neighbors in the kernel use ksize(), so it.offset(0), it.offset(1), ..., it.offset(ksize()-1) are valid calls
 Cnpl::MatMap
 Cnpl::MatrixP
 Cnpl::Matrix< D1, D2 >
 Cnpl::MatrixReorgReorganizes input images into tall and wide matrices (matrices that span the total rows and cols, respectively)
 Cnpl::MemMapMemory map class. The basic gyst is that this works like a malloc except that data may be initialized by file contents or left empty. This is useful for matrix manipulation where files need to be opened and closed a good bit
 Cnpl::NDConstView< T >This is a basic accessor class, which allows for accessing array data in the type specified by the template
 Cnpl::LanczosInterpNDView< T >The purpose of this class is to view an image as a continuous 3D+vector dimension image rather than a 4+D image. Therefore all dimensions above the third are cast as a vector and interpolation is only performed between 3D points, with the 4th dimension assumed to be non-spatial. The would be applicable if the upper dimensions are of a different type than the first 3
 Cnpl::LinInterpNDView< T >The purpose of this class is to view an image as a continuous ND image and to sample at a continuous ND-position within
 Cnpl::NNInterpNDView< T >General purpose Nearest-Neighbor interpolator
 Cnpl::Vector3DConstView< T >The purpose of this class is to view an image as a 3D+vector dimension image rather than a 4+D image. Therefore all dimensions above the third are cast as a vector. If there is demand I may create a matrixx verion as well
 Cnpl::LanczosInterp3DView< T >The purpose of this class is to view an image as a continuous 3D+vector dimension image rather than a 4+D image. Therefore all dimensions above the third are cast as a vector and interpolation is only performed between 3D points, with the 4th dimension assumed to be non-spatial. The would be applicable if the upper dimensions are of a different type than the first 3
 Cnpl::LinInterp3DView< T >The purpose of this class is to view an image as a continuous 3D+vector dimension image rather than a 4+D image. Therefore all dimensions above the third are cast as a vector and interpolation is only performed between 3D points, with the 4th dimension assumed to be non-spatial. The would be applicable if the upper dimensions are of a different type than the first 3
 Cnpl::NNInterp3DView< T >The purpose of this class is to view an image as a continuous 3D+vector dimension image rather than a 4+D image. Therefore all dimensions above the third are cast as a vector and interpolation is only performed between 3D points, with the 4th dimension assumed to be non-spatial. The would be applicable if the upper dimensions are of a different type than the first 3
 Cnpl::NDConstView< double >
 Cnpl::Vector3DConstView< double >
 Cnpl::LinInterp3DView< double >
 Cnpl::NDView< T >This is a basic accessor class, which allows for accessing array data in the type specified by the template
 Cnpl::BSplineView< T >This is a specialized viewer for computing the value of a cubic B-Spline interpolation from the parameters. Thus the input to the constructor or setArray must be a parameter image
 Cnpl::Pixel3DView< T >The purpose of this class is to view an image as a 3D image rather than a ND image. Therefore all dimensions above the third will be ignored and index 0 will be used
 Cnpl::Vector3DView< T >The purpose of this class is to view an image as a 3D+vector dimension image rather than a 4+D image. Therefore all dimensions above the third are cast as a vector. If there is demand I may create a matrixx verion as well
 Cnpl::Optimizer
 Cnpl::BFGSOpt
 Cnpl::GradientOpt
 Cnpl::LBFGSOptLimited-Memory Broyden–Fletcher–Goldfarb–Shanno Algorithm based on "A Limited Memory Algorithm for Bound Constrained Optimization" Richard H. Byrd, Peihuang Lu, Jorge Nocedal, and Ciyou Zhu http://dx.doi.org/10.1137/0916069
 Cnpl::PlotterClass for creating basic plots of arrays or functions. An example might be:
 Cnpl::ProbDistCorrInfoCompThe distortion correction MI Computer is used to compute the mutual information and gradient of mutual information between two images using nonrigid, unidirectional, B-spline transform. In this variant the moving image should be a probability map
 Cnpl::RegrResult
 Cnpl::rgb_t
 Cnpl::rgba_t
 Cnpl::Rigid3DTransStruct for holding information about a rigid transform. Note that rotation R = Rx*Ry*Rz, where Rx, Ry, and Rz are the rotations about x, y and z aaxes, and the angles are stored (in radians) in the rotation member
 Cnpl::RigidCorrCompThe Rigid Corr Computer is used to compute the correlation and gradient of correlation between two images. As the name implies, it is designed for 6 parameter rigid transforms
 Cnpl::RigidInfoCompThe Rigid MI Computer is used to compute the mutual information and gradient of mutual information between two images. As the name implies, it is designed for 6 parameter rigid transforms
 Cnpl::SlicerThis class is used to step through an ND array in order of dimensions. Order may be any size from 0 to the number of dimensions. The first member of order will be the fastest moving, and the last will be the slowest. Any not dimensions not included in the order vector will be slower than the last member of order
 Cnpl::NDConstIter< double >
 Cnpl::NDConstIter< T >Constant iterator for NDArray. Typical usage calls for NDConstIter it(array); it++; *it
 Cnpl::NDIter< T >This class is used to iterate through an N-Dimensional array
 Cnpl::Vector3DConstIter< T >This class is used to iterate through an 3D array, where each point then has has multiple higher dimensional variable. This is analogous to Vector3DView, where even if there are multiple higher dimensions they are all alligned into a single vector at each 3D point. This makes them easier to than simple iteration in N-dimensions. This is the constant version
 Cnpl::Vector3DIter< T >This class is used to iterate through an 3D array, where each point then has has multiple higher dimensional variable. This is analogous to Vector3DView, where even if there are multiple higher dimensions they are all alligned into a single vector at each 3D point. This makes them easier to than simple iteration in N-dimensions
 Cnpl::StudentsTStudent's T-distribution. A cache of the Probability Density Function and cumulative density function is created using the analytical PDF
 Cnpl::Plotter::StyleT
 CTrkHead
 Cnpl::WolfeImplementation of Armijo approximate line search algorithm