You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Mick (JIRA)" <ji...@apache.org> on 2008/05/06 22:34:57 UTC
[jira] Created: (MATH-204) BrentSolver throws
IllegalArgumentException
BrentSolver throws IllegalArgumentException
--------------------------------------------
Key: MATH-204
URL: https://issues.apache.org/jira/browse/MATH-204
Project: Commons Math
Issue Type: Bug
Affects Versions: 1.2
Environment: Win XP
Reporter: Mick
Priority: Minor
I am getting this exception:
java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (MATH-204) BrentSolver throws
IllegalArgumentException
Posted by "Mick (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mick updated MATH-204:
----------------------
Description:
I am getting this exception:
java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
The problem comes from this method:
public double solve(double min, double max) throws MaxIterationsExceededException,
FunctionEvaluationException {
clearResult();
verifyInterval(min, max);
double yMin = f.value(min);
double yMax = f.value(max);
// Verify bracketing
if (yMin * yMax >= 0) {
throw new IllegalArgumentException
("Function values at endpoints do not have different signs." +
" Endpoints: [" + min + "," + max + "]" +
" Values: [" + yMin + "," + yMax + "]");
}
// solve using only the first endpoint as initial guess
return solve(min, yMin, max, yMax, min, yMin);
}
was:
I am getting this exception:
java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
> BrentSolver throws IllegalArgumentException
> --------------------------------------------
>
> Key: MATH-204
> URL: https://issues.apache.org/jira/browse/MATH-204
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 1.2
> Environment: Win XP
> Reporter: Mick
> Priority: Minor
>
> I am getting this exception:
> java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
> at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
> at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
> The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
> According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
> The problem comes from this method:
> public double solve(double min, double max) throws MaxIterationsExceededException,
> FunctionEvaluationException {
>
> clearResult();
> verifyInterval(min, max);
>
> double yMin = f.value(min);
> double yMax = f.value(max);
>
> // Verify bracketing
> if (yMin * yMax >= 0) {
> throw new IllegalArgumentException
> ("Function values at endpoints do not have different signs." +
> " Endpoints: [" + min + "," + max + "]" +
> " Values: [" + yMin + "," + yMax + "]");
> }
> // solve using only the first endpoint as initial guess
> return solve(min, yMin, max, yMax, min, yMin);
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (MATH-204) BrentSolver throws
IllegalArgumentException
Posted by "Brent Worden (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brent Worden resolved MATH-204.
-------------------------------
Resolution: Fixed
Fix Version/s: 1.3
SVN 654100. added root checks for the endpoints.
> BrentSolver throws IllegalArgumentException
> --------------------------------------------
>
> Key: MATH-204
> URL: https://issues.apache.org/jira/browse/MATH-204
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 1.2
> Environment: Win XP
> Reporter: Mick
> Assignee: Brent Worden
> Priority: Minor
> Fix For: 1.3
>
>
> I am getting this exception:
> java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
> at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
> at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
> The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
> According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
> The problem comes from this method:
> public double solve(double min, double max) throws MaxIterationsExceededException,
> FunctionEvaluationException {
>
> clearResult();
> verifyInterval(min, max);
>
> double yMin = f.value(min);
> double yMax = f.value(max);
>
> // Verify bracketing
> if (yMin * yMax >= 0) {
> throw new IllegalArgumentException
> ("Function values at endpoints do not have different signs." +
> " Endpoints: [" + min + "," + max + "]" +
> " Values: [" + yMin + "," + yMax + "]");
> }
> // solve using only the first endpoint as initial guess
> return solve(min, yMin, max, yMax, min, yMin);
> }
> One way to fix it would be to add this code after the assignment of yMin and yMax:
> if (yMin ==0 || yMax == 0) {
> return 0;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (MATH-204) BrentSolver throws
IllegalArgumentException
Posted by "Mick (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MATH-204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mick updated MATH-204:
----------------------
Description:
I am getting this exception:
java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
The problem comes from this method:
public double solve(double min, double max) throws MaxIterationsExceededException,
FunctionEvaluationException {
clearResult();
verifyInterval(min, max);
double yMin = f.value(min);
double yMax = f.value(max);
// Verify bracketing
if (yMin * yMax >= 0) {
throw new IllegalArgumentException
("Function values at endpoints do not have different signs." +
" Endpoints: [" + min + "," + max + "]" +
" Values: [" + yMin + "," + yMax + "]");
}
// solve using only the first endpoint as initial guess
return solve(min, yMin, max, yMax, min, yMin);
}
One way to fix it would be to add this code after the assignment of yMin and yMax:
if (yMin ==0 || yMax == 0) {
return 0;
}
was:
I am getting this exception:
java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
The problem comes from this method:
public double solve(double min, double max) throws MaxIterationsExceededException,
FunctionEvaluationException {
clearResult();
verifyInterval(min, max);
double yMin = f.value(min);
double yMax = f.value(max);
// Verify bracketing
if (yMin * yMax >= 0) {
throw new IllegalArgumentException
("Function values at endpoints do not have different signs." +
" Endpoints: [" + min + "," + max + "]" +
" Values: [" + yMin + "," + yMax + "]");
}
// solve using only the first endpoint as initial guess
return solve(min, yMin, max, yMax, min, yMin);
}
> BrentSolver throws IllegalArgumentException
> --------------------------------------------
>
> Key: MATH-204
> URL: https://issues.apache.org/jira/browse/MATH-204
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 1.2
> Environment: Win XP
> Reporter: Mick
> Priority: Minor
>
> I am getting this exception:
> java.lang.IllegalArgumentException: Function values at endpoints do not have different signs. Endpoints: [-100000.0,1.7976931348623157E308] Values: [0.0,-101945.04630982173]
> at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:99)
> at org.apache.commons.math.analysis.BrentSolver.solve(BrentSolver.java:62)
> The exception should not be thrown with values [0.0,-101945.04630982173] because 0.0 is positive.
> According to Brent Worden, the algorithm should stop and return 0 as the root instead of throwing an exception.
> The problem comes from this method:
> public double solve(double min, double max) throws MaxIterationsExceededException,
> FunctionEvaluationException {
>
> clearResult();
> verifyInterval(min, max);
>
> double yMin = f.value(min);
> double yMax = f.value(max);
>
> // Verify bracketing
> if (yMin * yMax >= 0) {
> throw new IllegalArgumentException
> ("Function values at endpoints do not have different signs." +
> " Endpoints: [" + min + "," + max + "]" +
> " Values: [" + yMin + "," + yMax + "]");
> }
> // solve using only the first endpoint as initial guess
> return solve(min, yMin, max, yMax, min, yMin);
> }
> One way to fix it would be to add this code after the assignment of yMin and yMax:
> if (yMin ==0 || yMax == 0) {
> return 0;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.