package mikera.vectorz; import mikera.transformz.ATransform; /** * Interface for a scalar operator that transforms a double value to another double value * * @author Mike * */ public interface IOperator { /** * Applies the operator to a single value, returning the result * @param x * @return */ public double apply(double x); public void applyTo(AVector v); public void applyTo(AVector v, int start, int length); public void applyTo(double[] data, int start, int length); /** * Converts an operator into a corresponding transform that applies the operator to all elements of its input * @param dims * @return */ public ATransform getTransform(int dims); public Op getInverse(); }