casacore
|
Non-templated base class for templated Array class. More...
#include <ArrayBase.h>
Public Member Functions | |
ArrayBase () | |
ArrayBase (const IPosition &shape) | |
Create an array of the given shape, i.e. More... | |
ArrayBase (const ArrayBase &other) | |
Copy constructor. More... | |
ArrayBase & | operator= (const ArrayBase &) |
Assignment. More... | |
virtual | ~ArrayBase () |
Destructor. More... | |
uInt | ndim () const |
The dimensionality of this array. More... | |
size_t | nelements () const |
How many elements does this array have? Product of all axis lengths. More... | |
size_t | size () const |
Bool | empty () const |
Is the array empty (i.e. More... | |
Bool | contiguousStorage () const |
Are the array data contiguous? If they are not contiguous, getStorage (see below) needs to make a copy. More... | |
virtual Bool | ok () const |
Check to see if the Array is consistent. More... | |
const IPosition & | shape () const |
The length of each axis. More... | |
IPosition | endPosition () const |
A convenience function: endPosition(i) = shape(i) - 1; i.e. More... | |
const IPosition & | steps () const |
Return steps to be made if stepping one element in a dimension. More... | |
virtual CountedPtr< ArrayBase > | makeArray () const |
Make an empty array of the same type. More... | |
virtual void | resize (const IPosition &newShape, Bool copyValues=False) |
Resize the array and optionally copy the values. More... | |
virtual void | resize (const IPosition &newShape, Bool copyValues, ArrayInitPolicy policy) |
Resize the array and optionally copy the values. More... | |
virtual CountedPtr< ArrayPositionIterator > | makeIterator (uInt byDim) const |
Create an ArrayIterator object of the correct type. More... | |
virtual CountedPtr< ArrayBase > | getSection (const Slicer &) const |
Get a reference to a section of an array. More... | |
virtual void | assignBase (const ArrayBase &source, Bool checkType=True) |
Assign the source array to this array. More... | |
virtual void * | getVStorage (Bool &deleteIt) |
The following functions behave the same as the corresponding getStorage functions in the derived templated Array class. More... | |
virtual const void * | getVStorage (Bool &deleteIt) const |
virtual void | putVStorage (void *&storage, Bool deleteAndCopy) |
virtual void | freeVStorage (const void *&storage, Bool deleteIt) const |
void | validateConformance (const ArrayBase &) const |
Various helper functions. More... | |
void | validateIndex (const IPosition &) const |
void | validateIndex (uInt index) const |
void | validateIndex (uInt index1, uInt index2) const |
void | validateIndex (uInt index1, uInt index2, uInt index3) const |
Static Public Member Functions | |
static uInt | arrayVersion () |
Array version for major change (used by ArrayIO). More... | |
Protected Member Functions | |
void | baseCopy (const ArrayBase &that) |
Bool | reformOrResize (const IPosition &newShape, Bool resizeIfNeeded, uInt nReferences, Int64 nElementsAllocated, Bool copyDataIfNeeded, uInt resizePercentage) |
Either reforms the array if size permits or resizes it to the new shape. More... | |
Bool | isStorageContiguous () const |
Determine if the storage of a subset is contiguous. More... | |
void | checkVectorShape () |
Check if the shape of a vector is correct. More... | |
void | checkMatrixShape () |
Check if the shape of a matrix is correct. More... | |
void | checkCubeShape () |
Check if the shape of a cube is correct. More... | |
void | baseReform (ArrayBase &tmp, const IPosition &shape, Bool strict=True) const |
Reform the array to a shape with the same nr of elements. More... | |
void | baseNonDegenerate (const ArrayBase &other, const IPosition &ignoreAxes) |
Remove the degenerate axes from the Array object. More... | |
void | baseAddDegenerate (ArrayBase &, uInt numAxes) |
These member functions return an Array reference with the specified number of extra axes, all of length one, appended to the end of the Array. More... | |
size_t | makeSubset (ArrayBase &out, const IPosition &b, const IPosition &e, const IPosition &i) |
Make a subset of an array. More... | |
size_t | makeDiagonal (uInt firstAxis, Int64 diag) |
Set the length and stride such that the diagonal of the matrices defined by two consecutive axes is formed. More... | |
Bool | conform2 (const ArrayBase &other) const |
Are the shapes identical? More... | |
void | baseMakeSteps () |
Make the indexing step sizes. More... | |
void | throwNdimVector () |
Throw expection if vector dimensionality is incorrect. More... | |
Bool | copyVectorHelper (const ArrayBase &other) |
Helper function for templated Vector class. More... | |
Protected Attributes | |
size_t | nels_p |
Number of elements in the array. More... | |
uInt | ndimen_p |
Dimensionality of the array. More... | |
Bool | contiguous_p |
Are the data contiguous? More... | |
IPosition | length_p |
Used to hold the shape, increment into the underlying storage and originalLength of the array. More... | |
IPosition | inc_p |
IPosition | originalLength_p |
IPosition | steps_p |
Used to hold the step to next element in each dimension. More... | |
Non-templated base class for templated Array class.
ArrayBase is only used to factor out common code from the templated Array class.
Definition at line 74 of file ArrayBase.h.
casacore::ArrayBase::ArrayBase | ( | ) |
|
explicit |
Create an array of the given shape, i.e.
after construction array.ndim() == shape.nelements() and array.shape() == shape. The origin of the Array is zero.
casacore::ArrayBase::ArrayBase | ( | const ArrayBase & | other | ) |
Copy constructor.
|
virtual |
Destructor.
|
inlinestatic |
Array version for major change (used by ArrayIO).
enum did not work properly with cfront 3.0.1), so replaced by a static inline function. Users won't normally use this.
Definition at line 138 of file ArrayBase.h.
References assignBase(), casacore::False, freeVStorage(), getSection(), getVStorage(), makeArray(), makeIterator(), putVStorage(), resize(), and casacore::True.
|
virtual |
Assign the source array to this array.
If checkType==True
, it is checked if the underlying template types match. Otherwise, it is only checked in debug mode (for performance).
The default implementation in ArrayBase throws an exception.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
These member functions return an Array reference with the specified number of extra axes, all of length one, appended to the end of the Array.
Note that the reform
function can also be used to add extra axes.
Referenced by baseCopy().
|
inlineprotected |
Definition at line 182 of file ArrayBase.h.
References baseAddDegenerate(), baseNonDegenerate(), baseReform(), checkCubeShape(), checkMatrixShape(), checkVectorShape(), casacore::C::e, isStorageContiguous(), makeDiagonal(), makeSubset(), operator=(), reformOrResize(), and casacore::True.
|
protected |
Make the indexing step sizes.
Referenced by conform2(), and casacore::Array< casacore::String >::makeSteps().
|
protected |
Remove the degenerate axes from the Array object.
This is the implementation of the nonDegenerate functions. It has a different name to be able to make it virtual without having the "hide virtual function" message when compiling derived classes.
Referenced by baseCopy().
|
protected |
Reform the array to a shape with the same nr of elements.
If nonStrict then caller assumes responsibility for not overrunning storage (avoid or use with extreme care).
Referenced by baseCopy().
|
protected |
|
protected |
|
protected |
Check if the shape of a vector is correct.
If possible, adjust if not. It is possible if at most one axis has length > 1.
Referenced by baseCopy().
Are the shapes identical?
Definition at line 239 of file ArrayBase.h.
References baseMakeSteps(), copyVectorHelper(), casacore::IPosition::isEqual(), length_p, throwNdimVector(), validateConformance(), and validateIndex().
Referenced by casacore::Array< casacore::String >::conform().
|
inline |
Are the array data contiguous? If they are not contiguous, getStorage
(see below) needs to make a copy.
Definition at line 112 of file ArrayBase.h.
References contiguous_p, and ok().
Referenced by casacore::ArrayMath_global_functions_Array_mathematical_operations::arrayContTransform(), casacore::ArrayMath_global_functions_Array_mathematical_operations::arrayTransformInPlace(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::avdev(), casacore::MArray< casacore::String >::flatten(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::max(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::min(), casacore::MArrayLogical_global_functions_MArray_logical_operations::nfalse(), casacore::MArrayLogical_global_functions_MArray_logical_operations::ntrue(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::product(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::rms(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::sum(), casacore::MArrayMath_global_functions_MArray_mathematical_operations::sumsqr(), and casacore::MArrayMath_global_functions_MArray_mathematical_operations::variance().
Helper function for templated Vector class.
It returns if this and other are conformant.
Referenced by conform2().
|
inline |
Is the array empty (i.e.
no elements)?
Definition at line 106 of file ArrayBase.h.
References nels_p.
Referenced by casacore::MArrayBase::hasMask().
IPosition casacore::ArrayBase::endPosition | ( | ) | const |
|
virtual |
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
|
virtual |
Get a reference to a section of an array.
This is the same as Array<T>::operator(), but without having to know the exact template type.
The default implementation in ArrayBase throws an exception.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
|
virtual |
The following functions behave the same as the corresponding getStorage functions in the derived templated Array class.
They handle a pointer to a contiguous block of array data. If the array is not contiguous, a copy is used to make it contiguous.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
|
virtual |
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
|
protected |
Determine if the storage of a subset is contiguous.
Referenced by baseCopy().
|
virtual |
Make an empty array of the same type.
The default implementation in ArrayBase throws an exception.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
Set the length and stride such that the diagonal of the matrices defined by two consecutive axes is formed.
diag
== 0 indicates the main diagonal, >0 above, <0 below. It returns the offset of the diagonal in the (original) array.
Referenced by baseCopy().
|
virtual |
Create an ArrayIterator object of the correct type.
This is implemented in the derived Array classes.
The default implementation in ArrayBase throws an exception.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
|
protected |
Make a subset of an array.
It checks if start,end,incr are within the array limits. It returns the offset of the subset in the (original) array.
Referenced by baseCopy().
|
inline |
The dimensionality of this array.
Definition at line 94 of file ArrayBase.h.
References ndimen_p.
Referenced by casacore::TableProxy::record2Array(), and casacore::Array< casacore::String >::setEndIter().
|
inline |
How many elements does this array have? Product of all axis lengths.
Definition at line 99 of file ArrayBase.h.
References nels_p.
Referenced by casacore::areEQ(), casacore::TabVecRep< T >::conform(), casacore::MSSelection::getDDIDList(), casacore::MSSelection::getSPWDDIDList(), casacore::MSSelection::getStateObsModeList(), casacore::ColumnsIndexArray::isUnique(), casacore::ColumnsIndex::isUnique(), casacore::ArrayMath_global_functions_Array_mathematical_operations::madfm(), casacore::ArrayMath_global_functions_Array_mathematical_operations::madfmInPlace(), casacore::ArrayMath_global_functions_Array_mathematical_operations::median(), casacore::ArrayMath_global_functions_Array_mathematical_operations::medianInPlace(), casacore::LCSlicer::ndim(), casacore::ArrayLogical_global_functions_Array_logical_operations::ntrue(), and casacore::Vector< ArgType >::resize().
|
virtual |
Check to see if the Array is consistent.
This is about the same thing as checking for invariants. If AIPS_DEBUG is defined, this is invoked after construction and on entry to most member functions.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, casacore::Array< casacore::String >, casacore::Cube< T >, casacore::Cube< Double >, casacore::Cube< casacore::RigidVector< Double, 2 > >, casacore::Matrix< T >, casacore::Matrix< casacore::SquareMatrix< Complex, 2 > >, casacore::Matrix< Float >, casacore::Matrix< casacore::GaussianBeam >, casacore::Matrix< Double >, casacore::Matrix< Int >, casacore::Matrix< FType >, casacore::Matrix< Bool >, casacore::Matrix< Complex >, casacore::Vector< T >, casacore::Vector< typename casacore::FunctionTraits< T >::DiffType >, casacore::Vector< casacore::MEpoch >, casacore::Vector< casacore::SquareMatrix< Complex, 2 > >, casacore::Vector< casacore::MPosition >, casacore::Vector< casacore::Vector< typename casacore::LSQTraits< typename casacore::FunctionTraits< Double >::BaseType >::base > >, casacore::Vector< typename casacore::FunctionTraits< DComplex >::DiffType >, casacore::Vector< double >, casacore::Vector< Float >, casacore::Vector< casacore::AutoDiff< Double > >, casacore::Vector< typename casacore::FunctionTraits< Double >::DiffType >, casacore::Vector< casacore::Quantum >, casacore::Vector< Double >, casacore::Vector< casacore::Vector< Range > >, casacore::Vector< AutoDiff< T > >, casacore::Vector< casacore::Vector< typename casacore::LSQTraits< typename casacore::FunctionTraits< DComplex >::BaseType >::base > >, casacore::Vector< typename casacore::FunctionTraits< DComplex >::ArgType >, casacore::Vector< casacore::Unit >, casacore::Vector< Int >, casacore::Vector< Int64 >, casacore::Vector< casacore::MDirection >, casacore::Vector< typename casacore::FunctionTraits< Double >::ArgType >, casacore::Vector< casacore::MFrequency >, casacore::Vector< casacore::RORecordFieldPtr< Double > >, casacore::Vector< AutoDiffA< T > >, casacore::Vector< Type >, casacore::Vector< casacore::Vector< Int > >, casacore::Vector< typename casacore::FunctionTraits< DComplex >::BaseType >, casacore::Vector< FType >, casacore::Vector< Bool >, casacore::Vector< typename casacore::FunctionTraits< T >::BaseType >, casacore::Vector< typename casacore::FunctionTraits< T >::ArgType >, casacore::Vector< typename casacore::FunctionTraits< Double >::BaseType >, casacore::Vector< casacore::Slicer *>, casacore::Vector< casacore::MeasComet *>, casacore::Vector< casacore::Vector< typename casacore::LSQTraits< typename casacore::FunctionTraits< T >::BaseType >::base > >, casacore::Vector< casacore::Quantum< Double > >, casacore::Vector< uInt >, casacore::Vector< Domain >, casacore::Vector< casacore::String >, and casacore::Vector< ArgType >.
Referenced by contiguousStorage().
Assignment.
Referenced by baseCopy().
|
virtual |
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
|
protected |
Either reforms the array if size permits or resizes it to the new shape.
Implementation of Array<T>::reformOrResize (slightly different signature).
Referenced by baseCopy().
|
virtual |
Resize the array and optionally copy the values.
The default implementation in ArrayBase throws an exception.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, and casacore::Array< casacore::String >.
Referenced by arrayVersion().
|
virtual |
Resize the array and optionally copy the values.
The default implementation in ArrayBase throws an exception.
Reimplemented in casacore::Array< T >, casacore::Array< casacore::MPosition >, casacore::Array< Float >, casacore::Array< recordType >, casacore::Array< Double >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Int >, casacore::Array< casacore::MDirection >, casacore::Array< Int64 >, casacore::Array< DComplex >, casacore::Array< casacore::MVTime >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< Complex >, casacore::Array< typename casacore::NumericTraits< FType >::ConjugateType >, casacore::Array< casacore::String >, casacore::Vector< T >, casacore::Vector< typename casacore::FunctionTraits< T >::DiffType >, casacore::Vector< casacore::MEpoch >, casacore::Vector< casacore::SquareMatrix< Complex, 2 > >, casacore::Vector< casacore::MPosition >, casacore::Vector< casacore::Vector< typename casacore::LSQTraits< typename casacore::FunctionTraits< Double >::BaseType >::base > >, casacore::Vector< typename casacore::FunctionTraits< DComplex >::DiffType >, casacore::Vector< double >, casacore::Vector< Float >, casacore::Vector< casacore::AutoDiff< Double > >, casacore::Vector< typename casacore::FunctionTraits< Double >::DiffType >, casacore::Vector< casacore::Quantum >, casacore::Vector< Double >, casacore::Vector< casacore::Vector< Range > >, casacore::Vector< AutoDiff< T > >, casacore::Vector< casacore::Vector< typename casacore::LSQTraits< typename casacore::FunctionTraits< DComplex >::BaseType >::base > >, casacore::Vector< typename casacore::FunctionTraits< DComplex >::ArgType >, casacore::Vector< casacore::Unit >, casacore::Vector< Int >, casacore::Vector< Int64 >, casacore::Vector< casacore::MDirection >, casacore::Vector< typename casacore::FunctionTraits< Double >::ArgType >, casacore::Vector< casacore::MFrequency >, casacore::Vector< casacore::RORecordFieldPtr< Double > >, casacore::Vector< AutoDiffA< T > >, casacore::Vector< Type >, casacore::Vector< casacore::Vector< Int > >, casacore::Vector< typename casacore::FunctionTraits< DComplex >::BaseType >, casacore::Vector< FType >, casacore::Vector< Bool >, casacore::Vector< typename casacore::FunctionTraits< T >::BaseType >, casacore::Vector< typename casacore::FunctionTraits< T >::ArgType >, casacore::Vector< typename casacore::FunctionTraits< Double >::BaseType >, casacore::Vector< casacore::Slicer *>, casacore::Vector< casacore::MeasComet *>, casacore::Vector< casacore::Vector< typename casacore::LSQTraits< typename casacore::FunctionTraits< T >::BaseType >::base > >, casacore::Vector< casacore::Quantum< Double > >, casacore::Vector< uInt >, casacore::Vector< Domain >, casacore::Vector< casacore::String >, casacore::Vector< ArgType >, casacore::Matrix< T >, casacore::Matrix< casacore::SquareMatrix< Complex, 2 > >, casacore::Matrix< Float >, casacore::Matrix< casacore::GaussianBeam >, casacore::Matrix< Double >, casacore::Matrix< Int >, casacore::Matrix< FType >, casacore::Matrix< Bool >, casacore::Matrix< Complex >, casacore::Cube< T >, casacore::Cube< Double >, and casacore::Cube< casacore::RigidVector< Double, 2 > >.
|
inline |
The length of each axis.
Definition at line 121 of file ArrayBase.h.
References endPosition(), and length_p.
Referenced by casacore::checkArrayShapes(), casacore::MArray< casacore::String >::fill(), casacore::TableProxy::record2Array(), and casacore::HDF5Record::writeArr().
|
inline |
Definition at line 101 of file ArrayBase.h.
References nels_p.
Referenced by casacore::CoordinateSystem::_downcase(), casacore::ArrayLogical_global_functions_Array_logical_operations::allSame(), casacore::MArray< casacore::String >::flatten(), and casacore::TableExprNodeSet::toArray().
|
inline |
Return steps to be made if stepping one element in a dimension.
This is the 'physical' step, thus it also works correctly for non-contiguous arrays. E.g. data() + steps(0)
gives the second element of the first axis.
Definition at line 132 of file ArrayBase.h.
References steps_p.
|
protected |
Throw expection if vector dimensionality is incorrect.
Referenced by conform2().
void casacore::ArrayBase::validateConformance | ( | const ArrayBase & | ) | const |
Various helper functions.
Referenced by conform2().
void casacore::ArrayBase::validateIndex | ( | const IPosition & | ) | const |
void casacore::ArrayBase::validateIndex | ( | uInt | index | ) | const |
|
protected |
Are the data contiguous?
Definition at line 268 of file ArrayBase.h.
Referenced by casacore::Cube< casacore::RigidVector< Double, 2 > >::at(), contiguousStorage(), casacore::Matrix< Complex >::operator()(), casacore::Vector< ArgType >::operator[](), and casacore::Array< casacore::String >::setEndIter().
|
protected |
Definition at line 271 of file ArrayBase.h.
Referenced by casacore::Vector< ArgType >::operator()(), and casacore::Vector< ArgType >::operator[]().
|
protected |
Used to hold the shape, increment into the underlying storage and originalLength of the array.
Definition at line 271 of file ArrayBase.h.
Referenced by conform2(), casacore::Cube< casacore::RigidVector< Double, 2 > >::ncolumn(), casacore::Matrix< Complex >::ncolumn(), casacore::Cube< casacore::RigidVector< Double, 2 > >::nplane(), casacore::Cube< casacore::RigidVector< Double, 2 > >::nrow(), casacore::Matrix< Complex >::nrow(), casacore::Array< casacore::String >::setEndIter(), shape(), casacore::Cube< casacore::RigidVector< Double, 2 > >::shape(), casacore::Matrix< Complex >::shape(), and casacore::Vector< ArgType >::shape().
|
protected |
|
protected |
Number of elements in the array.
Cached rather than computed.
Definition at line 264 of file ArrayBase.h.
Referenced by empty(), nelements(), casacore::Array< casacore::String >::setEndIter(), and size().
|
protected |
Definition at line 271 of file ArrayBase.h.
|
protected |
Used to hold the step to next element in each dimension.
Definition at line 273 of file ArrayBase.h.
Referenced by casacore::Array< casacore::String >::setEndIter(), and steps().