7158 Commits

Author SHA1 Message Date
Gilles Sadowski
dd0acaa9ff Relax expectations (unit test). 2021-08-27 19:15:17 +02:00
Gilles Sadowski
6f33d5f0a7 Fix incorrect usage of "ROSENBROCK" test function (unit tests). 2021-08-27 18:35:47 +02:00
Gilles Sadowski
cc5ae51f98 Favouring the "expanded" simplex over the "reflected" one.
This modification decreases the number of function evaluations in several
test cases. Note however that the original description of the algorithm
uses the strict inequality...
2021-08-27 17:24:51 +02:00
Gilles Sadowski
f1ad9d1b00 Simplex search in higher-dimensional cases (unit test). 2021-08-27 05:37:49 +02:00
Gilles Sadowski
ca826ba76b Add (back) "POwELL" standard test function for optimizers. 2021-08-26 23:56:42 +02:00
Gilles Sadowski
f58da4abf5 Use default SA setup in "SimplexOptimizerTest" (unit test).
A single additional search finds the optimum of the test functions.
2021-08-26 02:05:15 +02:00
Gilles Sadowski
06ec7ad0bc MATH-1622: Simulated annealing entails at least one additional search.
Also ensure that the "best list" contains at least two points.
2021-08-26 01:39:46 +02:00
Gilles Sadowski
677f5f7a3f Input files for "SimplexOptimizerTest" (unit tests). 2021-08-25 01:51:34 +02:00
Gilles Sadowski
2ccdf8d002 MATH-1622: Simulated annealing variant of "NelderMeadTransform". 2021-08-25 01:50:28 +02:00
Gilles Sadowski
80a7eb1832 Change how simulated annealing affects the transformed simplex (cf. MATH-1622).
Compared with commit 97462b1a1b6f64ab10e06db331d5b6762d979aab, this commit is
more consistent with assumptions of the original (non-hybridized) algorithm.
2021-08-24 15:46:10 +02:00
Gilles Sadowski
c21a810558 Useless local variable. 2021-08-24 04:09:42 +02:00
Gilles Sadowski
f8d7476614 Input files for "SimplexOptimizerTest" (unit tests). 2021-08-24 01:28:43 +02:00
Gilles Sadowski
97462b1a1b MATH-1622: Simulated annealing variant of "MultiDirectionalTransform". 2021-08-24 01:18:16 +02:00
Alex Herbert
47904caeb8 Update exception fr locale to match changes to en locale 2021-08-23 07:40:55 +01:00
Alex Herbert
21f8008108 MATH-1627: Throw an exception when column or row sums are zero. 2021-08-22 21:43:52 +01:00
Alex Herbert
991314d461 Remove incorrect localization format for zero exception 2021-08-22 21:43:52 +01:00
Alex Herbert
dc639967c2 Fix localization formats used by ZeroException.
The ZeroException preprends zero to the arguments. The {0} corresponds
to zero. All arguments to be formatted must start at {1}.
2021-08-22 21:43:52 +01:00
Gilles Sadowski
fb314ef3df Spurious "throws" clauses. 2021-08-22 03:46:25 +02:00
Gilles Sadowski
9bb5791906 Redundant inner class. 2021-08-22 03:28:37 +02:00
Gilles Sadowski
f466637d82 Merge branch 'master' of https://gitbox.apache.org/repos/asf/commons-math 2021-08-22 02:32:10 +02:00
Gilles Sadowski
78fbc5f07c Update script for visual check of "SimplexOptimizerTest" debugging output.
Allow displaying negative values of the objective function.
2021-08-22 02:30:01 +02:00
Gilles Sadowski
1e7bce134f Adapt input files for "SimplexOptimizerTest" (unit tests).
The current tests are "baseline" (2D) cases.
Further work should check degradation with increased dimensionality.
2021-08-22 02:14:53 +02:00
Gilles Sadowski
14ebd93426 Relax expected number of evaluations (unit test).
Optimization is sensitive to the change from "AccurateMath" to "Math"
for computing the "pow" function used in "TestFunction.SUM_POW".
2021-08-22 01:10:04 +02:00
Alex Herbert
bdb4160b00 Add variance tests for zero weights
Update javadoc for the behaviour when input weights are zero.

This issue was found when checking the sonar report for the variance
class which has a potential divide by zero if the weights sum to zero.
2021-08-21 14:37:13 +02:00
Alex Herbert
033c7e2c39 Correct verification of zero length values and weights
This bug was found when checking the sonar report for the variance class
which uses MathArrays.verifyValues.
2021-08-21 14:37:13 +02:00
Alex Herbert
5245a685a0 sonar fix: Handle variance=0 in skewness computation for input array 2021-08-21 14:37:13 +02:00
Alex Herbert
30aa597f1e sonar fix: Ensure checkFeasableCount is not negative.
Change loop condition to 'i <= checkFeasableCount' from 'i <
checkFeasableCount + 1'

This ensures the loop to identify a new feasible column (RealMatrix
arxk) always executes at least once even with checkFeasibleCount at the
limit of 0 or Integer.MAX_VALUE.
2021-08-21 14:37:13 +02:00
Alex Herbert
228a832532 Javadoc typo 2021-08-21 14:37:13 +02:00
Alex Herbert
75c7377e47 Only restore interrupted state if necessary 2021-08-21 14:37:13 +02:00
Alex Herbert
26e4a737f7 Javadoc typo 2021-08-21 14:37:13 +02:00
Alex Herbert
1bdb310ffa Sonar fix: restore thread interrupted state 2021-08-21 14:37:13 +02:00
Gilles Sadowski
3ba0221c26 Simplify data format for "SimplexOptimizerTest" (randomized) input.
This commit also makes the following changes (unit tests):
 * Add/remove/rename/rewrite test functions.
2021-08-21 14:33:30 +02:00
Alex Herbert
569e35ddbe Add variance tests for zero weights
Update javadoc for the behaviour when input weights are zero.

This issue was found when checking the sonar report for the variance
class which has a potential divide by zero if the weights sum to zero.
2021-08-21 10:04:49 +01:00
Alex Herbert
a2efd4fad5 Correct verification of zero length values and weights
This bug was found when checking the sonar report for the variance class
which uses MathArrays.verifyValues.
2021-08-21 09:58:13 +01:00
Alex Herbert
3f7de0eb1e sonar fix: Handle variance=0 in skewness computation for input array 2021-08-21 09:11:05 +01:00
Alex Herbert
1fdd55981d sonar fix: Ensure checkFeasableCount is not negative.
Change loop condition to 'i <= checkFeasableCount' from 'i <
checkFeasableCount + 1'

This ensures the loop to identify a new feasible column (RealMatrix
arxk) always executes at least once even with checkFeasibleCount at the
limit of 0 or Integer.MAX_VALUE.
2021-08-21 08:16:20 +01:00
Alex Herbert
69bab476a5 Javadoc typo 2021-08-20 22:23:58 +01:00
Alex Herbert
5201f2c5fa Only restore interrupted state if necessary 2021-08-20 21:19:23 +01:00
Alex Herbert
7ee70ef474 Javadoc typo 2021-08-20 13:44:15 +01:00
Alex Herbert
09dd29e56d Sonar fix: restore thread interrupted state 2021-08-20 13:38:10 +01:00
Alex Herbert
7813ecb115 Update plugin order in pom
checkstyle
spotbugs
pmd
2021-08-19 00:35:58 +01:00
Alex Herbert
86624912ff Update distribution source archive specification
Copy from commons-rng multi-module project
2021-08-19 00:29:56 +01:00
Alex Herbert
b6acad285d Remove checksum from installed artifacts
This creates md5 and sha1 checksums for the dist-archive pom in the
local maven repository. It is not required.
2021-08-19 00:19:54 +01:00
Alex Herbert
c8b45d43fa Add jars to dist archive 2021-08-19 00:19:54 +01:00
Alex Herbert
6e1e402ed6 Remove plugin checks from default goal
These plugins already run using executions:

apache-rat:check (validate)
checkstyle:check (verify)

Added to verify using executions:

pmd:check
spotbugs:check
2021-08-19 00:09:46 +01:00
Alex Herbert
e693b4d264 Use JUnit 5 Assertions for exact double equality
Fix checkstyle
2021-08-18 23:33:00 +01:00
Alex Herbert
56b7b12c2a Simplify atan2 expressions when y is non-zero 2021-08-18 23:16:01 +01:00
Alex Herbert
7cb883c54b sonar fix: avoid division by zero in atan2 when y=0 2021-08-18 23:02:55 +01:00
Alex Herbert
f06bb2aa3f Update atan2 special cases test
Enumerate all combinations of 0, infinity and another value (0.1) with
+/- for each. Results are the same with java.lang.Math.
2021-08-18 23:02:55 +01:00
Alex Herbert
f6fe96b23f Sonar fix: Replace x != x with Double.isNaN 2021-08-18 18:30:53 +01:00