Class BasicComplexDoubleNDArray

  • All Implemented Interfaces:
    ComplexNDArray<Double>, NDArray<org.apache.commons.math3.complex.Complex>, Iterable<org.apache.commons.math3.complex.Complex>

    public class BasicComplexDoubleNDArray
    extends AbstractComplexNDArray<Double>
    Reference implementation for the NDArray of complex double (single-precision, 32 bit doubleing point) values.
    • Constructor Detail

      • BasicComplexDoubleNDArray

        public BasicComplexDoubleNDArray​(int... shape)
        Simple constructor that defines only the shape of the NDArray and fills it with zeros.
        Parameters:
        shape - dimensions / shape of the NDArray
      • BasicComplexDoubleNDArray

        public BasicComplexDoubleNDArray​(NDArray<?> array)
        Copy constructor.
        Parameters:
        array - NDArray from which entries are copied from.
      • BasicComplexDoubleNDArray

        public BasicComplexDoubleNDArray​(NDArray<? extends Number> real,
                                         NDArray<? extends Number> imag)
        Copy constructor.
        Parameters:
        real - NDArray from which real part of entries are copied from.
        imag - NDArray from which imaginary part of entries are copied from.
    • Method Detail

      • of

        public static ComplexNDArray<Double> of​(byte... array)
        Factory method that creates a ComplexNDArray from a list or 1D array of byte values.
        Parameters:
        array - a list or 1D array of byte values from which a BasicComplexDoubleNDArray is created.
        Returns:
        a ComplexNDArray created from a list or 1D array of byte values
      • of

        public static ComplexNDArray<Double> of​(short... array)
        Factory method that creates a ComplexNDArray from a list or 1D array of short values.
        Parameters:
        array - a list or 1D array of short values from which a BasicComplexDoubleNDArray is created.
        Returns:
        a ComplexNDArray created from a list or 1D array of short values
      • of

        public static ComplexNDArray<Double> of​(int... array)
        Factory method that creates a ComplexNDArray from a list or 1D array of int values.
        Parameters:
        array - a list or 1D array of int values from which a BasicComplexDoubleNDArray is created.
        Returns:
        a ComplexNDArray created from a list or 1D array of int values
      • of

        public static ComplexNDArray<Double> of​(long... array)
        Factory method that creates a ComplexNDArray from a list or 1D array of long values.
        Parameters:
        array - a list or 1D array of long values from which a BasicComplexDoubleNDArray is created.
        Returns:
        a ComplexNDArray created from a list or 1D array of long values
      • of

        public static ComplexNDArray<Double> of​(float... array)
        Factory method that creates a ComplexNDArray from a list or 1D array of float values.
        Parameters:
        array - a list or 1D array of float values from which a BasicComplexDoubleNDArray is created.
        Returns:
        a ComplexNDArray created from a list or 1D array of float values
      • of

        public static ComplexNDArray<Double> of​(double... array)
        Factory method that creates a ComplexNDArray from a list or 1D array of double values.
        Parameters:
        array - a list or 1D array of double values from which a BasicComplexDoubleNDArray is created.
        Returns:
        a ComplexNDArray created from a list or 1D array of double values
      • of

        public static ComplexNDArray<Double> of​(Object[] realOrComplex)
        Factory method that creates an NDArray from a multi-dimensional array of numeric values (including Complex type).
        Parameters:
        realOrComplex - a multi-dimensional array of numeric values (including Complex type) from which a BasicComplexDoubleNDArray is created.
        Returns:
        an NDArray created from a multi-dimensional array of numeric values
      • of

        public static ComplexNDArray<Double> of​(byte[] real,
                                                byte[] imag)
        Factory method that creates a ComplexNDArray from two 1D array of byte values.
        Parameters:
        real - a 1D array of byte values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a 1D array of byte values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two 1D array of byte values
      • of

        public static ComplexNDArray<Double> of​(short[] real,
                                                short[] imag)
        Factory method that creates a ComplexNDArray from two 1D array of short values.
        Parameters:
        real - a 1D array of short values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a 1D array of short values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two 1D array of short values
      • of

        public static ComplexNDArray<Double> of​(int[] real,
                                                int[] imag)
        Factory method that creates a ComplexNDArray from two 1D array of int values.
        Parameters:
        real - a 1D array of int values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a 1D array of int values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two 1D array of int values
      • of

        public static ComplexNDArray<Double> of​(long[] real,
                                                long[] imag)
        Factory method that creates a ComplexNDArray from two 1D array of long values.
        Parameters:
        real - a 1D array of long values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a 1D array of long values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two 1D array of long values
      • of

        public static ComplexNDArray<Double> of​(float[] real,
                                                float[] imag)
        Factory method that creates a ComplexNDArray from two 1D array of float values.
        Parameters:
        real - a 1D array of float values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a 1D array of float values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two 1D array of float values
      • of

        public static ComplexNDArray<Double> of​(double[] real,
                                                double[] imag)
        Factory method that creates a ComplexNDArray from two 1D array of double values.
        Parameters:
        real - a 1D array of double values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a 1D array of double values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two 1D array of double values
      • of

        public static ComplexNDArray<Double> of​(Object[] real,
                                                Object[] imag)
        Factory method that creates a ComplexNDArray from two multi-dimensional arrays of numeric values.
        Parameters:
        real - a multi-dimensional array of numeric values from which the real part of the created BasicComplexDoubleNDArray is read.
        imag - a multi-dimensional array of numeric values from which the imaginary part of the created BasicComplexDoubleNDArray is read.
        Returns:
        a ComplexNDArray created from the two multi-dimensional arrays of numeric values
      • ofMagnitudePhase

        public static ComplexNDArray<Double> ofMagnitudePhase​(Object[] magnitude,
                                                              Object[] phase)
        Factory method that creates a ComplexNDArray from two multi-dimensional arrays of numeric values.
        Parameters:
        magnitude - a multi-dimensional array of numeric values that stores the magnitude of the complex array to be created.
        phase - a multi-dimensional array of numeric values that stores the phase of the complex array to be created.
        Returns:
        a ComplexNDArray created from the two multi-dimensional arrays of numeric values
      • ofMagnitudePhase

        public static ComplexNDArray<Double> ofMagnitudePhase​(NDArray<? extends Number> magnitude,
                                                              NDArray<? extends Number> phase)
        Factory method that creates a ComplexNDArray from two multi-dimensional arrays of numeric values.
        Parameters:
        magnitude - a real-valued NDArray that stores the magnitude of the complex array to be created.
        phase - a real-valued NDArray that stores the phase of the complex array to be created.
        Returns:
        a ComplexNDArray created from the two multi-dimensional arrays of numeric values
      • readFromFile

        public static BasicComplexDoubleNDArray readFromFile​(File file)
                                                      throws IOException
        Load the content of the given file into a new BasicByteNDArray.

        Only the files written by function writeToFile can be loaded by this function.

        • Example:
        
         ComplexNDArray<Double> array = new BasicComplexDoubleNDArray(128, 128).fill(5);
         array.writeToFile(new File("array.nda"));
         ComplexNDArray<Double> array2 = BasicComplexDoubleNDArray.readFromFile(new File("array.nda"));
         assertEquals(array, array2);
         
        Parameters:
        file - file from which the content of the NDArray is read (the extension of the file can be arbitrary, but .nda is recommended)
        Returns:
        a new BasicByteNDArray whose shape and content is loaded from the given file
        Throws:
        IOException - when the given file cannot be opened for read
      • copyFrom

        public ComplexNDArray<Double> copyFrom​(NDArray<?> array)
        Description copied from interface: NDArray
        Updates this NDArray with the elements of the NDArray given as parameter.

        Note: the parameter NDArray must have the same shape and this NDArray!

        Parameters:
        array - NDArray from which values are copied to this NDArray
        Returns:
        this NDArray
      • getNamePrefix

        public String getNamePrefix()
        Description copied from interface: NDArray
        Returns a string that identifies the implementation behind this current object. The output of the toString() function starts with this string.
        Returns:
        a string that identifies the implementation
      • equals

        public boolean equals​(Object other)
        Description copied from interface: NDArray
        Compares the specified object with this NDArray for equality. Two arrays are equal, if they are both real or both complex, and they are element-wise equal. If the specified object is not NDArray then the function returns false.
        Specified by:
        equals in interface NDArray<org.apache.commons.math3.complex.Complex>
        Overrides:
        equals in class AbstractNDArray<org.apache.commons.math3.complex.Complex,​Double>
        Parameters:
        other - Object to be compared for equality
        Returns:
        true if the specified object equals with this NDArray
      • hashCode

        @Generated
        public int hashCode()
        Description copied from interface: NDArray
        This method is unsupported because NDArrays should not be used as keys in hash-based collections.
        Specified by:
        hashCode in interface NDArray<org.apache.commons.math3.complex.Complex>
        Overrides:
        hashCode in class AbstractNDArray<org.apache.commons.math3.complex.Complex,​Double>
        Returns:
        always throws UnsupportedOperationsException