All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nd4j.linalg.ops.reduceops.complex.BaseScalarOp Maven / Gradle / Ivy

There is a newer version: 1.0.0-M2.1
Show newest version
package org.nd4j.linalg.ops.reduceops.complex;

import org.nd4j.linalg.api.complex.IComplexNDArray;
import org.nd4j.linalg.api.complex.IComplexNumber;

/**
 *
 * Abstract class for scalar operations
 * @author Adam Gibson
 */
public abstract class BaseScalarOp implements ScalarOp {

    protected IComplexNumber startingValue;


    public BaseScalarOp(IComplexNumber startingValue) {
        this.startingValue = startingValue;
    }


    @Override
    public IComplexNumber apply(IComplexNDArray input) {
        IComplexNDArray doNDArray = input.isVector() ? input : input.linearView();
        IComplexNumber start = startingValue;
        for(int i = 0; i < doNDArray.length(); i++)
            start = accumulate(doNDArray,i,start);
        return start;
    }

    public abstract IComplexNumber accumulate(IComplexNDArray arr,int i,IComplexNumber soFar);


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy