Documentation of 'org.spaceroots.mantissa.functions.vectorial.ComputableFunctionSampler' Java class
ComputableFunctionSampler
org.spaceroots.mantissa.functions.vectorial

Class ComputableFunctionSampler

  • All Implemented Interfaces:
    java.io.Serializable, SampledFunction


    public class ComputableFunctionSampler
    extends java.lang.Object
    implements SampledFunction, java.io.Serializable
    This class is a wrapper allowing to sample a ComputableFunction.

    The sample produced is a regular sample. It can be specified by several means :

    • from an initial point a step and a number of points
    • from a range and a number of points
    • from a range and a step between points.
    In the latter case, the step can optionaly be adjusted in order to have the last point exactly at the upper bound of the range.

    The sample points are computed on demand, they are not stored. This allow to use this method for very large sample with little memory overhead. The drawback is that if the same sample points are going to be requested several times, they will be recomputed each time. In this case, the user should consider storing the points by some other means.

    See Also:
    ComputableFunction, Serialized Form
    • Constructor Detail

      • ComputableFunctionSampler

        public ComputableFunctionSampler(ComputableFunction function,
                                         double begin,
                                         double step,
                                         int n)
        Constructor. Build a sample from an ComputableFunction. Beware of the classical off-by-one problem ! If you want to have a sample like this : 0.0, 0.1, 0.2 ..., 1.0, then you should specify step = 0.1 and n = 11 (not n = 10).
        Parameters:
        begin - beginning of the range (will be the abscissa of the first point)
        step - step between points
        n - number of points
      • ComputableFunctionSampler

        public ComputableFunctionSampler(ComputableFunction function,
                                         double[] range,
                                         int n)
        Constructor. Build a sample from an ComputableFunction.
        Parameters:
        range - abscissa range (from range [0] to range [1])
        n - number of points
      • ComputableFunctionSampler

        public ComputableFunctionSampler(ComputableFunction function,
                                         double[] range,
                                         double step,
                                         boolean adjustStep)
        Constructor. Build a sample from an ComputableFunction.
        Parameters:
        range - abscissa range (from range [0] to range [1])
        step - step between points
        adjustStep - if true, the step is reduced in order to have the last point of the sample exactly at range [1], if false the last point will be between range [1] - step and range [1]
    • Method Detail

      • size

        public int size()
        Description copied from interface: SampledFunction
        Get the number of points in the sample.
        Specified by:
        size in interface SampledFunction
        Returns:
        number of points in the sample
      • getDimension

        public int getDimension()
        Description copied from interface: SampledFunction
        Get the dimension of the vectorial values of the function.
        Specified by:
        getDimension in interface SampledFunction
        Returns:
        dimension
      • samplePointAt

        public VectorialValuedPair samplePointAt(int index)
                                          throws java.lang.ArrayIndexOutOfBoundsException,
                                                 FunctionException
        Description copied from interface: SampledFunction
        Get the abscissa and value of the sample at the specified index.
        Specified by:
        samplePointAt in interface SampledFunction
        Parameters:
        index - index in the sample, should be between 0 and SampledFunction.size() - 1
        Returns:
        abscissa and value of the sample at the specified index
        Throws:
        java.lang.ArrayIndexOutOfBoundsException - if the index is wrong
        FunctionException - if an eventual underlying function throws one

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.