org.apache.commons.math3.analysis.interpolation
Class MicrosphereInterpolatingFunction

java.lang.Object
  extended by org.apache.commons.math3.analysis.interpolation.MicrosphereInterpolatingFunction
All Implemented Interfaces:
MultivariateFunction

public class MicrosphereInterpolatingFunction
extends java.lang.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
private static class MicrosphereInterpolatingFunction.MicrosphereSurfaceElement
          Class for storing the accounting data needed to perform the microsphere projection.
 
Field Summary
private  double brightnessExponent
          Exponent used in the power law that computes the weights of the sample data.
private  int dimension
          Space dimension.
private  java.util.List<MicrosphereInterpolatingFunction.MicrosphereSurfaceElement> microsphere
          Internal accounting data for the interpolation algorithm.
private  java.util.Map<RealVector,java.lang.Double> samples
          Sample data.
 
Constructor Summary
MicrosphereInterpolatingFunction(double[][] xval, double[] yval, int brightnessExponent, int microsphereElements, UnitSphereRandomVectorGenerator rand)
           
 
Method Summary
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 java.util.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 java.util.Map<RealVector,java.lang.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