org.apache.commons.math3.analysis.interpolation

## Class MicrosphereInterpolatingFunction

- java.lang.Object
- - org.apache.commons.math3.analysis.interpolation.MicrosphereInterpolatingFunction

- All Implemented Interfaces:
    MultivariateFunction

      public class MicrosphereInterpolatingFunction
      extends Object
      implements MultivariateFunction

  Interpolating function that implements the Microsphere Projection.
  Version:
    $Id: MicrosphereInterpolatingFunction.java 1379904 2012-09-01 23:54:52Z erans $

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private static class` | `MicrosphereInterpolatingFunction.MicrosphereSurfaceElement` Class for storing the accounting data needed to perform the microsphere projection.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private double` | `brightnessExponent` Exponent used in the power law that computes the weights of the sample data.
    `private int` | `dimension` Space dimension.
    `private List<MicrosphereInterpolatingFunction.MicrosphereSurfaceElement>` | `microsphere` Internal accounting data for the interpolation algorithm.
    `private Map<RealVector,Double>` | `samples` Sample data.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MicrosphereInterpolatingFunction(double[][] xval, double[] yval, int brightnessExponent, int microsphereElements, UnitSphereRandomVectorGenerator rand)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `private double` | `cosAngle(RealVector v, RealVector w)` Compute the cosine of the angle between 2 vectors.
    `double` | `value(double[] point)` Compute the value for the function at the given point.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### dimension

          private final int dimension

      Space dimension.

    - #### microsphere

          private final List<MicrosphereInterpolatingFunction.MicrosphereSurfaceElement> microsphere

      Internal accounting data for the interpolation algorithm. Each element of the list corresponds to one surface element of the microsphere.

    - #### brightnessExponent

          private final double brightnessExponent

      Exponent used in the power law that computes the weights of the sample data.

    - #### samples

          private final Map<RealVector,Double> samples

      Sample data.

  - ### Constructor Detail

    - #### MicrosphereInterpolatingFunction

          public MicrosphereInterpolatingFunction(double[][] xval,
                                          double[] yval,
                                          int brightnessExponent,
                                          int microsphereElements,
                                          UnitSphereRandomVectorGenerator rand)
                                           throws DimensionMismatchException,
                                                  NoDataException,
                                                  NullArgumentException

      Parameters:
        `xval` - Arguments for the interpolation points. `xval[i][0]` is the first component of interpolation point `i`, `xval[i][1]` is the second component, and so on until `xval[i][d-1]`, the last component of that interpolation point (where `dimension` is thus the dimension of the sampled space).
        `yval` - Values for the interpolation points.
        `brightnessExponent` - Brightness dimming factor.
        `microsphereElements` - Number of surface elements of the microsphere.
        `rand` - Unit vector generator for creating the microsphere.
      Throws:
        `DimensionMismatchException` - if the lengths of `yval` and `xval` (equal to `n`, the number of interpolation points) do not match, or the the arrays `xval[0]` ... `xval[n]`, have lengths different from `dimension`.
        `NoDataException` - if there an array has zero-length.
        `NullArgumentException` - if an argument is `null`.

  - ### Method Detail

    - #### value

          public double value(double[] point)

      Description copied from interface: `MultivariateFunction`
      Compute the value for the function at the given point.
      Specified by:
        `value` in interface `MultivariateFunction`
      Parameters:
        `point` - Interpolation point.
      Returns:
        the interpolated value.

    - #### cosAngle

          private double cosAngle(RealVector v,
                        RealVector w)

      Compute the cosine of the angle between 2 vectors.
      Parameters:
        `v` - Vector.
        `w` - Vector.
      Returns:
        the cosine of the angle between `v` and `w`.

Copyright (c) 2003-2013 Apache Software Foundation