public class DurationFunctionExtremumIndicated extends DurationFunctionFinding
DurationFunctionExplorer
that a function has a local extremum
indicated by three samples.Constructor and Description |
---|
DurationFunctionExtremumIndicated(DurationFunctionExplorer explorer,
DurationFunctionDetails function,
Duration leftDuration,
double leftValue,
Duration middleDuration,
double middleValue,
Duration rightDuration,
double rightValue)
Initializes a new instance.
|
Modifier and Type | Method and Description |
---|---|
DurationFunctionExtremumFound |
exploreExtremumForCrossing(DurationFunctionThresholdDetails closestThreshold,
DurationFunctionThresholdDetails furthestThreshold,
boolean[] converged)
Searches an extremum until either the precise date at which the function reaches its extremum is found, or it is
determined that this extremum will not result in a crossing.
|
DurationFunctionExtremumFound |
findPreciseExtremum()
Finds the precise date at which the function reaches its extremum.
|
DurationFunctionExplorer |
getExplorer()
Gets the
DurationFunctionExplorer that found this indicated extremum. |
ExtremumType |
getExtremumType()
Gets a value indicating whether the extremum is a minimum or maximum.
|
DurationFunctionDetails |
getFunction()
Gets the function for which the extremum is indicated.
|
boolean |
getIsEndpointExtremum()
Gets a value indicating whether or not this extremum occurred at one of the endpoints
of an interval explored with
DurationFunctionExplorer.explore(Duration,Duration) . |
Duration |
getLeftDuration()
Gets the left date.
|
FunctionSegmentSlope |
getLeftSegmentSlope()
Gets the slope between the left and middle samples.
|
double |
getLeftValue()
Gets the left function value.
|
Duration |
getMiddleDuration()
Gets the middle date.
|
double |
getMiddleValue()
Gets the middle function value.
|
Duration |
getRightDuration()
Gets the right date.
|
FunctionSegmentSlope |
getRightSegmentSlope()
Gets the slope between the middle and right samples.
|
double |
getRightValue()
Gets the right function value.
|
public DurationFunctionExtremumIndicated(DurationFunctionExplorer explorer, DurationFunctionDetails function, @Nonnull Duration leftDuration, double leftValue, @Nonnull Duration middleDuration, double middleValue, @Nonnull Duration rightDuration, double rightValue)
explorer
- The explorer that found the indicated extremum.function
- The function for which an extremum was identified.leftDuration
- The left duration.leftValue
- The left function value.middleDuration
- The middle duration.middleValue
- The middle function value.rightDuration
- The right duration.rightValue
- The right function value.public final DurationFunctionExplorer getExplorer()
DurationFunctionExplorer
that found this indicated extremum.public final DurationFunctionDetails getFunction()
public final double getLeftValue()
public final double getMiddleValue()
public final double getRightValue()
@Nonnull public final FunctionSegmentSlope getLeftSegmentSlope()
@Nonnull public final FunctionSegmentSlope getRightSegmentSlope()
@Nonnull public final ExtremumType getExtremumType()
public final boolean getIsEndpointExtremum()
DurationFunctionExplorer.explore(Duration,Duration)
.
Endpoint extrema do not necessarily indicate places in the function have a derivative of zero,
but they can still be global minima or maxima over the evaluation interval.@Nonnull public final DurationFunctionExtremumFound findPreciseExtremum()
@Nonnull public final DurationFunctionExtremumFound exploreExtremumForCrossing(DurationFunctionThresholdDetails closestThreshold, DurationFunctionThresholdDetails furthestThreshold, @Nonnull boolean[] converged)
Note that if the precise location of the extremum is not found due to it not being a candidate for a threshold crossing
then a LocalExtremumFound
(add
/ remove
) event will not be fired.
closestThreshold
- The threshold which is most likely to be crossed by this extremum, such that if this threshold is not crossed
by the extremum no other threshold will be crossed.furthestThreshold
- The threshold which is least likely to be crossed by this extremum, such that if this threshold is crossed
by the extremum all other thresholds will be crossed.converged
- This parameter will be set to true if returned extremum has converged, either because it resulted in a crossing or because
it converged before it could be definitely determined to not be likely to cross the threshold.