casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
casacore::ArrayUtil_global_functions_reorderArray Struct Reference

Reorder the axes of an array. More...

#include <ArrayUtil.h>

Public Member Functions

template<class T >
Array< T > reorderArray (const Array< T > &array, const IPosition &newAxisOrder, Bool alwaysCopy=True)

Detailed Description

Reorder the axes of an array.

Intended use:

Public interface

Review Status

Reviewed By:
Date Reviewed:
Test programs:


This function makes it possible to reorder the axes of an array. The resulting array is a copy of the input array with its data moved around according to the new array order. If the order does not change, a copy is returned if the alwaysCopy is true. Otherwise a reference of the input array is returned.

The newAxisOrder defines the new axes order. Its length can be less than the dimensionality of the input array. It is appended with the non-specified axes in their natural order. newAxisOrder(i) gives the axis in the original array which will now get axis i.


Array<Int> result = reorderArray (someArray, IPosition(2,1,3));

Say that someArray is a 4D array with shape [3,4,5,6]. The non-specified axes get appended to the axis order specification [1,3] resulting in [1,3,0,2].
This means that axis 1 gets axis 0, axis 3 gets axis 1, axis 0 gets axis 2, and axis 2 gets axis 3. Thus the resulting shape is [4,6,3,5] and the data are moved accordingly.


This function was needed for an efficient implementation of the functions partialMedians and partialFractiles.

Definition at line 270 of file ArrayUtil.h.

Member Function Documentation

template<class T >
Array<T> casacore::ArrayUtil_global_functions_reorderArray::reorderArray ( const Array< T > &  array,
const IPosition newAxisOrder,
Bool  alwaysCopy = True 

The documentation for this struct was generated from the following file: