Class PowerFunc

java.lang.Object
net.algart.math.functions.PowerFunc
All Implemented Interfaces:
Func
Direct Known Subclasses:
PowerFunc.Updatable

public abstract class PowerFunc extends Object implements Func

Power function: f(x0, x1) = scale*x0x1 or f(x0) = scale*x0c, where c and scale are constants. More precisely, the result of this function is:

The get(double...) method of the instance of this class requires at least 2 or 1 arguments (for the cases x0x1 and x0c correspondingly) and throws IndexOutOfBoundsException if the number of arguments is less. In a case of using getStrictBinaryInstance(double scale) / getStrictInstance(double c, double scale) methods, all calculations are performed with help of StrictMath class, so the result is absolutely identical on all platforms.

This class is immutable and thread-safe: there are no ways to modify settings of the created instance.

Author:
Daniel Alievsky
  • Method Details

    • getBinaryInstance

      public static PowerFunc getBinaryInstance(double scale)
      Returns an instance of this class, a case of binary function scale*x0x1, using Math.pow method.

      Parameters:
      scale - the constant scale.
      Returns:
      an instance of this class, a case of binary function, using Math.pow method.

    • getStrictBinaryInstance

      public static PowerFunc getStrictBinaryInstance(double scale)
      Returns an instance of this class, a case of binary function scale*x0x1, using StrictMath.pow method.

      Parameters:
      scale - the constant scale.
      Returns:
      an instance of this class, a case of binary function, using StrictMath.pow method.

    • getInstance

      public static PowerFunc getInstance(double c, double scale)
      Returns an instance of this class, a case of unary function scale*x0c, using Math.pow method.

      This method returns special optimized versions of this class for several popular values of cargument. In particular, there are optimized version for c = 1.0, 2.0, 3.0, 0.5, 1.0/3.0.

      Parameters:
      c - the constant c.
      scale - the constant scale.
      Returns:
      an instance of this class, a case of unary function, using Math.pow method.

    • getInstance

      public static PowerFunc getInstance(double c)
      Returns an instance of this class, a case of unary function x0c, using Math.pow method.

      Equivalent to getInstance(c,1.0).
      Parameters:
      c - the constant c.
      Returns:
      an instance of this class, a case of unary function, using Math.pow method.

    • getStrictInstance

      public static PowerFunc getStrictInstance(double c, double scale)
      Returns an instance of this class, a case of unary function scale*x0c, using StrictMath.pow method.

      This method returns special optimized versions of this class for several popular values of cargument. In particular, there are optimized version for c = 1.0, 2.0, 3.0, 0.5, 1.0/3.0.

      Parameters:
      c - the constant c.
      scale - the constant scale.
      Returns:
      an instance of this class, a case of unary function, using StrictMath.pow method.

    • getStrictInstance

      public static PowerFunc getStrictInstance(double c)
      Returns an instance of this class, a case of unary function x0c, using StrictMath.pow method.

      Equivalent to getStrictInstance(c,1.0).
      Parameters:
      c - the constant c.
      Returns:
      an instance of this class, a case of unary function, using StrictMath.pow method.

    • getUpdatableInstance

      public static PowerFunc.Updatable getUpdatableInstance(double c, double scale)
      Returns an instance of the updatable version of this class, a case of unary function scale*x0c, using Math.pow method.

      This method returns special optimized versions of this class for several popular values of cargument. In particular, there are optimized version for c = 1.0, 2.0, 3.0, 0.5, 1.0/3.0.

      Parameters:
      c - the constant c.
      scale - the constant scale.
      Returns:
      an instance of this class, a case of unary function, using Math.pow method.

    • getUpdatableStrictInstance

      public static PowerFunc.Updatable getUpdatableStrictInstance(double c, double scale)
      Returns an instance of the updatable version of this class, a case of unary function scale*x0c, using StrictMath.pow method.

      This method returns special optimized versions of this class for several popular values of cargument. In particular, there are optimized version for c = 1.0, 2.0, 3.0, 0.5, 1.0/3.0.

      Parameters:
      c - the constant c.
      scale - the constant scale.
      Returns:
      an instance of this class, a case of unary function, using StrictMath.pow method.

    • get

      public abstract double get(double... x)
      Description copied from interface: Func
      Returns the result of this function for the given arguments: f(x0, x1, ..., xx.length-1).

      This method must not change the values of x elements!

      Specified by:
      get in interface Func
      Parameters:
      x - the function arguments.
      Returns:
      the function result.
    • get

      public abstract double get()
      Description copied from interface: Func
      Equivalent to get(new double[0]). Provides better performance because it does not require Java array creation.
      Specified by:
      get in interface Func
      Returns:
      the function result.
    • get

      public abstract double get(double x0)
      Description copied from interface: Func
      Equivalent to get(new double[] {x0}). Provides better performance because it does not require Java array creation.
      Specified by:
      get in interface Func
      Parameters:
      x0 - the function argument.
      Returns:
      the function result.
    • get

      public abstract double get(double x0, double x1)
      Description copied from interface: Func
      Equivalent to get(new double[] {x0, x1}). Provides better performance because it does not require Java array creation.
      Specified by:
      get in interface Func
      Parameters:
      x0 - the first function argument.
      x1 - the second function argument.
      Returns:
      the function result.
    • get

      public abstract double get(double x0, double x1, double x2)
      Description copied from interface: Func
      Equivalent to get(new double[] {x0, x1, x2}). Provides better performance because it does not require Java array creation.
      Specified by:
      get in interface Func
      Parameters:
      x0 - the first function argument.
      x1 - the second function argument.
      x2 - the third function argument.
      Returns:
      the function result.
    • toString

      public String toString()
      Returns a brief string description of this object.
      Overrides:
      toString in class Object
      Returns:
      a brief string description of this object.