Class ComplexNDArraySliceView<T extends Number>
- java.lang.Object
-
- io.github.hakkelt.ndarrays.internal.AbstractNDArray<T,T2>
-
- io.github.hakkelt.ndarrays.internal.AbstractNDArrayView<T,T2>
-
- io.github.hakkelt.ndarrays.internal.AbstractNDArraySliceView<org.apache.commons.math3.complex.Complex,T>
-
- io.github.hakkelt.ndarrays.internal.ComplexNDArraySliceView<T>
-
- All Implemented Interfaces:
ComplexNDArray<T>
,NDArray<org.apache.commons.math3.complex.Complex>
,Iterable<org.apache.commons.math3.complex.Complex>
public class ComplexNDArraySliceView<T extends Number> extends AbstractNDArraySliceView<org.apache.commons.math3.complex.Complex,T> implements ComplexNDArray<T>
A view for a ComplexNDArray that slices the parent ComplexNDArray. When slice(...) is called for a ComplexNDArray, an instance of this class is returned.
-
-
Constructor Summary
Constructors Constructor Description ComplexNDArraySliceView(NDArray<org.apache.commons.math3.complex.Complex> parent, Range[] slicingExpressions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NDArray<T>
abs()
Returns a new array holding the magnitude / absolute values of the elements.ComplexNDArray<T>
apply(UnaryOperator<org.apache.commons.math3.complex.Complex> func)
Apply the given function to each element of the array, and override each entry with the calculated new values.ComplexNDArray<T>
applyOnComplexSlices(BiFunction<ComplexNDArray<T>,int[],NDArray<?>> func, int... iterationDims)
Apply the given function to each slices of the array, and override each entry with the returned slice.ComplexNDArray<T>
applyWithCartesianIndices(BiFunction<org.apache.commons.math3.complex.Complex,int[],org.apache.commons.math3.complex.Complex> func)
Apply the given function to each element of the array, and override each entry with the calculated new values.ComplexNDArray<T>
applyWithLinearIndices(BiFunction<org.apache.commons.math3.complex.Complex,Integer,org.apache.commons.math3.complex.Complex> func)
Apply the given function to each element of the array, and override each entry with the calculated new values.NDArray<T>
argument()
Returns a new array holding the argument / argument of the elements.ComplexNDArray<T>
copy()
Returns a copy of this NDArray.ComplexNDArray<T>
fillUsingCartesianIndices(Function<int[],org.apache.commons.math3.complex.Complex> func)
Apply the given function to each element of the array, and override each entry with the calculated new values.ComplexNDArray<T>
fillUsingLinearIndices(IntFunction<org.apache.commons.math3.complex.Complex> func)
Apply the given function to each element of the array, and override each entry with the calculated new values.NDArray<T>
imaginary()
Returns a new array holding the imaginary part of the arrayComplexNDArray<T>
mapOnComplexSlices(BiFunction<ComplexNDArray<T>,int[],NDArray<?>> func, int... iterationDims)
Apply the given function to each slices of the array, and create a new NDArray with the calculated new values.NDArray<T>
real()
Returns a new array holding the real part of the arrayComplexNDArray<T>
reduceComplexSlices(BiFunction<ComplexNDArray<T>,int[],org.apache.commons.math3.complex.Complex> func, int... iterationDims)
Reduces slices along the specified dimensions in this NDArray to scalar values, reducing the number of dimensions.void
set(Number value, int linearIndex)
Sets the value of an element specified by linear indexing.void
set(Number value, int... indices)
Sets the value of an element specified by cartesian indexing.void
setImag(Number value, int linearIndex)
Sets the imaginary part of an element specified by linear indexing.void
setImag(Number value, int... indices)
Sets the imaginary part of an element specified by cartesian indexing.void
setReal(Number value, int linearIndex)
Sets the real part of an element specified by linear indexing.void
setReal(Number value, int... indices)
Sets the real part of an element specified by cartesian indexing.ComplexNDArray<T>
similar()
Returns a new array of the same shape as this NDArray filled with zeros.-
Methods inherited from class io.github.hakkelt.ndarrays.internal.AbstractNDArraySliceView
applyOnSlices, equals, hashCode, mapOnSlices
-
Methods inherited from class io.github.hakkelt.ndarrays.internal.AbstractNDArrayView
dataTypeAsString, dtype, dtype2, getNamePrefix, getParent, getTopMostParent, linearIndexToViewIndices
-
Methods inherited from class io.github.hakkelt.ndarrays.internal.AbstractNDArray
accumulate, contains, contentToString, contentToString, forEach, forEachWithCartesianIndices, forEachWithLinearIndices, get, get, getImag, getImag, getReal, getReal, iterator, length, maybeParallelStream, ndim, norm, norm, parallelStream, prod, reduceSlices, set, set, shape, shape, spliterator, stream, streamCartesianIndices, streamLinearIndices, sum, toArray, toArray, toArray, toString, writeToFile
-
Methods inherited from interface io.github.hakkelt.ndarrays.ComplexNDArray
accumulate, add, add, add, add, add, add, add, add, addInplace, addInplace, addInplace, addInplace, addInplace, addInplace, addInplace, addInplace, concatenate, contentToString, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, copyFrom, divide, divide, divide, divide, divide, divide, divide, divide, divideInplace, divideInplace, divideInplace, divideInplace, divideInplace, divideInplace, divideInplace, divideInplace, dropDims, dtype2, fill, fill, fill, getImag, getImag, getReal, getReal, inverseMask, map, mapWithCartesianIndices, mapWithLinearIndices, mask, mask, maskWithCartesianIndices, maskWithLinearIndices, multiply, multiply, multiply, multiply, multiply, multiply, multiply, multiply, multiplyInplace, multiplyInplace, multiplyInplace, multiplyInplace, multiplyInplace, multiplyInplace, multiplyInplace, multiplyInplace, permuteDims, prod, reshape, selectDims, slice, squeeze, subtract, subtract, subtract, subtract, subtract, subtract, subtract, subtract, subtractInplace, subtractInplace, subtractInplace, subtractInplace, subtractInplace, subtractInplace, subtractInplace, subtractInplace, sum
-
Methods inherited from interface io.github.hakkelt.ndarrays.NDArray
accumulate, applyOnSlices, contains, contentToString, dataTypeAsString, dtype, equals, forEach, forEachWithCartesianIndices, forEachWithLinearIndices, get, get, getNamePrefix, hashCode, iterator, length, mapOnSlices, ndim, norm, norm, norm, parallelStream, prod, reduceSlices, set, set, shape, shape, spliterator, stream, streamCartesianIndices, streamLinearIndices, sum, toArray, toArray, toArray, toString, writeToFile
-
-
-
-
Method Detail
-
mapOnComplexSlices
public ComplexNDArray<T> mapOnComplexSlices(BiFunction<ComplexNDArray<T>,int[],NDArray<?>> func, int... iterationDims)
Description copied from interface:ComplexNDArray
Apply the given function to each slices of the array, and create a new NDArray with the calculated new values. Please note that slices might not be processed in a sequential order!- Specified by:
mapOnComplexSlices
in interfaceComplexNDArray<T extends Number>
- Parameters:
func
- function that receives slice and its Cartesian coordinate along the iteration dimensions, and returns a new array with the same size as the sliceiterationDims
- dimensions along which iteration is performed- Returns:
- the new NDArray with the calculated new values
-
applyOnComplexSlices
public ComplexNDArray<T> applyOnComplexSlices(BiFunction<ComplexNDArray<T>,int[],NDArray<?>> func, int... iterationDims)
Description copied from interface:ComplexNDArray
Apply the given function to each slices of the array, and override each entry with the returned slice. Please note that slices might not be processed in a sequential order!- Specified by:
applyOnComplexSlices
in interfaceComplexNDArray<T extends Number>
- Parameters:
func
- function that receives the value of the current entry and its Cartesian coordinate, and returns a slice from which values are copied to original arrayiterationDims
- dimensions along which iteration is performed- Returns:
- itself after the update
-
reduceComplexSlices
public ComplexNDArray<T> reduceComplexSlices(BiFunction<ComplexNDArray<T>,int[],org.apache.commons.math3.complex.Complex> func, int... iterationDims)
Description copied from interface:ComplexNDArray
Reduces slices along the specified dimensions in this NDArray to scalar values, reducing the number of dimensions.For example, if
A
is a [5 × 8 × 3] array, thenB = A.reduce(func, 2)
returns a [5 × 8] array, andB.get(1,1) == func(A.slice(1, 1, ":"), new int[] { 1, 1 })
.- Specified by:
reduceComplexSlices
in interfaceComplexNDArray<T extends Number>
- Parameters:
func
- reduction function that accepts a slice and its index and returns reduction resultiterationDims
- dimensions along which the reduction should be performed- Returns:
- result of reduction of all slices along the specified dimensions
-
real
public NDArray<T> real()
Description copied from interface:ComplexNDArray
Returns a new array holding the real part of the array- Specified by:
real
in interfaceComplexNDArray<T extends Number>
- Returns:
- the real part of the array
-
imaginary
public NDArray<T> imaginary()
Description copied from interface:ComplexNDArray
Returns a new array holding the imaginary part of the array- Specified by:
imaginary
in interfaceComplexNDArray<T extends Number>
- Returns:
- the imaginary part of the array
-
abs
public NDArray<T> abs()
Description copied from interface:ComplexNDArray
Returns a new array holding the magnitude / absolute values of the elements.- Specified by:
abs
in interfaceComplexNDArray<T extends Number>
- Returns:
- a new array holding the magnitude / absolute values of the elements.
-
argument
public NDArray<T> argument()
Description copied from interface:ComplexNDArray
Returns a new array holding the argument / argument of the elements.- Specified by:
argument
in interfaceComplexNDArray<T extends Number>
- Returns:
- a new array holding the argument / argument of the elements.
-
similar
public ComplexNDArray<T> similar()
Description copied from interface:NDArray
Returns a new array of the same shape as this NDArray filled with zeros.- Specified by:
similar
in interfaceComplexNDArray<T extends Number>
- Specified by:
similar
in interfaceNDArray<T extends Number>
- Overrides:
similar
in classAbstractNDArrayView<org.apache.commons.math3.complex.Complex,T extends Number>
- Returns:
- a new array of the same shape as this NDArray filled with zeros.
-
copy
public ComplexNDArray<T> copy()
Description copied from interface:NDArray
Returns a copy of this NDArray.
-
apply
public ComplexNDArray<T> apply(UnaryOperator<org.apache.commons.math3.complex.Complex> func)
Description copied from interface:NDArray
Apply the given function to each element of the array, and override each entry with the calculated new values. Please note that entries might not be processed in a sequential order!- Specified by:
apply
in interfaceComplexNDArray<T extends Number>
- Specified by:
apply
in interfaceNDArray<T extends Number>
- Overrides:
apply
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
func
- function that receives the value of the current entry, and returns the new value- Returns:
- itself after the update
-
applyWithLinearIndices
public ComplexNDArray<T> applyWithLinearIndices(BiFunction<org.apache.commons.math3.complex.Complex,Integer,org.apache.commons.math3.complex.Complex> func)
Description copied from interface:NDArray
Apply the given function to each element of the array, and override each entry with the calculated new values. Please note that entries might not be processed in a sequential order!- Specified by:
applyWithLinearIndices
in interfaceComplexNDArray<T extends Number>
- Specified by:
applyWithLinearIndices
in interfaceNDArray<T extends Number>
- Overrides:
applyWithLinearIndices
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
func
- function that receives the value of the current entry and its linear index, and returns the new value- Returns:
- itself after the update
-
applyWithCartesianIndices
public ComplexNDArray<T> applyWithCartesianIndices(BiFunction<org.apache.commons.math3.complex.Complex,int[],org.apache.commons.math3.complex.Complex> func)
Description copied from interface:NDArray
Apply the given function to each element of the array, and override each entry with the calculated new values. Please note that entries might not be processed in a sequential order!- Specified by:
applyWithCartesianIndices
in interfaceComplexNDArray<T extends Number>
- Specified by:
applyWithCartesianIndices
in interfaceNDArray<T extends Number>
- Overrides:
applyWithCartesianIndices
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
func
- function that receives the value of the current entry and its Cartesian coordinate, and returns the new value- Returns:
- itself after the update
-
fillUsingLinearIndices
public ComplexNDArray<T> fillUsingLinearIndices(IntFunction<org.apache.commons.math3.complex.Complex> func)
Description copied from interface:NDArray
Apply the given function to each element of the array, and override each entry with the calculated new values. Please note that entries might not be processed in a sequential order!- Specified by:
fillUsingLinearIndices
in interfaceComplexNDArray<T extends Number>
- Specified by:
fillUsingLinearIndices
in interfaceNDArray<T extends Number>
- Overrides:
fillUsingLinearIndices
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
func
- function that receives the linear index of the current entry, and returns the new value- Returns:
- itself after the update
-
fillUsingCartesianIndices
public ComplexNDArray<T> fillUsingCartesianIndices(Function<int[],org.apache.commons.math3.complex.Complex> func)
Description copied from interface:NDArray
Apply the given function to each element of the array, and override each entry with the calculated new values. Please note that entries might not be processed in a sequential order!- Specified by:
fillUsingCartesianIndices
in interfaceComplexNDArray<T extends Number>
- Specified by:
fillUsingCartesianIndices
in interfaceNDArray<T extends Number>
- Overrides:
fillUsingCartesianIndices
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
func
- function that receives the Cartesian coordinate of the current entry, and returns the new value- Returns:
- itself after the update
-
set
public void set(Number value, int linearIndex)
Description copied from interface:NDArray
Sets the value of an element specified by linear indexing.Linear indexing: It selects the ith element using the column-major iteration order that linearly spans the entire array. in its particular dimension.
Negative indexing is supported, e.g. -1 refers to the last element, -2 refers to the item before the last one, etc.
-
set
public void set(Number value, int... indices)
Description copied from interface:NDArray
Sets the value of an element specified by cartesian indexing.Cartesian indexing: The ordinary way to index into an N-dimensional array is to use exactly N indices; each index selects the position(s) in its particular dimension.
Negative indexing is supported, e.g. assuming a 3×4 NDArray, index [2,-1] equals to [2,3], and [-1,-3] is an equivalent of [2,1].
-
setReal
public void setReal(Number value, int linearIndex)
Description copied from interface:ComplexNDArray
Sets the real part of an element specified by linear indexing.Linear indexing: It selects the ith element using the column-major iteration order that linearly spans the entire array.
Negative indexing is supported: e.g. -1 refers to the last element, -2 refers to the item before the last one, etc.
Note: If used on complex arrays, the imaginary part of the assigned element will be untouched.
- Specified by:
setReal
in interfaceComplexNDArray<T extends Number>
- Overrides:
setReal
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
value
- real value to be assigned as real part of some elementlinearIndex
- linear index
-
setImag
public void setImag(Number value, int linearIndex)
Description copied from interface:ComplexNDArray
Sets the imaginary part of an element specified by linear indexing.Linear indexing: It selects the ith element using the column-major iteration order that linearly spans the entire array.
Negative indexing is supported: e.g. -1 refers to the last element, -2 refers to the item before the last one, etc.
Note: If used on complex arrays, the imaginary part of the assigned element will be untouched.
- Specified by:
setImag
in interfaceComplexNDArray<T extends Number>
- Overrides:
setImag
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
value
- imaginary value to be assigned as imaginary part of some elementlinearIndex
- linear index
-
setReal
public void setReal(Number value, int... indices)
Description copied from interface:ComplexNDArray
Sets the real part of an element specified by cartesian indexing.Cartesian indexing: The ordinary way to index into an N-dimensional array is to use exactly N indices; each index selects the position(s) in its particular dimension.
Negative indexing is supported: e.g. assuming a 3×4 NDArray, index [2,-1] equals to [2,3], and [-1,-3] is an equivalent of [2,1].
Note: If used on complex arrays, the imaginary part of the assigned element will be untouched.
- Specified by:
setReal
in interfaceComplexNDArray<T extends Number>
- Overrides:
setReal
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
value
- real value to be assigned as real part of some elementindices
- cartesian coordinates
-
setImag
public void setImag(Number value, int... indices)
Description copied from interface:ComplexNDArray
Sets the imaginary part of an element specified by cartesian indexing.Cartesian indexing: The ordinary way to index into an N-dimensional array is to use exactly N indices; each index selects the position(s) in its particular dimension.
Negative indexing is supported: e.g. assuming a 3×4 NDArray, index [2,-1] equals to [2,3], and [-1,-3] is an equivalent of [2,1].
Note: If used on complex arrays, the imaginary part of the assigned element will be untouched.
- Specified by:
setImag
in interfaceComplexNDArray<T extends Number>
- Overrides:
setImag
in classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Parameters:
value
- imaginary value to be assigned as imaginary part of some elementindices
- cartesian coordinates
-
-