Class AbstractComplexNDArray<T extends Number>
- java.lang.Object
-
- io.github.hakkelt.ndarrays.internal.AbstractNDArray<org.apache.commons.math3.complex.Complex,T>
-
- io.github.hakkelt.ndarrays.AbstractComplexNDArray<T>
-
- All Implemented Interfaces:
ComplexNDArray<T>
,NDArray<org.apache.commons.math3.complex.Complex>
,Iterable<org.apache.commons.math3.complex.Complex>
- Direct Known Subclasses:
BasicComplexDoubleNDArray
,BasicComplexFloatNDArray
public abstract class AbstractComplexNDArray<T extends Number> extends AbstractNDArray<org.apache.commons.math3.complex.Complex,T> implements ComplexNDArray<T>
Abstract NDArray class for Complex values.
-
-
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.String
dataTypeAsString()
Returns a String representation of element type.Class<?>
dtype()
Returns the type of values returned by get method.Class<?>
dtype2()
Returns the type of values returned by getReal and getImag methods.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 arrayvoid
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.AbstractNDArray
accumulate, applyOnSlices, contains, contentToString, contentToString, equals, forEach, forEachWithCartesianIndices, forEachWithLinearIndices, get, get, getImag, getImag, getReal, getReal, hashCode, iterator, length, mapOnSlices, 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, 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, reduceComplexSlices, 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, 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
-
dtype
public Class<?> dtype()
Description copied from interface:NDArray
Returns the type of values returned by get method. Possible values:Float.class
,Double.class
,Complex.class
Byte.class
,Short.class
,Integer.class
,Long.class
.
-
dtype2
public Class<?> dtype2()
Description copied from interface:ComplexNDArray
Returns the type of values returned by getReal and getImag methods. Possible values:Float.class
,Double.class
.- Specified by:
dtype2
in interfaceComplexNDArray<T extends Number>
- Returns:
- the type of values returned by get method.
-
dataTypeAsString
public String dataTypeAsString()
Description copied from interface:NDArray
Returns a String representation of element type.- Specified by:
dataTypeAsString
in interfaceNDArray<T extends Number>
- Returns:
- "Byte", "Short", "Integer", "Long", "Float", "Double", "Complex Float", or "Complex Double" depending on the type of array
-
copy
public ComplexNDArray<T> copy()
Description copied from interface:NDArray
Returns a copy of this NDArray.
-
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 classAbstractNDArray<org.apache.commons.math3.complex.Complex,T extends Number>
- Returns:
- a new array of the same shape as this NDArray filled with zeros.
-
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
-
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 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
-
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
-
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
-
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
-
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
-
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
-
-