Xmipp
v3.23.11-Nereus
|
#include <multidim_array_base.h>
Public Member Functions | |
virtual | ~MultidimArrayBase () |
virtual void | clear ()=0 |
virtual void | selfReverseX ()=0 |
virtual void | selfReverseY ()=0 |
virtual void | selfReverseZ ()=0 |
virtual double | computeAvg () const =0 |
virtual void | computeDoubleMinMaxRange (double &minval, double &maxval, size_t offset, size_t size) const =0 |
virtual void | maxIndex (size_t &lmax, int &kmax, int &imax, int &jmax) const =0 |
virtual void | coreAllocateReuse ()=0 |
virtual void | coreDeallocate ()=0 |
virtual void * | getArrayPointer () const =0 |
int | getDim () const |
void | setMmap (bool mmap) |
void | maxIndex (ArrayCoord &pos) const |
void | maxIndex (int &kmax, int &imax, int &jmax) const |
void | maxIndex (int &imax, int &jmax) const |
void | maxIndex (int &jmax) const |
void | printShape (std::ostream &out=std::cout) const |
Size | |
void | setNdim (int Ndim) |
void | setZdim (int Zdim) |
void | setYdim (int Ydim) |
void | setXdim (int Xdim) |
void | setDimensions (int Xdim, int Ydim, int Zdim, size_t Ndim) |
void | setDimensions (ArrayDim &newDim) |
void | getDimensions (size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const |
void | getDimensions (ArrayDim &idim) const |
ArrayDim | getDimensions () const |
void | getDimensions (int *size) const |
size_t | getSize () const |
virtual void | resize (size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim, bool copy=true)=0 |
void | resize (size_t Zdim, size_t Ydim, size_t Xdim) |
void | resize (size_t Ydim, size_t Xdim) |
void | resize (size_t Xdim) |
void | resize (ArrayDim &adim, bool copy=true) |
void | resizeNoCopy (size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim) |
void | resizeNoCopy (size_t Zdim, size_t Ydim, size_t Xdim) |
void | resizeNoCopy (size_t Ydim, size_t Xdim) |
void | resizeNoCopy (size_t Xdim) |
size_t | rowNumber () const |
size_t | colNumber () const |
void | copyShape (const MultidimArrayBase &m) |
bool | sameShape (const MultidimArrayBase &op) const |
void | setXmippOrigin () |
void | resetOrigin () |
void | moveOriginTo (int k, int i, int j) |
void | moveOriginTo (int i, int j) |
int | startingZ () const |
int | finishingZ () const |
int | startingY () const |
int | finishingY () const |
int | startingX () const |
int | finishingX () const |
bool | isCorner (const Matrix1D< double > &v) const |
bool | outside (int k, int i, int j) const |
bool | outside (int i, int j) const |
bool | outside (int i) const |
bool | outside (const Matrix1D< double > &r) const |
Public Attributes | |
bool | destroyData |
size_t | ndim |
size_t | zdim |
size_t | ydim |
size_t | xdim |
size_t | yxdim |
size_t | zyxdim |
size_t | nzyxdim |
int | zinit |
int | yinit |
int | xinit |
bool | mmapOn |
FILE * | mFd |
size_t | nzyxdimAlloc |
Template class for Xmipp arrays. This class provides physical and logical access.
Definition at line 615 of file multidim_array_base.h.
|
inlinevirtual |
Definition at line 658 of file multidim_array_base.h.
|
pure virtual |
Implemented in Histogram2D, MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, MultidimArray< unsigned short int >, and Histogram1D.
|
inline |
Returns X dimension.
Definition at line 832 of file multidim_array_base.h.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
void MultidimArrayBase::copyShape | ( | const MultidimArrayBase & | m | ) |
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
inline |
Returns the multidimArray dimension.
Definition at line 1000 of file multidim_array_base.h.
void MultidimArrayBase::getDimensions | ( | size_t & | Xdim, |
size_t & | Ydim, | ||
size_t & | Zdim, | ||
size_t & | Ndim | ||
) | const |
Get the array dimensions.
Returns the multidimArray N,Z, Y and X dimensions.
Definition at line 114 of file multidim_array_base.cpp.
void MultidimArrayBase::getDimensions | ( | ArrayDim & | idim | ) | const |
Definition at line 122 of file multidim_array_base.cpp.
ArrayDim MultidimArrayBase::getDimensions | ( | ) | const |
Definition at line 133 of file multidim_array_base.cpp.
void MultidimArrayBase::getDimensions | ( | int * | size | ) | const |
Get dimensions.
Returns the size of the object in a 4D vector. If the object is a matrix or a vector, then the higher order dimensions will be set to 1, ie, (Xdim, 1, 1) or (Xdim, Ydim, 1).
This function is not ported to Python.
Definition at line 155 of file multidim_array_base.cpp.
size_t MultidimArrayBase::getSize | ( | ) | const |
Returns the total size of the multidimArray
Definition at line 169 of file multidim_array_base.cpp.
bool MultidimArrayBase::isCorner | ( | const Matrix1D< double > & | v | ) | const |
IsCorner (in 2D or 3D matrix)
TRUE if the logical index given is a corner of the definition region of this array.
IsCorner (in 2D or 3D matrix)
TRUE if the logical index given is a corner of the definition region of this array.
Definition at line 230 of file multidim_array_base.cpp.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
inline |
Definition at line 1024 of file multidim_array_base.h.
|
inline |
3D Indices for the maximum element.
This function just calls to the 4D function
Definition at line 1033 of file multidim_array_base.h.
|
inline |
2D Indices for the maximum element.
This function just calls to the 4D function
Definition at line 1043 of file multidim_array_base.h.
|
inline |
1D Indices for the maximum element.
This function just calls to the 4D function
Definition at line 1054 of file multidim_array_base.h.
void MultidimArrayBase::moveOriginTo | ( | int | k, |
int | i, | ||
int | j | ||
) |
Move origin to.
This function adjust logical indexes such that the Xmipp origin of the array moves to the specified position. For instance, an array whose x indexes go from -1 to 1, if we move the origin to 4, then the x indexes go from 3 to 5. This is very useful for convolution operations where you only need to move the logical starting of the array.
Definition at line 212 of file multidim_array_base.cpp.
void MultidimArrayBase::moveOriginTo | ( | int | i, |
int | j | ||
) |
Move origin to.
This function adjust logical indexes such that the Xmipp origin of the array moves to the specified position. For instance, an array whose x indexes go from -1 to 1, if we move the origin to 4, then the x indexes go from 3 to 5. This is very useful for convolution operations where you only need to move the logical starting of the array.
Definition at line 219 of file multidim_array_base.cpp.
|
inline |
Outside for 3D matrices
TRUE if the logical index given is outside the definition region of this array.
Definition at line 956 of file multidim_array_base.h.
|
inline |
Outside for 2D matrices
TRUE if the logical index given is outside the definition region of this array.
Definition at line 968 of file multidim_array_base.h.
|
inline |
Outside for 1D matrices
TRUE if the logical index given is outside the definition region of this array.
Definition at line 979 of file multidim_array_base.h.
bool MultidimArrayBase::outside | ( | const Matrix1D< double > & | r | ) | const |
Outside
TRUE if the logical index given is outside the definition region of this array.
Definition at line 259 of file multidim_array_base.cpp.
void MultidimArrayBase::printShape | ( | std::ostream & | out = std::cout | ) | const |
Print shape of multidimensional array.
This function shows the size, starting and finishing indexes of the given array. No end of line is printed neither at the beginning nor the end.
Definition at line 284 of file multidim_array_base.cpp.
void MultidimArrayBase::resetOrigin | ( | ) |
Reset logical origin to zeros.
This function adjust the starting points in the array such that upper left corner begins in zero.
Definition at line 207 of file multidim_array_base.cpp.
|
pure virtual |
Resize to a given size
This function resize the actual array to the given size. The origin is not modified. If the actual array is larger than the pattern then the values outside the new size are lost, if it is smaller then 0's are added. An exception is thrown if there is no memory.
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
inline |
Resize a single 3D image
This function assumes n is 1
Definition at line 761 of file multidim_array_base.h.
|
inline |
Resize a single 2D image
This function assumes n and z are 1
Definition at line 773 of file multidim_array_base.h.
|
inline |
Resize a single 1D image
This function assumes n and z and y are 1
Definition at line 785 of file multidim_array_base.h.
void MultidimArrayBase::resize | ( | ArrayDim & | adim, |
bool | copy = true |
||
) |
Resize an image using the dimensions from an ArrayDim structure.
Resize the multidimarray from an ArrayDim struct
Definition at line 177 of file multidim_array_base.cpp.
|
inline |
Resize with no copy a single 3D image
Definition at line 797 of file multidim_array_base.h.
|
inline |
Resize with no copy a single 3D image
Definition at line 804 of file multidim_array_base.h.
|
inline |
Resize a single 2D image with no copy
Definition at line 811 of file multidim_array_base.h.
|
inline |
Resize a single 1D image with no copy
Definition at line 818 of file multidim_array_base.h.
|
inline |
Returns Y dimension.
Definition at line 825 of file multidim_array_base.h.
|
inline |
Same shape.
Returns true if this object has got the same shape (origin and size) than the argument
Definition at line 847 of file multidim_array_base.h.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
|
pure virtual |
Implemented in MultidimArray< T >, MultidimArray< long >, MultidimArray< double >, MultidimArray< float >, MultidimArray< int >, MultidimArray< unsigned int >, MultidimArray< short int >, MultidimArray< size_t >, MultidimArray< unsigned char >, MultidimArray< std::complex< double > >, MultidimArray< char >, MultidimArray< bool >, and MultidimArray< unsigned short int >.
void MultidimArrayBase::setDimensions | ( | int | Xdim, |
int | Ydim, | ||
int | Zdim, | ||
size_t | Ndim | ||
) |
Sets new 4D dimensions. Note that the dataArray is NOT resized. This should be done separately with coreAllocate()
Definition at line 78 of file multidim_array_base.cpp.
void MultidimArrayBase::setDimensions | ( | ArrayDim & | newDim | ) |
Sets new 4D dimensions. Note that the dataArray is NOT resized. This should be done separately with coreAllocate()
Definition at line 94 of file multidim_array_base.cpp.
|
inline |
Sets mmap.
Sets on/off mmap flag to allocate memory in a file.
Definition at line 1018 of file multidim_array_base.h.
void MultidimArrayBase::setNdim | ( | int | Ndim | ) |
Sets new N dimension.
Note that the dataArray is NOT resized. This should be done separately with coreAllocate()
Definition at line 31 of file multidim_array_base.cpp.
void MultidimArrayBase::setXdim | ( | int | Xdim | ) |
Sets new X dimension.
Note that the dataArray is NOT resized. This should be done separately with coreAllocate()
Definition at line 67 of file multidim_array_base.cpp.
void MultidimArrayBase::setXmippOrigin | ( | ) |
Set logical origin in Xmipp fashion.
This function adjust the starting points in the array such that the center of the array is defined in the Xmipp fashion.
Definition at line 200 of file multidim_array_base.cpp.
void MultidimArrayBase::setYdim | ( | int | Ydim | ) |
Sets new Y dimension.
Note that the dataArray is NOT resized. This should be done separately with coreAllocate()
Definition at line 54 of file multidim_array_base.cpp.
void MultidimArrayBase::setZdim | ( | int | Zdim | ) |
Sets new Z dimension.
Note that the dataArray is NOT resized. This should be done separately with coreAllocate()
Definition at line 42 of file multidim_array_base.cpp.
|
inline |
Returns the first valid logical X index.
Definition at line 932 of file multidim_array_base.h.
|
inline |
Returns the first valid logical Y index.
Definition at line 918 of file multidim_array_base.h.
|
inline |
Returns the first valid logical Z index.
Definition at line 904 of file multidim_array_base.h.
bool MultidimArrayBase::destroyData |
Definition at line 619 of file multidim_array_base.h.
FILE* MultidimArrayBase::mFd |
Definition at line 654 of file multidim_array_base.h.
bool MultidimArrayBase::mmapOn |
Definition at line 652 of file multidim_array_base.h.
size_t MultidimArrayBase::ndim |
Definition at line 622 of file multidim_array_base.h.
size_t MultidimArrayBase::nzyxdim |
Definition at line 640 of file multidim_array_base.h.
size_t MultidimArrayBase::nzyxdimAlloc |
Definition at line 656 of file multidim_array_base.h.
size_t MultidimArrayBase::xdim |
Definition at line 631 of file multidim_array_base.h.
int MultidimArrayBase::xinit |
Definition at line 649 of file multidim_array_base.h.
size_t MultidimArrayBase::ydim |
Definition at line 628 of file multidim_array_base.h.
int MultidimArrayBase::yinit |
Definition at line 646 of file multidim_array_base.h.
size_t MultidimArrayBase::yxdim |
Definition at line 634 of file multidim_array_base.h.
size_t MultidimArrayBase::zdim |
Definition at line 625 of file multidim_array_base.h.
int MultidimArrayBase::zinit |
Definition at line 643 of file multidim_array_base.h.
size_t MultidimArrayBase::zyxdim |
Definition at line 637 of file multidim_array_base.h.