casacore
|
#include <RowNumbers.h>
Public Member Functions | |
RowNumbers () | |
Construct an empty RowNumbers Vector. | |
RowNumbers (size_t n) | |
Construct with the given length. | |
RowNumbers (const Vector< rownr_t > &rows) | |
Construct from a Vector of row numbers. | |
RowNumbers (const std::vector< rownr_t > &rows) | |
Construct from a std::vector of row numbers. | |
virtual Array< rownr_t > & | operator= (const Array< rownr_t > &other) |
Array<T> has this virtual function, so also define in this class to avoid 'virtual function override' warning. | |
RowNumbers (const Vector< uInt > &rows) | |
Construct from a Vector or std::vector of old style row numbers. | |
RowNumbers (const std::vector< uInt > &rows) | |
operator Vector< uInt > () const | |
Conversion operator to convert Vector<rownr_t> to Vector<uInt>. | |
![]() | |
Vector () | |
A zero-length Vector. | |
Vector (size_t Length) | |
A Vector with a defined length and origin of zero. | |
Vector (const IPosition &Length) | |
Vector (size_t Length, const rownr_t &initialValue) | |
A Vector with a defined length and origin of zero. | |
Vector (const IPosition &Length, const rownr_t &initialValue) | |
Vector (size_t Length, typename Array< rownr_t >::uninitializedType) | |
An uninitialized Vector with a defined length. | |
Vector (const IPosition &Length, typename Array< rownr_t >::uninitializedType) | |
Vector (const std::vector< rownr_t > &other, long long nr) | |
Create a Vector from the given std::vector "other." Make it length "nr" and copy over that many elements. | |
Vector (const std::vector< rownr_t > &other) | |
Create a Vector of length other.size() and copy over its values. | |
Vector (std::initializer_list< rownr_t > list) | |
Create a Vector from an initializer list. | |
Vector (const Vector< rownr_t > &other) | |
Create a reference to other. | |
Vector (Vector< rownr_t > &&source) noexcept | |
Move. | |
Vector (const Array< rownr_t > &other) | |
Create a reference to the other array. | |
Vector (const IPosition &shape, rownr_t *storage, StorageInitPolicy policy=COPY) | |
Create an Vector of a given shape from a pointer. | |
Vector (const IPosition &shape, const rownr_t *storage) | |
Create an Vector of a given shape from a pointer. | |
Vector (InputIterator startIter, InputIterator endIter) | |
Vector (const std::vector< U, V > &other) | |
Create a Vector from an STL vector (see tovector() in Array for the reverse operation). | |
Vector (Iterator first, size_t size, int dummy) | |
Create a Vector from a container iterator and its length. | |
void | resize (size_t len, bool copyValues=false) |
virtual void | resize (const IPosition &len, bool copyValues=false) final override |
Resize the array and optionally copy the values. | |
Vector< rownr_t > & | assign_conforming (const Vector< rownr_t > &source) |
Vector< rownr_t > & | assign_conforming (Vector< rownr_t > &&source) |
Vector< rownr_t > & | assign_conforming (const Array< rownr_t > &source) |
source must be a 1-dimensional array. | |
Vector< rownr_t > & | assign_conforming (Array< rownr_t > &&source) |
Vector< rownr_t > & | operator= (const Vector< rownr_t > &source) |
Vector< rownr_t > & | operator= (Vector< rownr_t > &&source) |
Vector< rownr_t > & | operator= (const Array< rownr_t > &source) |
Vector< rownr_t > & | operator= (Array< rownr_t > &&source) |
rownr_t & | operator[] (size_t index) |
Convert a Vector to a Block, resizing the block and copying values. | |
const rownr_t & | operator[] (size_t index) const |
rownr_t & | operator() (const IPosition &i) |
const rownr_t & | operator() (const IPosition &i) const |
rownr_t & | operator() (size_t index) |
const rownr_t & | operator() (size_t index) const |
Vector< rownr_t > | operator() (const Slice &slice) |
Take a slice of this vector. | |
const Vector< rownr_t > | operator() (const Slice &slice) const |
Array< rownr_t > | operator() (const IPosition &blc, const IPosition &trc, const IPosition &incr) |
Slice using IPositions. | |
const Array< rownr_t > | operator() (const IPosition &blc, const IPosition &trc, const IPosition &incr) const |
Array< rownr_t > | operator() (const IPosition &blc, const IPosition &trc) |
const Array< rownr_t > | operator() (const IPosition &blc, const IPosition &trc) const |
Array< rownr_t > | operator() (const Slicer &slicer) |
const Array< rownr_t > | operator() (const Slicer &slicer) const |
MaskedArray< rownr_t > | operator() (const LogicalArray &mask) const |
The array is masked by the input LogicalArray. | |
MaskedArray< rownr_t > | operator() (const LogicalArray &mask) |
Return a MaskedArray. | |
MaskedArray< rownr_t > | operator() (const MaskedLogicalArray &mask) const |
The array is masked by the input MaskedLogicalArray. | |
MaskedArray< rownr_t > | operator() (const MaskedLogicalArray &mask) |
Return a MaskedArray. | |
const IPosition & | shape () const |
The length of the Vector. | |
void | shape (int &Shape) const |
virtual bool | ok () const final override |
Verify that dimensionality is 1 and then call Array<T>::ok() | |
![]() | |
Array () | |
Result has dimensionality of zero, and nelements is zero. | |
Array (const IPosition &shape) | |
Create an array of the given shape, i.e. | |
Array (const IPosition &shape, const T &initialValue) | |
Create an array of the given shape and initialize it with the initial value. | |
Array (const IPosition &shape, uninitializedType) | |
Constructor to create an uninitialized array. | |
Array (std::initializer_list< T > list) | |
Construct a one-dimensional array from an initializer list. | |
Array (const Array< T > &other) | |
After construction, this and other reference the same storage. | |
Array (Array< T > &&source) noexcept | |
Source will be empty after this call. | |
Array (const IPosition &shape, T *storage, StorageInitPolicy policy=COPY) | |
Create an Array of a given shape from a pointer. | |
Array (const IPosition &shape, const T *storage) | |
Create an Array of a given shape from a pointer. | |
template<typename InputIterator > | |
Array (const IPosition &shape, InputIterator startIter) | |
Construct an array from an iterator and a shape. | |
virtual | ~Array () noexcept |
Frees up storage only if this array was the last reference to it. | |
virtual std::unique_ptr< ArrayBase > | makeArray () const override |
Make an empty array of the same template type. | |
void | assign (const Array< T > &other) |
Assign the other array to this array. | |
void | assignBase (const ArrayBase &other, bool checkType=true) override |
Assign the source array to this array. | |
void | set (const T &value) |
Set every element of the array to "value." Also could use the assignment operator which assigns an array from a scalar. | |
template<typename Callable > | |
void | apply (Callable function) |
Apply the function to every element of the array. | |
virtual void | reference (const Array< T > &other) |
After invocation, this array and other reference the same storage. | |
Array< T > & | assign_conforming (const Array< T > &other) |
Copy the values in other to this. | |
Array< T > & | assign_conforming (const MaskedArray< T > &marray) |
Copy to this those values in marray whose corresponding elements in marray's mask are true. | |
Array< T > & | operator= (const Array< T > &other) |
TODO we should change the semantics. | |
Array< T > & | operator= (const MaskedArray< T > &marray) |
Calls assign_conforming(). | |
Array< T > & | operator= (Array< T > &&other) |
The move operator takes the storage from the given array. | |
Array< T > & | operator= (const T &value) |
Set every element of this array to "value". | |
Array< T > | copy () const |
This makes a copy of the array and returns it. | |
void | copyMatchingPart (const Array< T > &from) |
This function copies the matching part of from array to this array. | |
void | unique () |
This ensures that this array does not reference any other storage. | |
template<class U > | |
void | tovector (std::vector< T, U > &out) const |
Create an STL vector from an Array. | |
std::vector< T > | tovector () const |
Array< T > | reform (const IPosition &shape) const |
It is occasionally useful to have an array which access the same storage appear to have a different shape. | |
bool | reformOrResize (const IPosition &newShape, size_t resizePercentage=0, bool resizeIfNeeded=true) |
Having an array that can be reused without requiring reallocation can be useful for large arrays. | |
bool | adjustLastAxis (const IPosition &newShape, size_t resizePercentage=0, bool resizeIfNeeded=true) |
Use this method to extend or reduce the last dimension of an array. | |
size_t | capacity () const |
Returns the number of elements allocated. | |
Array< T > | nonDegenerate (size_t startingAxis=0, bool throwIfError=true) const |
These member functions remove degenerate (ie. | |
Array< T > | nonDegenerate (const IPosition &ignoreAxes) const |
void | nonDegenerate (const Array< T > &other, size_t startingAxis=0, bool throwIfError=true) |
void | nonDegenerate (const Array< T > &other, const IPosition &ignoreAxes) |
void | removeDegenerate (size_t startingAxis=0, bool throwIfError=true) |
Remove degenerate axes from this Array object. | |
void | removeDegenerate (const IPosition &ignoreAxes) |
const Array< T > | addDegenerate (size_t numAxes) const |
This member function returns an Array reference with the specified number of extra axes, all of length one, appended to the end of the Array. | |
Array< T > | addDegenerate (size_t numAxes) |
void | resize () |
Make this array a different shape. | |
T & | operator() (const IPosition &) |
Access a single element of the array. | |
const T & | operator() (const IPosition &) const |
Array< T > | operator() (const IPosition &start, const IPosition &end) |
Get a reference to an array section extending from start to end (inclusive). | |
const Array< T > | operator() (const IPosition &start, const IPosition &end) const |
Array< T > | operator() (const IPosition &start, const IPosition &end, const IPosition &inc) |
Along the ith axis, every inc[i]'th element is chosen. | |
const Array< T > | operator() (const IPosition &start, const IPosition &end, const IPosition &inc) const |
Array< T > | operator() (const Slicer &) |
Get a reference to an array section using a Slicer. | |
const Array< T > | operator() (const Slicer &) const |
std::unique_ptr< ArrayBase > | getSection (const Slicer &) const override |
Get a reference to a section of an array. | |
Array< T > | operator[] (size_t i) const |
Get the subset given by the i-th value of the last axis. | |
Array< T > | diagonals (size_t firstAxis=0, long long diag=0) const |
Get the diagonal of each matrix part in the full array. | |
const MaskedArray< T > | operator() (const LogicalArray &mask) const |
The array is masked by the input LogicalArray. | |
MaskedArray< T > | operator() (const LogicalArray &mask) |
const MaskedArray< T > | operator() (const MaskedLogicalArray &mask) const |
The array is masked by the input MaskedLogicalArray. | |
MaskedArray< T > | operator() (const MaskedLogicalArray &mask) |
size_t | nrefs () const |
The number of references the underlying storage has assigned to it. | |
bool | conform (const Array< T > &other) const |
Are the shapes identical? | |
bool | conform (const MaskedArray< T > &other) const |
T * | data () |
Get a pointer to the beginning of the array. | |
const T * | data () const |
T * | getStorage (bool &deleteIt) |
Generally use of this should be shunned, except to use a FORTRAN routine or something similar. | |
const T * | getStorage (bool &deleteIt) const |
void * | getVStorage (bool &deleteIt) override |
The following functions behave the same as the corresponding getStorage functions in the derived templated Array class. | |
const void * | getVStorage (bool &deleteIt) const override |
void | putStorage (T *&storage, bool deleteAndCopy) |
putStorage() is normally called after a call to getStorage() (cf). | |
void | putVStorage (void *&storage, bool deleteAndCopy) override |
void | freeStorage (const T *&storage, bool deleteIt) const |
If deleteIt is set, delete "storage". | |
void | freeVStorage (const void *&storage, bool deleteIt) const override |
virtual void | takeStorage (const IPosition &shape, T *storage, StorageInitPolicy policy=COPY) |
Replace the data values with those in the pointer storage . | |
virtual void | takeStorage (const IPosition &shape, const T *storage) |
Since the pointer is const, a copy is always taken. | |
std::unique_ptr< ArrayPositionIterator > | makeIterator (size_t byDim) const override |
Create an ArrayIterator object of the correct type. | |
iterator | begin () |
Get the begin iterator object for any array. | |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
contiter | cbegin () |
Get the begin iterator object for a contiguous array. | |
const_contiter | cbegin () const |
contiter | cend () |
const_contiter | cend () const |
![]() | |
ArrayBase () noexcept | |
ArrayBase (const IPosition &shape) | |
Create an array of the given shape, i.e. | |
ArrayBase (const ArrayBase &other) | |
Copy constructor. | |
ArrayBase (ArrayBase &&source) noexcept | |
ArrayBase & | assign (const ArrayBase &) |
Assignment. | |
ArrayBase & | operator= (const ArrayBase &)=delete |
ArrayBase & | operator= (ArrayBase &&) noexcept |
virtual | ~ArrayBase () noexcept |
Destructor. | |
size_t | 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. | |
const IPosition & | shape () const |
The length of each axis. | |
IPosition | endPosition () const |
A convenience function: endPosition(i) = shape(i) - 1; i.e. | |
const IPosition & | steps () const |
Return steps to be made if stepping one element in a dimension. | |
void | validateConformance (const ArrayBase &) const |
Various helper functions. | |
void | validateIndex (const IPosition &) const |
void | validateIndex (size_t index) const |
void | validateIndex (size_t index1, size_t index2) const |
void | validateIndex (size_t index1, size_t index2, size_t index3) const |
Static Public Member Functions | |
static Vector< uInt > | convertRownrVector (const Vector< rownr_t > &) |
Do the actual conversion. | |
![]() | |
static unsigned | arrayVersion () |
Array version for major change (used by ArrayIO). | |
Additional Inherited Members | |
![]() | |
typedef T | value_type |
Define the STL-style iterator functions (only forward iterator). | |
typedef const T & | const_reference |
TODO This is how std containers define a reference type, but the name 'reference' is already taken by a method. | |
typedef T * | pointer |
Pointer to an element type. | |
typedef const T * | const_pointer |
Constant pointer to the element type. | |
typedef IteratorSTL | iterator |
typedef ConstIteratorSTL | const_iterator |
typedef T * | contiter |
typedef const T * | const_contiter |
![]() | |
static struct casacore::Array::uninitializedType | uninitialized |
![]() | |
virtual void | doNonDegenerate (const Array< rownr_t > &other, const IPosition &ignoreAxes) final override |
Remove the degenerate axes from other and store result in this vector. | |
virtual size_t | fixedDimensionality () const final override |
Subclasses can return their dimensionality. | |
![]() | |
Array (Array< T > &&source, const IPosition &shapeForSource) noexcept | |
Source will be empty with given shape after this call. | |
void | swap (Array< T > &other) |
Swap this array with another array. | |
virtual void | preTakeStorage (const IPosition &) |
pre/post processing hook of takeStorage() for subclasses. | |
virtual void | postTakeStorage () |
void | checkBeforeResize (const IPosition &newShape) |
This function is called when this array is about to be resized, before any work is done. | |
virtual void | checkAssignableType (ArrayBase &arrayBase) const |
virtual void | doNonDegenerate (const Array< T > &other, const IPosition &ignoreAxes) |
Remove the degenerate axes from the Array object. | |
void | makeSteps () |
Fill the steps and the end for a derived class. | |
void | setEndIter () |
Set the end iterator. | |
![]() | |
ArrayBase (ArrayBase &&source, const IPosition &shapeForSource) noexcept | |
For subclasses, this move constructor allows the moved-from object to obtain a given shape after resizing. | |
void | swap (ArrayBase &source) noexcept |
bool | reformOrResize (const IPosition &newShape, bool resizeIfNeeded, size_t nReferences, long long nElementsAllocated, bool copyDataIfNeeded, size_t 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 &, size_t 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 (size_t firstAxis, long long 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. | |
bool | copyVectorHelper (const ArrayBase &other) |
Helper function for templated Vector class. | |
![]() | |
static void | copyToContiguousStorage (T *dst, Array< T > const &src) |
![]() | |
std::shared_ptr< arrays_internal::Storage< T > > | data_p |
Shared pointer to a Storage that contains the data. | |
T * | begin_p |
This pointer is adjusted to point to the first element of the array. | |
T * | end_p |
The end for an STL-style iteration. | |
![]() | |
size_t | nels_p |
Number of elements in the array. | |
size_t | 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. | |
Definition at line 35 of file RowNumbers.h.
|
inline |
Construct an empty RowNumbers Vector.
Definition at line 39 of file RowNumbers.h.
|
inlineexplicit |
Construct with the given length.
Definition at line 43 of file RowNumbers.h.
Construct from a Vector of row numbers.
Definition at line 48 of file RowNumbers.h.
casacore::RowNumbers::RowNumbers | ( | const std::vector< rownr_t > & | rows | ) |
Construct from a std::vector of row numbers.
Construct from a Vector or std::vector of old style row numbers.
|
explicit |
Do the actual conversion.
An exception is thrown if a row number exceeds 32 bits.
Referenced by operator Vector< uInt >().
Conversion operator to convert Vector<rownr_t> to Vector<uInt>.
This is for backward compatibility of Table::rowNumbers.
Definition at line 73 of file RowNumbers.h.
References convertRownrVector().
|
virtual |
Array<T> has this virtual function, so also define in this class to avoid 'virtual function override' warning.