Commit Graph

239 Commits

Author SHA1 Message Date
Gilles Sadowski 26fc13cf66 Merge branch 'master' of https://gitbox.apache.org/repos/asf/commons-math 2021-08-07 15:34:48 +02:00
Gilles Sadowski 92a3b0c040 Replace calls to deprecated method. 2021-08-07 15:26:02 +02:00
Gilles Sadowski 50ca244b38 MATH-1622: Hybridation of simplex-based search with simulated annealing (SA).
Class "SimulatedAnnealing" provides user-defined input ("OptimizationData").
Behaviour of "SimplexOptimizer" depends on whether SA is activated (if yes,
each "iteration" is further split in "epoch" stages).
The "Simplex.TransformFactory" interface is changed to allow passing the SA
acceptance test ("Metropolis" rule).

The "SimplexOptimizer" is furter refactored (cf. MATH-1614) so that the
steps (in method "doOptimize") clearly stand out as
 1. Setup and iteration (optionally with simulated annealing).
 2. Simplex transformation rule.
 3. Convergence check.
 4. "Best list" search.

This commit also contains the following modifications:
 * "TestFunction": Override "toString" (for display in unit tests).
 * "Simplex"
   - Self-documenting names for factories.
   - Utility methods: "centroid", "asList", "replaceLast".
   - Unit tests.
 * "MultiDirectionalTransform":
   - Use common utility methods.
   - Fix missing sort in "transform" method.
   - Check validity of constructor parameters.
   - Parameter names to match the equivalent in "NelderMeadMeadTransform".
 * Adapt unit test classes to the updated API of class "Simplex".
 * "PointValuePair":
   - "final".
   - Implements "hashCode".
2021-08-07 14:38:46 +02:00
Gilles Sadowski d26470b139 Delete unused test data files.
The same data is still available in directory
  commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/fitting/leastsquares
2021-08-07 14:38:46 +02:00
Gilles Sadowski b167967767 Standard test functions defined in a dedicated factory ("TestFunction" enum). 2021-08-07 14:38:46 +02:00
Gilles Sadowski a791c576d5 Relax tolerance (unit test). 2021-08-07 14:38:46 +02:00
Gilles Sadowski 790ceb5ade Nit: Information message in unit test assertions. 2021-08-07 14:38:46 +02:00
Gilles Sadowski fd3313724e Move utility method "newPoint" to "Simplex" class.
Reduce visibility of utility methods to "package-private".
2021-08-07 14:38:46 +02:00
Gilles Sadowski de99fd0384 Merge branch 'master' of https://gitbox.apache.org/repos/asf/commons-math 2021-08-07 14:38:04 +02:00
Arturo Bernal 3aab631272 MATH-1573 - Redundant local variable 2021-08-07 13:37:21 +01:00
Arturo Bernal 1c8d8da63a MATH-1572: Simplify conditional expressions
* Simplify bitwise
* Simplify boolean expression
* Simplify conditional expression
* Redundant 'if' statement
2021-08-07 13:19:32 +01:00
Gilles Sadowski b5d21665ff MATH-1621: Override "equals" and "toString". 2021-08-04 06:47:27 +02:00
Gilles Sadowski 771a21815b Unused "import". 2021-08-03 16:20:11 +02:00
Gilles Sadowski 6bc63d4f3f Suppress obsolete unit test.
Class "ConstantContinuousDistribution" has been removed from "Commons Statistics".
2021-08-03 03:22:47 +02:00
Gilles Sadowski 3df6d879e7 Implement "ConstantContinuousDistribution" as a local workaround.
Corresponding code to be removed from "Commons Statistics" (no other known use case).
2021-08-02 02:31:37 +02:00
Gilles Sadowski 8e63d421bf Adapt to "Commons Statistics" API change. 2021-08-02 01:36:34 +02:00
Gilles Sadowski f49e77a806 Delete spurious file.
File was committed by mistake.
2021-07-28 13:01:18 +02:00
Gilles Sadowski 9dbceb0ed1 MATH-1616: Refactor "EmpiricalDistribution".
* No default bin count (cf. MATH-1462).
* No data loading from external sources (file, URL).
* No data abstraction layer.
* Return defensive copies of the internal state.
* Make class immutable.
* Allow user-defined within-bin kernel.
2021-07-20 18:07:12 +02:00
Gilles Sadowski 8968416790 MATH-1379: Fix "LoessInterpolator" in case of unevenly spaced samples.
Thanks to Richard Wilkinson.
2021-07-19 18:43:59 +02:00
Ng Tsz Sum 30a2593c2c MATH-1617: Ensure that "hashCode" is consistent with "equals". 2021-07-19 17:43:51 +02:00
Gilles Sadowski 8cd59b991e Replace deprecated calls. 2021-07-19 15:02:29 +02:00
Gilles Sadowski bf44f34862 "sonarcloud" suggestion. 2021-07-19 15:01:39 +02:00
Gilles Sadowski 0b56f2cf54 MATH-1617: Fix equality check.
Thanks to Ng Tsz Sum.
2021-07-18 17:28:04 +02:00
Gilles Sadowski 4f7ef762d7 Reduce visibility to package-private. 2021-07-18 01:06:00 +02:00
Gilles Sadowski b5fd55e6b9 Avoid usage of "clone" (suggested by "sonarcloud"). 2021-07-18 01:02:28 +02:00
Gilles Sadowski 84f15db1bb Javadoc. 2021-07-17 14:35:37 +02:00
Gilles Sadowski 7de72b3402 Javadoc. 2021-07-17 14:35:26 +02:00
Gilles Sadowski 2218194942 MATH-1611: Obsolete class.
Functionality moved to "Commons RNG" (cf. RNG-140).
2021-07-17 14:19:09 +02:00
Gilles Sadowski e6bc7a4d31 Use functionality from "Commons RNG". 2021-07-17 14:18:38 +02:00
Gilles Sadowski d13aec9b34 Nit. 2021-07-17 01:25:08 +02:00
Gilles Sadowski fb283c85e3 Add issue reference to skipped unit tests (suggested by "sonarcloud"). 2021-07-17 01:12:17 +02:00
Gilles Sadowski dcf83c02a7 Add comment (false positive "sonarcloud" report). 2021-07-15 01:42:38 +02:00
Gilles Sadowski 73d82834ba Rename field (suggested by "sonarcloud"). 2021-07-14 13:46:55 +02:00
Gilles Sadowski 344fb6dedd Unused parameters. 2021-07-14 13:32:39 +02:00
Gilles Sadowski 286ff6ad39 Use method reference (suggested by "sonarcloud"). 2021-07-14 13:32:09 +02:00
Gilles Sadowski befbe8f6e3 Javadoc. 2021-07-14 12:49:28 +02:00
Gilles Sadowski 9afa2f7532 Remove useless override (suggested by "sonarcloud"). 2021-07-14 12:32:14 +02:00
Gilles Sadowski 6bc42d33d2 Simplify condition (suggested by "sonarcloud"). 2021-07-14 11:22:40 +02:00
Gilles Sadowski 1bb918b730 Rephrase condition. 2021-07-14 11:16:58 +02:00
Gilles Sadowski bb5843f4aa CheckStyle. 2021-07-14 11:04:50 +02:00
Gilles Sadowski 8f83827846 Code simplifications (suggested by "sonarcloud"). 2021-07-14 00:36:10 +02:00
Amar Prakash Pandey ded7c63521 MATH-1528: Remove "Serializable".
Closes #191.
2021-07-11 21:33:19 +02:00
Gilles Sadowski f4244dc76d Unused field. 2021-07-11 19:01:22 +02:00
Gilles Sadowski 996426e61e Unused "import". 2021-07-11 19:00:48 +02:00
Gilles Sadowski 78476b09dc MATH-1462: Following advice in the Javadoc (on selecting the number of bins), unit test passes. 2021-07-11 17:35:24 +02:00
Gilles Sadowski 693d560427 Code style and Javadoc nits. 2021-07-11 17:16:06 +02:00
Gilles Sadowski 509f50b0a5 CheckStyle. 2021-07-11 03:15:10 +02:00
Gilles Sadowski eab3bcec3c MATH-1600: Interface is not used anymore. 2021-07-11 02:56:35 +02:00
Gilles Sadowski 5fee542f82 MATH-1615: Functionality is in "Commons RNG" (cf. RNG-137). 2021-07-11 02:44:10 +02:00
Gilles Sadowski 71bfa2daeb Adapt to API change in "Commons Numbers". 2021-07-11 02:36:10 +02:00
Gilles Sadowski 46a0c3ae41 MATH-1614: Refactoring of "SimplexOptimizer".
Class "Simplex" supersedes "AbstractSimplex" whose subclasses are replaced
by implementations of the "Simplex.TransformFactory" interface.
The new classes are immutable.

Test suite has been updated.
It tries to assess correctness through randomization; however some standard
optimization problems entail systematic failures that were previously hidden
through using fixed seeds.  [The corresponding unit tests are skipped, and
further work is needed in order to find out whether those problems are too
hard for the algorithm or the issue lies elsewhere.]
2021-07-11 02:10:11 +02:00
aherbert 7f425354fb MATH-1576: Fix checkstyle in legacy module
Fix many of the modules.

The remaining modules have been added back and commented out:

ParameterNumber - 50 errors
MethodParamPad - 94 errors
NoWhitespaceAfter - 3949 errors
NoWhitespaceBefore - 1605 errors
OperatorWrap - 54 errors
ParenPad - 884 errors
WhitespaceAfter - 7543 errors
WhitespaceAround - 2198 errors
HiddenField - 64 errors
ArrayTypeStyle - 197 errors
Indentation - 7293 errors
2021-06-25 17:32:48 +01:00
aherbert f8741d3ab6 MATH-1576: Reinstate checkstyle to legacy module
A simplified checkstyle configuration has been used. Additional modules
should be added back incrementally as the codebase is corrected.

Removed trailing whitespace.
Removed tab characters.
Fixed the correct licence header.
2021-06-25 16:49:31 +01:00
Gilles Sadowski c98e638d73 Merge branch 'master' of https://gitbox.apache.org/repos/asf/commons-math 2021-06-25 14:51:00 +02:00
Gilles Sadowski 97dd402d10 MATH-1613: Decrease maximum number of iterations for consistency with internal counter. 2021-06-25 14:50:01 +02:00
aherbert 6ce950d5a3 MATH-1576: Reinstate checkstyle
Checkstyle has been suppressed for the legacy module.

Fixed the new modules to pass the checkstyle configuration ported from
Commons-Numbers.
2021-06-25 12:08:35 +01:00
Gilles Sadowski cd54910edc Javadoc. 2021-06-25 12:12:52 +02:00
Gilles Sadowski 03923d2b79 Adapt to "Commons Numbers" API update (cf. NUMBERS-163). 2021-06-23 02:09:48 +02:00
Gilles Sadowski a1f2a98c28 Use functionality defined in "Commons Numbers". 2021-06-17 15:13:34 +02:00
Gilles Sadowski b509678e95 MATH-1610: Functionality moved to "Commons RNG" (cf. RNG-145). 2021-06-14 22:26:22 +02:00
Gilles Sadowski 24b1d86ffb MATH-1608: Remove random string generator.
Functionality is out-of-scope (cf. "Commons Codec").
2021-06-14 14:49:11 +02:00
Gilles Sadowski bdc4a527fb Remove dependencies on unused "Commons Numbers" modules. 2021-06-10 18:27:59 +02:00
Gilles Sadowski ca830af170 Remove dependency "ComplexUtils" class.
Class will not be released as of "Commons Numbers" v1.0 (cf. NUMBERS-25).
2021-06-10 18:24:53 +02:00
Gilles Sadowski 151b015ea7 MATH-1594: Remove "Serializable". 2021-06-10 17:41:48 +02:00
Gilles Sadowski 759743122d Removed "java.util.Random" wrapper.
Utility is provided by "Commons RNG".
2021-06-10 03:10:21 +02:00
aherbert 8a60de3263 Ignore spotbugs in the legacy module 2021-06-09 16:53:06 +01:00
aherbert af647182ef Fix binary search for index overflow 2021-06-09 16:44:48 +01:00
aherbert df117c1e46 Fix null argument check. Fix javadoc error. 2021-06-09 16:41:20 +01:00
Gilles Sadowski 1d83419c90 Adapt to "Commons Numbers" API updates.
Cf. NUMBERS-159.
2021-06-09 16:20:39 +02:00
Gilles Sadowski a5b1aa0294 Typo. 2021-06-09 16:18:57 +02:00
Gilles Sadowski df927f0b67 MATH-1552: Fiddling with setup and expectations (unit tests). 2021-06-05 23:50:46 +02:00
Gilles Sadowski 4075e87c76 Unneeded "import" statement. 2021-06-05 14:50:58 +02:00
Gilles Sadowski dd73a1ba80 Unneeded dependency (unit test). 2021-06-05 14:49:01 +02:00
Gilles Sadowski 839f8b45a3 Remove info file with useless/outdated contents. 2021-06-05 13:21:02 +02:00
Gilles Sadowski 7b9edac695 Use "Commons RNG" (unit tests). 2021-06-05 03:41:14 +02:00
Gilles Sadowski ac25b3b9f3 Remove fixed seed (unit test). 2021-06-05 02:26:43 +02:00
Gilles Sadowski e24e0a8555 MATH-1595: Interface not used anymore within "Commons Math". 2021-06-04 10:54:23 +02:00
Gilles Sadowski 610564f7d4 MATH-1602: Obsolete class. 2021-06-04 10:46:47 +02:00
Gilles Sadowski b574149094 Adapt to new API ("Commons Numbers"). 2021-06-04 00:23:52 +02:00
Gilles Sadowski 8f39a414c1 MATH-1599: Class removed (out-of-scope). 2021-06-03 19:29:40 +02:00
Gilles Sadowski 1b7f10eed7 Moved "ComplexFormat" class to "util" package. 2021-06-03 18:42:58 +02:00
Gilles Sadowski 7ef0099c9e Adapt to new API ("Commons Numbers"). 2021-06-03 18:27:25 +02:00
Gilles Sadowski 536ee3f645 MATH-1598: Class is not used anymore within "Commons Math".
Functionality is available from "Commons RNG".
2021-06-02 03:26:14 +02:00
Gilles Sadowski 456de1bf98 MATH-1601: Simplified and more robust API.
Factory methods ensure correct use (removed dependency on "NormalizedRandomGenerator").
2021-06-02 03:21:46 +02:00
Gilles Sadowski 8afd815000 Typo (Javadoc). 2021-06-02 01:08:42 +02:00
Gilles Sadowski 1da0c57053 Dependency not needed. 2021-06-01 17:36:08 +02:00
Gilles Sadowski ba2a1c2434 Utility class moved to module "commons-math-legacy-core". 2021-06-01 17:31:40 +02:00
Gilles Sadowski 02d14e6791 Utility class moved to module "commons-math-legacy-core". 2021-06-01 17:17:51 +02:00
Gilles Sadowski 787d42ef07 MATH-1595: Interface is not used anymore. 2021-06-01 13:42:25 +02:00
Gilles Sadowski 491798e0de Clean-up. 2021-06-01 07:05:21 +02:00
Gilles Sadowski c3ec07380f Additional test passes. 2021-06-01 01:25:15 +02:00
Gilles Sadowski e85e8b53f2 Create module "commons-math-legacy-core" for holding functionality needed by many "legacy" modules.
"FastMath" (renamed "AccurateMath") and related classes moved to "o.a.c.m.legacy.core.jdkmath".
2021-06-01 00:26:35 +02:00
Gilles Sadowski ce65e6ba3f MATH-1462: Unit test copied from JIRA report.
Set to "@Ignore" because the issue is still present.
2021-05-31 15:19:52 +02:00
Gilles Sadowski 53cb2cce5f Unused classes (in "src/test"). 2021-05-31 15:02:52 +02:00
Samy Badjoudj 9cfd17601b MATH-1592: Remove "NumberTransformer" (transformations should be done by caller).
Closes #186.
2021-05-31 15:02:39 +02:00
Gilles Sadowski bcdc7fbba7 MATH-1587: Move (legacy) exception classes to a dedicated maven module. 2021-05-31 14:37:20 +02:00
Gilles Sadowski 3599736865 Reduce build failure frequency due to randomized unit tests. 2021-05-31 14:17:50 +02:00
Gilles Sadowski 2588814c82 Unused "import". 2021-05-31 13:02:33 +02:00
Gilles Sadowski 67e647cf5b Break cyclic dependency between "util" and "exception" packages.
Remove spurious "throws" clauses.
2021-05-31 05:19:03 +02:00
Gilles Sadowski f24fd14718 MATH-1596: Removed dependency on "RandomVectorGenerator". 2021-05-31 03:49:24 +02:00
Gilles Sadowski 6f4620f270 MATH-1589: Spurious "throws" clauses. 2021-05-31 03:49:24 +02:00
Gilles Sadowski 9d4d838638 MATH-1431: Avoid NaN in case of empty bin.
Thanks to Artem Onuchin.

Closes #79.
2021-05-31 03:49:07 +02:00
Gilles Sadowski 55e7cf0a51 MATH-1596: Remove dependency on "RandomVectorGenerator". 2021-05-31 02:42:34 +02:00
Gilles Sadowski 7eadea3167 MATH-1589: Spurious "throws" clauses. 2021-05-30 23:04:17 +02:00
Samy Badjoudj 6ce3bd901f MATH-1468: Moved "Decimal64" and "Decimal64Field" to "test" area.
Nit: Removed "final" (a "static" method is not polymorphic).
2021-05-30 15:09:53 +02:00
Gilles Sadowski f9a7c568be MATH-1596: Remove dependency on "RandomVectorGenerator". 2021-05-30 15:02:13 +02:00
Gilles Sadowski c93520a02f MATH-1593: Remove duplicate functionality (provided in "Commons RNG"). 2021-05-30 14:58:49 +02:00
Gilles Sadowski 8a756d763d Removed dependency on "GaussianRandomGenerator" (unit test). 2021-05-30 01:10:18 +02:00
Gilles Sadowski 8441d3fd65 Removed dependency on "UncorrelatedRandomVectorGenerator" (unit test). 2021-05-29 01:45:27 +02:00
Gilles Sadowski 1d9670cb12 MATH-1172: "SimpleCurveFitter" as parent class for curve fitter implementations. 2021-05-29 00:34:28 +02:00
Gilles Sadowski 9146f7abe2 Remove implementation classes from public API. 2021-05-28 19:42:17 +02:00
Gilles Sadowski bab2a8b991 MATH-1411: Relaxing tolerance.
Unit test now succeeds reasonably often, even when using a random seed.
2021-05-28 19:16:54 +02:00
Gilles Sadowski 2977d26a0f Renamed "PivotingStrategyInterface" to "PivotingStrategy".
Removed a few spurious "throws" clauses (cf. MATH-1589).
2021-05-28 18:27:53 +02:00
Gilles Sadowski 450cb5e46f Remove implementation classes from public API. 2021-05-28 17:37:18 +02:00
Gilles Sadowski 1f1872f85d Reduce failure frequency (unit test). 2021-05-28 17:35:00 +02:00
Samy Badjoudj b416ae586e MATH-1586: Moved classes that are only used by a single package over to that package 2021-05-28 15:33:22 +02:00
Amar Prakash Pandey f29d5c97d3 MATH-1453: mannWhitneyU return minimum value for U 2021-05-28 15:12:41 +02:00
Gilles Sadowski d92a3c6335 MATH-1588: Fit into JDK 8 "function" API. 2021-05-27 22:56:48 +02:00
Gilles Sadowski 0466b29f83 Use new API. 2021-05-27 04:49:32 +02:00
Gilles Sadowski 0e81847e45 Remove unused class. 2021-05-26 23:33:08 +02:00
Gilles Sadowski 2650a4786c Unused "import". 2021-05-26 22:54:41 +02:00
Gilles Sadowski 8df971ce64 Use functionality defined in "Commons Numbers". 2021-05-26 18:49:51 +02:00
Gilles Sadowski fcc47a2c88 Code reuse. 2021-05-26 13:27:24 +02:00
Gilles Sadowski d056c03834 MATH-1584: Unit tests. 2021-05-26 04:39:12 +02:00
Gilles Sadowski 144cb12200 Unused "import". 2021-05-26 04:35:16 +02:00
Gilles Sadowski 23c029484f MATH-1584: Move "MathUtils.check..." functions to associated exception class. 2021-05-26 04:22:20 +02:00
Gilles Sadowski a4c8c52bd2 Move constant declaration to where it is actually used. 2021-05-26 03:35:25 +02:00
Gilles Sadowski 9087575eec Reuse constant defined in "Commons Numbers". 2021-05-26 03:23:07 +02:00
Gilles Sadowski 4bb1787631 Unused "import" statements. 2021-05-26 03:08:25 +02:00
Gilles Sadowski 0cfc410cb0 MATH-1583: Move "min" and "max" to "RealFieldElement". 2021-05-26 03:02:37 +02:00
Gilles Sadowski eedd0b853b MATH-1581: Removed "equals" method. 2021-05-26 00:17:56 +02:00
Gilles Sadowski 8157678473 MATH-1581: Removed "copySign" methods. 2021-05-25 23:44:45 +02:00
Gilles Sadowski 35d56cc547 MATH-1581: Removed "hash" methods. 2021-05-25 23:17:11 +02:00
Gilles Sadowski ad5f0dac37 MATH-1536: Let unit tests use random seeds (and allow a few retries on failure).
Consistently failing test (in "NaturalRankingTest") set to "@Ignore".
2021-05-24 03:15:17 +02:00
Gilles Sadowski 7f383414c2 MATH-1533: Javadoc explaining that the issue is actually not a problem.
Corresponding unit test has been removed.
2021-05-24 02:31:12 +02:00
Gilles Sadowski 92094a0993 MATH-1582: Modularization.
Code moved from "o.a.c.math4.legacy.transform" into a dedicated module.
2021-05-23 01:19:12 +02:00
Gilles Sadowski 5e59617d85 MATH-1578: Modularization.
Code moved from "o.a.c.math4.legacy.ml.neuralnet" into a dedicated module.

Refactored "TSP" example application (formerly provided as a unit test).
2021-05-21 14:52:27 +02:00
Gilles Sadowski ac978e2c4c Typo. 2021-05-18 03:23:05 +02:00
Gilles Sadowski 9d1741bfe4 Modularization.
For now, all codes were placed in module "commons-math-legacy".
Selected parts should gradually be moved out of that module into their own.
2021-05-15 05:36:48 +02:00