casacore::ArrayBase Class Reference

Non-templated base class for templated Array class. More...

#include <ArrayBase.h>

Inheritance diagram for casacore::ArrayBase:
casacore::Array< ArgType > casacore::Array< AutoDiff< T > > casacore::Array< AutoDiffA< T > > casacore::Array< Bool > casacore::Array< Domain > casacore::Array< String > casacore::Array< Type > casacore::Array< T >

List of all members.

Public Member Functions

 ArrayBase ()
 ArrayBase (const IPosition &shape)
 Create an array of the given shape, i.e.
 ArrayBase (const ArrayBase &other)
 Copy constructor.
ArrayBaseoperator= (const ArrayBase &)
 Assignment.
virtual ~ArrayBase ()
 Destructor.
uInt ndim () const
 The dimensionality of this array.
size_t nelements () const
 How many elements does this array have? Product of all axis lengths.
size_t size () const
Bool empty () const
 Is the array empty (i.e.
Bool contiguousStorage () const
 Are the array data contiguous? If they are not contiguous, getStorage (see below) needs to make a copy.
virtual Bool ok () const
 Check to see if the Array is consistent.
const IPositionshape () const
 The length of each axis.
IPosition endPosition () const
 A convenience function: endPosition(i) = shape(i) - 1; i.e.
const IPositionsteps () const
 Return steps to be made if stepping one element in a dimension.
virtual CountedPtr< ArrayBasemakeArray () const
 Make an empty array of the same type.
virtual void resize (const IPosition &newShape, Bool copyValues=False)
 Resize the array and optionally copy the values.
virtual void resize (const IPosition &newShape, Bool copyValues, ArrayInitPolicy policy)
 Resize the array and optionally copy the values.
virtual CountedPtr
< ArrayPositionIterator
makeIterator (uInt byDim) const
 Create an ArrayIterator object of the correct type.
virtual CountedPtr< ArrayBasegetSection (const Slicer &) const
 Get a reference to a section of an array.
virtual void assignBase (const ArrayBase &source, Bool checkType=True)
 Assign the source array to this array.
virtual void * getVStorage (Bool &deleteIt)
 The following functions behave the same as the corresponding getStorage functions in the derived templated Array class.
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.
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).

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.
Bool isStorageContiguous () const
 Determine if the storage of a subset is contiguous.
void checkVectorShape ()
 Check if the shape of a vector is correct.
void checkMatrixShape ()
 Check if the shape of a matrix is correct.
void checkCubeShape ()
 Check if the shape of a cube is correct.
void baseReform (ArrayBase &tmp, const IPosition &shape, Bool strict=True) const
 Reform the array to a shape with the same nr of elements.
void baseNonDegenerate (const ArrayBase &other, const IPosition &ignoreAxes)
 Remove the degenerate axes from the Array object.
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.
size_t makeSubset (ArrayBase &out, const IPosition &b, const IPosition &e, const IPosition &i)
 Make a subset of an array.
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.
Bool conform2 (const ArrayBase &other) const
 Are the shapes identical?
void baseMakeSteps ()
 Make the indexing step sizes.
void throwNdimVector ()
 Throw expection if vector dimensionality is incorrect.
Bool copyVectorHelper (const ArrayBase &other)
 Helper function for templated Vector class.

Protected Attributes

size_t nels_p
 Number of elements in the array.
uInt ndimen_p
 Dimensionality of the array.
Bool contiguous_p
 Are the data contiguous?
IPosition length_p
 Used to hold the shape, increment into the underlying storage and originalLength of the array.
IPosition inc_p
IPosition originalLength_p
IPosition steps_p
 Used to hold the step to next element in each dimension.

Detailed Description

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.


Constructor & Destructor Documentation

casacore::ArrayBase::ArrayBase (  ) 
casacore::ArrayBase::ArrayBase ( const IPosition shape  )  [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 casacore::ArrayBase::~ArrayBase (  )  [virtual]

Destructor.


Member Function Documentation

static uInt casacore::ArrayBase::arrayVersion (  )  [inline, static]

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.

virtual void casacore::ArrayBase::assignBase ( const ArrayBase source,
Bool  checkType = 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.

void casacore::ArrayBase::baseAddDegenerate ( ArrayBase ,
uInt  numAxes 
) [protected]

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.

void casacore::ArrayBase::baseCopy ( const ArrayBase that  )  [inline, protected]

Definition at line 182 of file ArrayBase.h.

References operator=().

void casacore::ArrayBase::baseMakeSteps (  )  [protected]

Make the indexing step sizes.

Referenced by casacore::Array< ArgType >::makeSteps().

void casacore::ArrayBase::baseNonDegenerate ( const ArrayBase other,
const IPosition ignoreAxes 
) [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.

void casacore::ArrayBase::baseReform ( ArrayBase tmp,
const IPosition shape,
Bool  strict = True 
) const [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).

void casacore::ArrayBase::checkCubeShape (  )  [protected]

Check if the shape of a cube is correct.

Adjust it if smaller.

void casacore::ArrayBase::checkMatrixShape (  )  [protected]

Check if the shape of a matrix is correct.

Adjust it if smaller.

void casacore::ArrayBase::checkVectorShape (  )  [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.

Bool casacore::ArrayBase::conform2 ( const ArrayBase other  )  const [inline, protected]

Are the shapes identical?

Definition at line 239 of file ArrayBase.h.

References casacore::IPosition::isEqual(), and length_p.

Referenced by casacore::Array< ArgType >::conform().

Bool casacore::ArrayBase::contiguousStorage (  )  const [inline]
Bool casacore::ArrayBase::copyVectorHelper ( const ArrayBase other  )  [protected]

Helper function for templated Vector class.

It returns if this and other are conformant.

Bool casacore::ArrayBase::empty (  )  const [inline]
IPosition casacore::ArrayBase::endPosition (  )  const

A convenience function: endPosition(i) = shape(i) - 1; i.e.

this is the IPosition of the last element of the Array.

virtual void casacore::ArrayBase::freeVStorage ( const void *&  storage,
Bool  deleteIt 
) const [virtual]

Reimplemented in casacore::Array< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

virtual CountedPtr<ArrayBase> casacore::ArrayBase::getSection ( const Slicer  )  const [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< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

virtual const void* casacore::ArrayBase::getVStorage ( Bool deleteIt  )  const [virtual]

Reimplemented in casacore::Array< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

virtual void* casacore::ArrayBase::getVStorage ( Bool deleteIt  )  [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< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

Bool casacore::ArrayBase::isStorageContiguous (  )  const [protected]

Determine if the storage of a subset is contiguous.

virtual CountedPtr<ArrayBase> casacore::ArrayBase::makeArray (  )  const [virtual]

Make an empty array of the same type.


The default implementation in ArrayBase throws an exception.

Reimplemented in casacore::Array< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

size_t casacore::ArrayBase::makeDiagonal ( uInt  firstAxis,
Int64  diag 
) [protected]

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.

virtual CountedPtr<ArrayPositionIterator> casacore::ArrayBase::makeIterator ( uInt  byDim  )  const [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< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

size_t casacore::ArrayBase::makeSubset ( ArrayBase out,
const IPosition b,
const IPosition e,
const IPosition i 
) [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.

uInt casacore::ArrayBase::ndim (  )  const [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< ArgType >::setEndIter().

size_t casacore::ArrayBase::nelements (  )  const [inline]
virtual Bool casacore::ArrayBase::ok (  )  const [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::Cube< T >, casacore::Matrix< T >, casacore::Vector< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, casacore::Array< ArgType >, casacore::Cube< RigidVector< Double, 2 > >, casacore::Cube< Double >, casacore::Matrix< GaussianBeam >, casacore::Matrix< Float >, casacore::Matrix< Double >, casacore::Matrix< Int >, casacore::Matrix< casacore::Double >, casacore::Matrix< FType >, casacore::Matrix< Bool >, casacore::Matrix< SquareMatrix< Complex, 2 > >, casacore::Matrix< Complex >, casacore::Vector< MeasComet * >, casacore::Vector< Slicer * >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Vector< Quantum< Double > >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Vector< double >, casacore::Vector< Float >, casacore::Vector< typename FunctionTraits< T >::BaseType >, casacore::Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Vector< typename FunctionTraits< Double >::DiffType >, casacore::Vector< Unit >, casacore::Vector< Double >, casacore::Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Vector< Vector< Int > >, casacore::Vector< MDirection >, casacore::Vector< MPosition >, casacore::Vector< typename FunctionTraits< DComplex >::ArgType >, casacore::Vector< typename FunctionTraits< Double >::ArgType >, casacore::Vector< AutoDiff< T > >, casacore::Vector< MFrequency >, casacore::Vector< typename FunctionTraits< Double >::BaseType >, casacore::Vector< Quantity >, casacore::Vector< String >, casacore::Vector< Range >, casacore::Vector< Int >, casacore::Vector< Int64 >, casacore::Vector< casacore::Double >, casacore::Vector< AutoDiffA< T > >, casacore::Vector< Type >, casacore::Vector< Vector< Range > >, casacore::Vector< RORecordFieldPtr< Double > >, casacore::Vector< FType >, casacore::Vector< Bool >, casacore::Vector< SquareMatrix< Complex, 2 > >, casacore::Vector< typename FunctionTraits< T >::DiffType >, casacore::Vector< AutoDiff< Double > >, casacore::Vector< typename FunctionTraits< T >::ArgType >, casacore::Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Vector< typename FunctionTraits< DComplex >::BaseType >, casacore::Vector< uInt >, casacore::Vector< Domain >, casacore::Vector< typename FunctionTraits< DComplex >::DiffType >, and casacore::Vector< ArgType >.

ArrayBase& casacore::ArrayBase::operator= ( const ArrayBase  ) 
virtual void casacore::ArrayBase::putVStorage ( void *&  storage,
Bool  deleteAndCopy 
) [virtual]

Reimplemented in casacore::Array< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

Bool casacore::ArrayBase::reformOrResize ( const IPosition newShape,
Bool  resizeIfNeeded,
uInt  nReferences,
Int64  nElementsAllocated,
Bool  copyDataIfNeeded,
uInt  resizePercentage 
) [protected]

Either reforms the array if size permits or resizes it to the new shape.

Implementation of Array<T>::reformOrResize (slightly different signature).

virtual void casacore::ArrayBase::resize ( const IPosition newShape,
Bool  copyValues,
ArrayInitPolicy  policy 
) [virtual]

Resize the array and optionally copy the values.


The default implementation in ArrayBase throws an exception.

Reimplemented in casacore::Array< T >, casacore::Cube< T >, casacore::Matrix< T >, casacore::Vector< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, casacore::Array< ArgType >, casacore::Cube< RigidVector< Double, 2 > >, casacore::Cube< Double >, casacore::Matrix< GaussianBeam >, casacore::Matrix< Float >, casacore::Matrix< Double >, casacore::Matrix< Int >, casacore::Matrix< casacore::Double >, casacore::Matrix< FType >, casacore::Matrix< Bool >, casacore::Matrix< SquareMatrix< Complex, 2 > >, casacore::Matrix< Complex >, casacore::Vector< MeasComet * >, casacore::Vector< Slicer * >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Vector< Quantum< Double > >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Vector< double >, casacore::Vector< Float >, casacore::Vector< typename FunctionTraits< T >::BaseType >, casacore::Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Vector< typename FunctionTraits< Double >::DiffType >, casacore::Vector< Unit >, casacore::Vector< Double >, casacore::Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Vector< Vector< Int > >, casacore::Vector< MDirection >, casacore::Vector< MPosition >, casacore::Vector< typename FunctionTraits< DComplex >::ArgType >, casacore::Vector< typename FunctionTraits< Double >::ArgType >, casacore::Vector< AutoDiff< T > >, casacore::Vector< MFrequency >, casacore::Vector< typename FunctionTraits< Double >::BaseType >, casacore::Vector< Quantity >, casacore::Vector< String >, casacore::Vector< Range >, casacore::Vector< Int >, casacore::Vector< Int64 >, casacore::Vector< casacore::Double >, casacore::Vector< AutoDiffA< T > >, casacore::Vector< Type >, casacore::Vector< Vector< Range > >, casacore::Vector< RORecordFieldPtr< Double > >, casacore::Vector< FType >, casacore::Vector< Bool >, casacore::Vector< SquareMatrix< Complex, 2 > >, casacore::Vector< typename FunctionTraits< T >::DiffType >, casacore::Vector< AutoDiff< Double > >, casacore::Vector< typename FunctionTraits< T >::ArgType >, casacore::Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Vector< typename FunctionTraits< DComplex >::BaseType >, casacore::Vector< uInt >, casacore::Vector< Domain >, casacore::Vector< typename FunctionTraits< DComplex >::DiffType >, and casacore::Vector< ArgType >.

virtual void casacore::ArrayBase::resize ( const IPosition newShape,
Bool  copyValues = False 
) [virtual]

Resize the array and optionally copy the values.


The default implementation in ArrayBase throws an exception.

Reimplemented in casacore::Array< T >, casacore::Array< MeasComet * >, casacore::Array< Slicer * >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Array< Quantum< Double > >, casacore::Array< GaussianBeam >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Array< double >, casacore::Array< Float >, casacore::Array< typename FunctionTraits< T >::BaseType >, casacore::Array< recordType >, casacore::Array< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Array< typename FunctionTraits< Double >::DiffType >, casacore::Array< RigidVector< Double, 2 > >, casacore::Array< Unit >, casacore::Array< Double >, casacore::Array< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Array< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Array< Vector< Int > >, casacore::Array< MDirection >, casacore::Array< MPosition >, casacore::Array< typename FunctionTraits< DComplex >::ArgType >, casacore::Array< typename FunctionTraits< Double >::ArgType >, casacore::Array< AutoDiff< T > >, casacore::Array< MFrequency >, casacore::Array< typename FunctionTraits< Double >::BaseType >, casacore::Array< Short >, casacore::Array< uChar >, casacore::Array< Quantity >, casacore::Array< String >, casacore::Array< Range >, casacore::Array< Int >, casacore::Array< Int64 >, casacore::Array< casacore::Double >, casacore::Array< DComplex >, casacore::Array< AutoDiffA< T > >, casacore::Array< Type >, casacore::Array< Vector< Range > >, casacore::Array< RORecordFieldPtr< Double > >, casacore::Array< FType >, casacore::Array< Bool >, casacore::Array< SquareMatrix< Complex, 2 > >, casacore::Array< Complex >, casacore::Array< typename FunctionTraits< T >::DiffType >, casacore::Array< AutoDiff< Double > >, casacore::Array< typename NumericTraits< FType >::ConjugateType >, casacore::Array< typename FunctionTraits< T >::ArgType >, casacore::Array< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Array< typename FunctionTraits< DComplex >::BaseType >, casacore::Array< uInt >, casacore::Array< Domain >, casacore::Array< typename FunctionTraits< DComplex >::DiffType >, casacore::Array< MVTime >, and casacore::Array< ArgType >.

const IPosition& casacore::ArrayBase::shape (  )  const [inline]

The length of each axis.

Reimplemented in casacore::Cube< T >, casacore::Matrix< T >, casacore::Vector< T >, casacore::Cube< RigidVector< Double, 2 > >, casacore::Cube< Double >, casacore::Matrix< GaussianBeam >, casacore::Matrix< Float >, casacore::Matrix< Double >, casacore::Matrix< Int >, casacore::Matrix< casacore::Double >, casacore::Matrix< FType >, casacore::Matrix< Bool >, casacore::Matrix< SquareMatrix< Complex, 2 > >, casacore::Matrix< Complex >, casacore::Vector< MeasComet * >, casacore::Vector< Slicer * >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base > >, casacore::Vector< Quantum< Double > >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base > >, casacore::Vector< double >, casacore::Vector< Float >, casacore::Vector< typename FunctionTraits< T >::BaseType >, casacore::Vector< typename LSQTraits< typename FunctionTraits< Double >::BaseType >::base >, casacore::Vector< typename FunctionTraits< Double >::DiffType >, casacore::Vector< Unit >, casacore::Vector< Double >, casacore::Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base >, casacore::Vector< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > >, casacore::Vector< Vector< Int > >, casacore::Vector< MDirection >, casacore::Vector< MPosition >, casacore::Vector< typename FunctionTraits< DComplex >::ArgType >, casacore::Vector< typename FunctionTraits< Double >::ArgType >, casacore::Vector< AutoDiff< T > >, casacore::Vector< MFrequency >, casacore::Vector< typename FunctionTraits< Double >::BaseType >, casacore::Vector< Quantity >, casacore::Vector< String >, casacore::Vector< Range >, casacore::Vector< Int >, casacore::Vector< Int64 >, casacore::Vector< casacore::Double >, casacore::Vector< AutoDiffA< T > >, casacore::Vector< Type >, casacore::Vector< Vector< Range > >, casacore::Vector< RORecordFieldPtr< Double > >, casacore::Vector< FType >, casacore::Vector< Bool >, casacore::Vector< SquareMatrix< Complex, 2 > >, casacore::Vector< typename FunctionTraits< T >::DiffType >, casacore::Vector< AutoDiff< Double > >, casacore::Vector< typename FunctionTraits< T >::ArgType >, casacore::Vector< typename LSQTraits< typename FunctionTraits< DComplex >::BaseType >::base >, casacore::Vector< typename FunctionTraits< DComplex >::BaseType >, casacore::Vector< uInt >, casacore::Vector< Domain >, casacore::Vector< typename FunctionTraits< DComplex >::DiffType >, and casacore::Vector< ArgType >.

Definition at line 121 of file ArrayBase.h.

References length_p.

Referenced by casacore::checkArrayShapes(), casacore::MArray< MVTime >::fill(), casacore::TableProxy::record2Array(), and casacore::HDF5Record::writeArr().

size_t casacore::ArrayBase::size (  )  const [inline]
const IPosition& casacore::ArrayBase::steps (  )  const [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.

void casacore::ArrayBase::throwNdimVector (  )  [protected]

Throw expection if vector dimensionality is incorrect.

void casacore::ArrayBase::validateConformance ( const ArrayBase  )  const

Various helper functions.

void casacore::ArrayBase::validateIndex ( uInt  index1,
uInt  index2,
uInt  index3 
) const
void casacore::ArrayBase::validateIndex ( uInt  index1,
uInt  index2 
) const
void casacore::ArrayBase::validateIndex ( uInt  index  )  const
void casacore::ArrayBase::validateIndex ( const IPosition  )  const

Member Data Documentation

Dimensionality of the array.

Definition at line 266 of file ArrayBase.h.

Referenced by ndim().

size_t casacore::ArrayBase::nels_p [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< ArgType >::setEndIter(), and size().

Definition at line 271 of file ArrayBase.h.

Used to hold the step to next element in each dimension.

Definition at line 273 of file ArrayBase.h.

Referenced by casacore::Array< ArgType >::setEndIter(), and steps().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1