Class SegmentedArray<N extends Comparable<N>>
java.lang.Object
org.ojalgo.array.BasicArray<N>
org.ojalgo.array.SegmentedArray<N>
- All Implemented Interfaces:
Access1D<N>, Access1D.Aggregatable<N>, Access1D.Collectable<N,Mutate1D>, Access1D.Visitable<N>, Mutate1D, Mutate1D.Fillable<N>, Mutate1D.Modifiable<N>, Structure1D
An array implemented as a sequence of segments that together make up the data structure. Any
BasicArray subclass can be used for segments. A BasicArray.Factory is used to create sparse
segments (they're not guaranteed to actually be sparse) and a DenseArray.Factory is used to create
dense segments (guaranteed to be dense).
-
Nested Class Summary
Nested classes/interfaces inherited from class BasicArray
BasicArray.BaseFactory<N,A>, BasicArray.Factory<N> Nested classes/interfaces inherited from interface Access1D
Access1D.Aggregatable<N>, Access1D.Collectable<N,R>, Access1D.ElementView<N>, Access1D.SelectionView<N>, Access1D.Sliceable<N>, Access1D.Visitable<N> Nested classes/interfaces inherited from interface Mutate1D
Mutate1D.Fillable<N>, Mutate1D.Mixable<N>, Mutate1D.Modifiable<N>, Mutate1D.ModifiableReceiver<N>, Mutate1D.Receiver<N>, Mutate1D.SortableNested classes/interfaces inherited from interface Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.Logical<S,B>, Structure1D.LongIndex, Structure1D.LoopCallback -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate final longprivate final BasicArray.BaseFactory<N, ?> private final BasicArray<N>[]private final longAll segments except the last one are assumed to (must) be of equal length. -
Constructor Summary
ConstructorsConstructorDescriptionSegmentedArray(BasicArray<N>[] segments, BasicArray.BaseFactory<N, ?> segmentFactory) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(int index, double addend) voidadd(long index, double addend) voidadd(long index, float addend) voidadd(long index, Comparable<?> addend) longcount()The total number of elements in this structure.doubledoubleValue(int index) doubledoubleValue(long index) protected voidexchange(long firstA, long firstB, long step, long count) protected voidprotected voidfill(long first, long limit, long step, NullaryFunction<?> supplier) voidvoidfillAll(NullaryFunction<?> supplier) voidvoidfillRange(long first, long limit, NullaryFunction<?> supplier) get(long index) (package private) SegmentedArray<N> grow()Will either grow the last segment to be the same size as all the others, or add another segment (with the same size).protected voidmodify(long first, long limit, long step, BinaryFunction<N> function, Access1D<N> right) protected voidmodify(long first, long limit, long step, UnaryFunction<N> function) protected voidmodify(long first, long limit, long step, Access1D<N> left, BinaryFunction<N> function) voidmodifyOne(long index, UnaryFunction<N> modifier) (package private) static <N extends Comparable<N>>
SegmentedArray<N> newInstance(BasicArray.BaseFactory<N, ?> segmentFactory, long... structure) voidreset()Reset this mutable structure to some standard (all zeros) initial state.voidset(int index, double value) voidset(long index, double value) voidset(long index, float value) voidset(long index, Comparable<?> value) intsize()The total number of elements in this structure.protected voidvisit(long first, long limit, long step, VoidFunction<N> visitor) voidvisitOne(long index, VoidFunction<N> visitor) Methods inherited from class BasicArray
aggregateRange, equals, factory, getMathType, hashCode, indexOfLargest, indexOfLargest, isPrimitive, modifyAll, modifyMatching, modifyMatching, modifyRange, supplyTo, toString, visitAll, visitRange, wrapInArray1D, wrapInArray2D, wrapInArrayAnyDMethods inherited from interface Access1D
asCollectable1D, asKeyed1D, asList, axpy, byteValue, byteValue, dot, elements, floatValue, floatValue, intValue, intValue, longValue, longValue, nonzeros, select, shortValue, shortValue, supplyTo, toList, toRawCopy1DMethods inherited from interface Access1D.Aggregatable
aggregateAllMethods inherited from interface Access1D.Collectable
collectMethods inherited from interface Mutate1D.Fillable
fillCompatible, fillMatching, fillMatching, fillMatching, fillMatching
-
Field Details
-
myIndexBits
private final int myIndexBits -
myIndexMask
private final long myIndexMask -
mySegmentFactory
-
mySegments
-
mySegmentSize
private final long mySegmentSizeAll segments except the last one are assumed to (must) be of equal length. The last segment cannot be longer than the others.
-
-
Constructor Details
-
SegmentedArray
SegmentedArray(BasicArray<N>[] segments, BasicArray.BaseFactory<N, ?> segmentFactory)
-
-
Method Details
-
newInstance
static <N extends Comparable<N>> SegmentedArray<N> newInstance(BasicArray.BaseFactory<N, ?> segmentFactory, long... structure) -
add
public void add(int index, double addend) -
add
-
add
public void add(long index, double addend) -
add
public void add(long index, float addend) -
count
public long count()Description copied from interface:Structure1DThe total number of elements in this structure.You only need to implement this method if the structure can contain more than Integer.MAX_VALUE elements.
-
doubleValue
public double doubleValue(int index) -
doubleValue
public double doubleValue(long index) -
fillAll
-
fillAll
-
fillRange
-
fillRange
-
get
-
modifyOne
-
reset
public void reset()Description copied from interface:Mutate1DReset this mutable structure to some standard (all zeros) initial state. It must still be usuable after this call, and the structure/size/shape must not change. -
set
public void set(int index, double value) -
set
-
set
public void set(long index, double value) -
set
public void set(long index, float value) -
size
public int size()Description copied from interface:Structure1DThe total number of elements in this structure. -
visitOne
-
exchange
protected void exchange(long firstA, long firstB, long step, long count) - Overrides:
exchangein classBasicArray<N extends Comparable<N>>
-
fill
- Overrides:
fillin classBasicArray<N extends Comparable<N>>
-
fill
- Overrides:
fillin classBasicArray<N extends Comparable<N>>
-
modify
protected void modify(long first, long limit, long step, Access1D<N> left, BinaryFunction<N> function) - Overrides:
modifyin classBasicArray<N extends Comparable<N>>
-
modify
protected void modify(long first, long limit, long step, BinaryFunction<N> function, Access1D<N> right) - Overrides:
modifyin classBasicArray<N extends Comparable<N>>
-
modify
- Overrides:
modifyin classBasicArray<N extends Comparable<N>>
-
visit
- Overrides:
visitin classBasicArray<N extends Comparable<N>>
-
grow
SegmentedArray<N> grow()Will either grow the last segment to be the same size as all the others, or add another segment (with the same size). The returned (could be the same) instance is guaranteed to have a last segment of the same size as the others and at least one more "space" in that segment.
-