org.apache.commons.math3.analysis.solvers

## Enum AllowedSolution

- java.lang.Object
- - java.lang.Enum<AllowedSolution>
  - - org.apache.commons.math3.analysis.solvers.AllowedSolution

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable<AllowedSolution>

    public enum AllowedSolution
    extends java.lang.Enum<AllowedSolution>

The kinds of solutions that a `(bracketed univariate real) root-finding algorithm` may accept as solutions. This basically controls whether or not under-approximations and over-approximations are allowed.

If all solutions are accepted (`ANY_SIDE`), then the solution that the root-finding algorithm returns for a given root may be equal to the actual root, but it may also be an approximation that is slightly smaller or slightly larger than the actual root. Root-finding algorithms generally only guarantee that the returned solution is within the requested tolerances. In certain cases however, in particular for `state events` of `ODE solvers`, it may be necessary to guarantee that a solution is returned that lies on a specific side the solution.

Since:
  3.0
Version:
  $Id: AllowedSolution.java 1364387 2012-07-22 18:14:11Z tn $
See Also:
  `BracketedUnivariateSolver`

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`ABOVE_SIDE` Only solutions for which values are greater than or equal to zero are acceptable as solutions for root-finding.
`ANY_SIDE` There are no additional side restriction on the solutions for root-finding.
`BELOW_SIDE` Only solutions for which values are less than or equal to zero are acceptable as solutions for root-finding.
`LEFT_SIDE` Only solutions that are less than or equal to the actual root are acceptable as solutions for root-finding.
`RIGHT_SIDE` Only solutions that are greater than or equal to the actual root are acceptable as solutions for root-finding.

### Method Summary

Methods
`static AllowedSolution` `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
`static AllowedSolution[]` `values()` Returns an array containing the constants of this enum type, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

`getClass, notify, notifyAll, wait, wait, wait`

### Enum Constant Detail

#### ANY_SIDE

    public static final AllowedSolution ANY_SIDE

There are no additional side restriction on the solutions for root-finding. That is, both under-approximations and over-approximations are allowed. So, if a function f(x) has a root at x = x0, then the root-finding result s may be smaller than x0, equal to x0, or greater than x0.

#### LEFT_SIDE

    public static final AllowedSolution LEFT_SIDE

Only solutions that are less than or equal to the actual root are acceptable as solutions for root-finding. In other words, over-approximations are not allowed. So, if a function f(x) has a root at x = x0, then the root-finding result s must satisfy s <= x0.

#### RIGHT_SIDE

    public static final AllowedSolution RIGHT_SIDE

Only solutions that are greater than or equal to the actual root are acceptable as solutions for root-finding. In other words, under-approximations are not allowed. So, if a function f(x) has a root at x = x0, then the root-finding result s must satisfy s >= x0.

#### BELOW_SIDE

    public static final AllowedSolution BELOW_SIDE

Only solutions for which values are less than or equal to zero are acceptable as solutions for root-finding. So, if a function f(x) has a root at x = x0, then the root-finding result s must satisfy f(s) <= 0.

#### ABOVE_SIDE

    public static final AllowedSolution ABOVE_SIDE

Only solutions for which values are greater than or equal to zero are acceptable as solutions for root-finding. So, if a function f(x) has a root at x = x0, then the root-finding result s must satisfy f(s) >= 0.

### Method Detail

#### values

    public static AllowedSolution[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (AllowedSolution c : AllowedSolution.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static AllowedSolution valueOf(java.lang.String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
  `java.lang.NullPointerException` - if the argument is null