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

com.meliorbis.numerics.function.DifferentiableFunction Maven / Gradle / Ivy

Go to download

A library for working with large multi-dimensional arrays and the functions they represent

There is a newer version: 1.2
Show newest version
package com.meliorbis.numerics.function;

/**
 * Interface for functions that are differentiable
 *
 * @author Tobias Grasl
 */
public interface DifferentiableFunction extends Function
{
    /**
     * Returns partial derivative of the function along the given dimension as a function
     * across the range of this function
     *
     * @param dimension_ The dimension along which to evaluate the derivative
     *
     * @return A function that is the derivative of this one, with the same domain
     */
    Function partialDerivative(int dimension_);

    /**
     * Returns partial derivative of the function along the given dimension at the
     * point specified, if any.
     *
     * Not that the array at may include up to the number of members as there are dimensions
     * in the function. Any value that is NaN (or similar) indicates not to evaluate in that
     * dimension but to include that dimension in the returned function. If at_ is shorter than
     * the bnumber of dimensions then the additional dimensions are treated as though NaN had
     * been passed
     *
     * @param dimension_ The dimension along which to evaluate the derivative
     * @param at_ The (perhaps partially defined, or not at all) point at which to evaluate the
     *            derivative.
     *
     * @return A function that is the derivative of this one in the requested dimension at the
     * requested point. The number of dimensions of the function is equal to the number of points
     * dimensions not given a valid value in at_. The output dimension is the same as the output of
     * this function.
     */
    Function partialDerivative(int dimension_, @SuppressWarnings("unchecked") I... at_);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy