Package gnu.lists
Class GeneralArray<E>
java.lang.Object
gnu.lists.AbstractSequence<E>
gnu.lists.TransformedArray<E>
gnu.lists.GeneralArray<E>
- All Implemented Interfaces:
Array<E>
- Direct Known Subclasses:
GeneralArray1
A class to handle general multi-dimensional arrays.
If the number of dimensions (the "rank") is one, should use
a class that implements Sequence.
GeneralArray uses a SimpleVector 'base' to store the actual data, and
provides general linear mapping from the array indexes to an
element index in the 'base' SimpleVector. Thus such uperations as
transposing an array can be implement as just creating a simple
re-mapping of the indexes.
-
Field Summary
Fields inherited from class gnu.lists.TransformedArray
base
Fields inherited from class gnu.lists.AbstractSequence
noInts
-
Constructor Summary
ConstructorsConstructorDescriptionGeneralArray
(int[] dimensions) GeneralArray
(AVector<E> base, int[] dimensions, int[] lowBounds) GeneralArray
(AVector<E> base, int[] dimensions, int[] lowBounds, int[] strides, int offset) -
Method Summary
Modifier and TypeMethodDescriptionint
int
effectiveIndex
(int i) int
effectiveIndex
(int i, int j) int
effectiveIndex
(int i, int j, int k, int... rest) get
(int[] indexes) getBase()
int[]
int
getLowBound
(int dim) Get the least dimension along the specified dimension.int[]
int
getSize
(int dim) Get length along specified dimension.getTag()
protected void
static <E> GeneralArray
<E> static <E> GeneralArray
<E> static Array
makeSimple
(int[] lowBounds, int[] dimensions, SimpleVector base) protected int
nextIndex
(int ipos) Get the offset from the beginning corresponding to a position cookie.int
rank()
Get the rank (number of dimensions) of this array.int
resolve
(int[] indexes) Calculate corresponding index in base array.void
void
void
setStrides
(int[] strides, int offset) int
size()
See java.util.Collection.toString()
static void
toString
(Array array, StringBuffer sbuf) Methods inherited from class gnu.lists.TransformedArray
checkCanWrite, getBooleanRaw, getByteRaw, getCharRaw, getDoubleRaw, getElementKind, getFloatRaw, getInt, getInt, getIntRaw, getLongRaw, getRaw, getRowMajor, getShortRaw, setRaw
Methods inherited from class gnu.lists.AbstractSequence
add, add, addAll, addAll, addPos, asImmutable, badRank, boundedHash, checkRank, clear, compare, compare, compare, consume, consume, consumeNext, consumePosRange, contains, containsAll, copyPos, createPos, createRelativePos, effectiveIndex, elements, endPos, equals, equals, fill, fill, fillPosRange, firstAttributePos, firstChildPos, firstChildPos, fromEndIndex, get, get, get, get, getAttribute, getAttributeLength, getContainingSequenceSize, getIndexDifference, getInt, getInt, getInt, getIterator, getIterator, getIteratorAtPos, getNextKind, getNextTypeName, getNextTypeObject, getPosNext, getPosPrevious, getSize, gotoAttributesStart, gotoChildrenStart, gotoParent, hashCode, hasNext, hasPrevious, indexOf, isAfterPos, isEmpty, iterator, lastIndexOf, listIterator, listIterator, nextIndex, nextMatching, nextPos, parentPos, previousPos, releasePos, remove, remove, removeAll, removePos, removePosRange, retainAll, set, set, setAt, setBuffer, setPosNext, setPosPrevious, stableCompare, startPos, subList, subSequence, subSequencePos, toArray, toArray, toString, unsupported, unsupportedException
-
Constructor Details
-
GeneralArray
public GeneralArray() -
GeneralArray
public GeneralArray(int[] dimensions) -
GeneralArray
-
GeneralArray
-
-
Method Details
-
nextIndex
protected int nextIndex(int ipos) Description copied from class:AbstractSequence
Get the offset from the beginning corresponding to a position cookie.- Overrides:
nextIndex
in classAbstractSequence<E>
-
makeSimple
-
init
-
make0
-
make
public static <E> GeneralArray<E> make(AVector<E> base, int[] dimensions, int[] lowBounds, int[] strides, int offset) -
getBase
-
setBase
-
setBase
-
setStrides
public void setStrides(int[] strides, int offset) -
getDimensions
public int[] getDimensions() -
getLowBounds
public int[] getLowBounds() -
rank
public int rank()Description copied from interface:Array
Get the rank (number of dimensions) of this array. The rank of a scalar is 0, of a Sequence is 1, of a matrix is 2, etc. -
effectiveIndex
public int effectiveIndex()- Specified by:
effectiveIndex
in interfaceArray<E>
- Overrides:
effectiveIndex
in classAbstractSequence<E>
-
effectiveIndex
public int effectiveIndex(int i) - Specified by:
effectiveIndex
in interfaceArray<E>
- Overrides:
effectiveIndex
in classAbstractSequence<E>
-
effectiveIndex
public int effectiveIndex(int i, int j) - Specified by:
effectiveIndex
in interfaceArray<E>
- Overrides:
effectiveIndex
in classAbstractSequence<E>
-
effectiveIndex
public int effectiveIndex(int i, int j, int k, int... rest) - Specified by:
effectiveIndex
in interfaceArray<E>
- Overrides:
effectiveIndex
in classAbstractSequence<E>
-
resolve
public int resolve(int[] indexes) Calculate corresponding index in base array. effectiveIndex[indexes] == base.effectiveIndex(resolve[indexes]) -
get
-
size
public int size()See java.util.Collection.- Overrides:
size
in classAbstractSequence<E>
-
getLowBound
public int getLowBound(int dim) Description copied from interface:Array
Get the least dimension along the specified dimension.- Specified by:
getLowBound
in interfaceArray<E>
- Overrides:
getLowBound
in classAbstractSequence<E>
-
getSize
public int getSize(int dim) Description copied from interface:Array
Get length along specified dimension. -
toString
-
getTag
-
toString
- Overrides:
toString
in classAbstractSequence<E>
-