Class MicrosphereProjectionInterpolator
java.lang.Object
org.hipparchus.analysis.interpolation.MicrosphereProjectionInterpolator
- All Implemented Interfaces:
MultivariateInterpolator
Interpolator that implements the algorithm described in
William Dudziak's
MS thesis.
-
Constructor Summary
ConstructorDescriptionMicrosphereProjectionInterpolator
(int dimension, int elements, double maxDarkFraction, double darkThreshold, double background, double exponent, boolean sharedSphere, double noInterpolationTolerance) Create a microsphere interpolator.MicrosphereProjectionInterpolator
(InterpolatingMicrosphere microsphere, double exponent, boolean sharedSphere, double noInterpolationTolerance) Create a microsphere interpolator. -
Method Summary
Modifier and TypeMethodDescriptioninterpolate
(double[][] xval, double[] yval) Computes an interpolating function for the data set.
-
Constructor Details
-
MicrosphereProjectionInterpolator
public MicrosphereProjectionInterpolator(int dimension, int elements, double maxDarkFraction, double darkThreshold, double background, double exponent, boolean sharedSphere, double noInterpolationTolerance) Create a microsphere interpolator.- Parameters:
dimension
- Space dimension.elements
- Number of surface elements of the microsphere.exponent
- Exponent used in the power law that computes themaxDarkFraction
- Maximum fraction of the facets that can be dark. If the fraction of "non-illuminated" facets is larger, no estimation of the value will be performed, and thebackground
value will be returned instead.darkThreshold
- Value of the illumination below which a facet is considered dark.background
- Value returned when themaxDarkFraction
threshold is exceeded.sharedSphere
- Whether the sphere can be shared among the interpolating function instances. Iftrue
, the instances will share the same data, and thus will not be thread-safe.noInterpolationTolerance
- When the distance between an interpolated point and one of the sample points is less than this value, no interpolation will be performed (the value of the sample will be returned).- Throws:
MathIllegalArgumentException
- ifdimension <= 0
orelements <= 0
.MathIllegalArgumentException
- ifexponent < 0
.MathIllegalArgumentException
- ifdarkThreshold < 0
.MathIllegalArgumentException
- ifmaxDarkFraction
does not belong to the interval[0, 1]
.
-
MicrosphereProjectionInterpolator
public MicrosphereProjectionInterpolator(InterpolatingMicrosphere microsphere, double exponent, boolean sharedSphere, double noInterpolationTolerance) throws MathIllegalArgumentException Create a microsphere interpolator.- Parameters:
microsphere
- Microsphere.exponent
- Exponent used in the power law that computes the weights (distance dimming factor) of the sample data.sharedSphere
- Whether the sphere can be shared among the interpolating function instances. Iftrue
, the instances will share the same data, and thus will not be thread-safe.noInterpolationTolerance
- When the distance between an interpolated point and one of the sample points is less than this value, no interpolation will be performed (the value of the sample will be returned).- Throws:
MathIllegalArgumentException
- ifexponent < 0
.
-
-
Method Details
-
interpolate
public MultivariateFunction interpolate(double[][] xval, double[] yval) throws MathIllegalArgumentException, NullArgumentException Computes an interpolating function for the data set.- Specified by:
interpolate
in interfaceMultivariateInterpolator
- Parameters:
xval
- the arguments for the interpolation points.xval[i][0]
is the first component of interpolation pointi
,xval[i][1]
is the second component, and so on untilxval[i][d-1]
, the last component of that interpolation point (whered
is thus the dimension of the space).yval
- the values for the interpolation points- Returns:
- a function which interpolates the data set
- Throws:
MathIllegalArgumentException
- if the space dimension of the given samples does not match the space dimension of the microsphere.NullArgumentException
- if the arguments arenull
.
-