Skip to content

Commit 6a3657a

Browse files
Merge dev commits to master for the 1.0 release (#145)
* Added convenience methods with tests #atAllPut: (Matrix instance protocol) #atColumn:put:repeat: #initializeRows:columns: #rows:columns: (Matrix class protocol) #rows:columns:element: (Matrix class protocol) * Clean class PMFloatingPointMachine and sync with the book * Cleaning * Code cleaning during book sync session * Typos * Sync with book chap 6 * Cleaning code * Clean PCA code * Cleaning * Add a class similar to StandardScaler in Scikit-learn * Add scale for PMStandardizationScaler * Use PMMatrix for PMDataTransformer classes * Add a transform test * Close #77. Implement class PMStandardizationScaler for doing standardization cleaning on matrices + abstract class PMDataTransformer. 5 unit tests include. * Add a fit: and transform: methods to PCA but apparently there is a bug. Results different from what you obtain from Python ... * Clean PMSingularValueDecomposition * Some optimisation for PMStandardizationScaler>>transform: * Refactor PMPrincipalComponentAnalyser in order to have 2 implementation classes (Jacobi transformation of the covariance matrix and SVD) and one abstract classes for all PCA. Still 2 unit tests not green. * Cleanup setUp in PMSingularValueDecompositionTest * Clean and sync with book * Add flattenOnColumns and flattenOnRows + tests Close #79 * Add argMaxOnColumns + argMaxOnRows for PMMatrix and argMax on vector. Close #80 * Following discussion #79 and #80, I rename the flatten methods and add more tests for argmax. * Remove unecessary code in cos, cosh, log, sin, sinh, sqrt, tan and tanh on a matrix * Add a sign op on PMMAtrix + one test * Remove PMPrincipalComponentAnalysisServer and tests because we change completely the API and old version got some problems with encapsulation ... * Commit tests for PCA. * Add one example with PCA with SVD on IRIS dataset * Update CONTRIBUTING.md - changed 8 space indentation to 4 spaces * Update CONTRIBUTING.md * Moved the tests to a more sensible package * Moved the tests to a more sensible package. * Moved the tests to a more sensible package. * Moved the tests to a more sensible package. * Corrected the test - of course PMMatrix does not have the assert message as part of its interface. * Add .project metadata * Rename Quaternion as PMQuaternion * QuantileTest => PMQuantileTest * Working on #16 * Add PM prefix for Math-Tests-Random classes #16 * Add PM prefix for Math-Tests-KolmogorovSmirnov classes #16 * Fix #16 for Math-Tests-KDTree * #16 for Math-Tests-FastFourierTransform * Continue to work on #16 * More on #16 * [issue-85] Moved the TestCase classes to more sensible packages. * [issue-88] Corrected the type. * [issue-81] Added a test for the eigevalues of a 2 x 2 identity matrix as a starting point. * [issue-81] Added another missing test to confirm that the eigenvectors of I are the unit basis vectors. * [issue-81] Simplified the test a bit. * [issue-81] Extracted Scikit Learn's algorithm to its own class to allow a little more isolated testing. * [issue-81] Refactor - improved the name of the method. * [issue-81] Added a method to demonstrate how the argMax message works for vectors over the field of real numbers. * [issue-81] The signs computed by the computeSignsFromU message match Sci-Kit Learn. * [issue-81] To make it easier to understand the algebra, return the signs as a vector object. * [issue-81] Extracted a helper method and added a test, where the example is taken from scikit-learn. * [issue-81] Simplified initialisation of the algorithm, removed obselete method. * [issue-81] Inlined a local variable. * [issue-81] Developed a method that computes the sign matrix for the U matrix. * [issue-81] Removed an unused variable. * [issue-81] Spelling error. * [issue-81] Removed an obselete comment. * [issue-81] Store the flipped matrices in better named state variables. * [issue-81] Removed unused accessor methods. * [issue-81] Corrected the comment. * [issue-81] Added a test for uFlipped. * [issue-81] Fixed the comment, again. * [issue-81] Added a test for vFlipped, corrected an existing test. * [issue-81] Removed unused state variables. * [issue-81] Removed the unused method. * [issue-81] Extracted duplicate arrange code to an intent-revealing set up helper. * [issue-81] Use the helper as it generates the same set up. * [issue-81] Use the signMatrixForU message to be consistent with vFlipped. * [issue-81] Moved the duplicated comments to a more sensible place. * [issue-81] We now have a working SVD flip algorithm. * [issue-81] Improved the name of the instanciation method. * Update .smalltalk.ston * Reverse * [issue-81] The sign flipping is now working in that the test for the SVD-based PCA implementation is now failing rather than erroring. * [issue-81] Name of the class now conforms to the PolyMath codestyle. * Support for principalDiagonal function #91 (#92) * Update .travis.yml * Update PMMatrixTest.class.st * missing PM before a class name ... * [Issue 81] - 2 PCA implementations that give same results but different from Python scikit-learn implementation (#96) * [issue-81] Categorised the methods, removed duplication to the set up method. * [issue-81] Added additional tests from the example in the Sandia sign ambiguity paper. * [issue-81] Added tests to confirm that we would get the same flipped U and V. * [issue-81] Renamed the set up method to follow convention. * [issue-81] Mobbing with colleagues we decided that it sufficed, because of sign ambiguity, to compare the moduli of the matrices. * [issue-81] Removed the computation of argMax to an certain level of precision. After discussion with colleagues it was deemed inadvisable. * [issue-81] Extracted expected outputs to a local variable with a good name. * [Issue 81] 2 PCA implementations that give same results but different from Python scikit-learn implementation (#97) * [issue-81] Added an acceptance test with the mean-centred data from the Lindsay Smith PCA Tutorial paper. * [issue-81] Improved the name of the test method. * [issue-81] Added an acceptance for the Jacobi-based transform: message. * [Issue 81] Refactoring/Clean Up (#98) * [issue-81] Improved the name of the variables. * [issue-81] Improved the name of the categories. * [issue-81] Removed obselete comments. * [issue-81] Emphasised the polymorphism of the two implementations of PCA in their respective tests. * [issue-81] Removed duplicate code to set up messages. * [issue-81] Removed unused instance variables. * [issue-81] Use an existing message that has the same method. * [issue-81] Moved the duplicate acceptance tests to a more sensible place. * Add missing tests in BaselineOf * Add more missing tests package * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * [Issue 62] - Rename packages that have DHB in their names (Part 1) (#102) * [issue-62] Removed an empty test case. * [issue-62] Moved the tests to a more appropriate package. * [issue-62] Moved the test class to a more appropriate package. * [issue-62] Removed DHB from the package names. (#103) * Remove all DHB in baseline * Missing packages in the baseline * Missing Math-Tests-Core package * Remove all DHB (even in comments) * Remove copyright comments * Rename tests to use CamelCase * Update README.md * Rename initialize to setUp in some tests * - Remove print1On: print2On: methods and use properly printOn: - Rename PMKolmogorovSmirnov to PMKolmogorovSmirnovSample * Working on #62 rename TSNE => PMSTE * - Remove Manifest classes - work on #62 to rename classes with PM prefix * Close #62 * Close #62 * Close #62 * fix typo. * Don't test if a package has been loaded or not, this is manage by Baseline. * Clean comments * Still comments fixes * Clean some tests * More tests cleaning * Remove dependancy between PM-RandomDistributionBased and PM-Polynomials * Ongoing work on #105. Remove Math-RandomDistributionBased package and merge classes with Math-Random. * Update .travis.yml * Update .travis.yml * Update appveyor.yml * Remove all Transcript show from tests. * Update .smalltalk.ston * Update README.md * Update appveyor.yml * Update .smalltalk.ston * [issue-104] Set the seed to zero for more certainty. (#107) * [Issue 104] Some tests methods fail randomly (#111) * [issue-104] Removed obselete code. * [issue-104] Corrected the method category, improved the formatting of the code in the test method. * [issue-104] Removed unnecessary code. * [issue-104] Improved code formatting. * [issue-104] Extracted the computation to an intention-revealing variable. * [issue-104] Improved code formatting, used data from a series from slides from QMUL * [issue-104] Separated the assert from the arrange. * [issue-104] Improved code formatting. * [issue-104] Removed obselete method. * [issue-104] We need to call the super class method according to the Pharo style guide. * [issue-104] Corrected the category of the method. * [issue-104] Removed obselete code - here I removed them and re-ran the tests. They remained green. * [issue-104] Corrected formatting. * [issue-104] Improved formatting, used data from the Oxford University Statistics Dept lecture notes. * [issue-104] Corrected the link to the data source * Removed == operator from PMVector (#108) The == operator should not be overridden. Removed that block entirely due to no it having no real application. * Issue 29 - PMVector/PMMatrix >> #dot: does not compute a dot product. (#119) * [issue-29] Marked PMMatrix's dot message as deprecated and introduced the hadamard product in its place. Replaced calls to dot in places where we can be confident nothing breaks. * [issue-29] Introduce the new and better-named elementwiseTimes message. * [issue-29] Marked the PMVector dot message as deprecated. * [issue-29] Added a separate test for the Hadamard product and reverted the element-wise multiply test to its original state. * [issue-29] Improved the name of the method. * Removed PMVector sum for speedup (#126) * Implementing the t-SNE algorithm (#117) * Added "Hbeta" function for PMTSNE with test It is named as `entropyOf: andPRow: withBeta:`. Added a test for the method ensuring: - Original pVector reference is maintained - entropy is calculated correctly - pVector is calculated correctly * Added `reduceXToInputDims:` method for PMTSNE - Added corresponding test for new method. - Renamed `ndims` to `outputDims` - Renamed `initialdims` to `initialDims` - Added accessor `x` * Added method to get pairwise affinities in PMTSNE - The new function is called `computePairwiseAffinities` (as in original paper) - The old one is renamed to `computeLowDimentionalAffinities` - Removed x2p function (translated it's code to `computePairwiseAffinities`) - Also added tests * Added progress bar(Job) for PMTSNE Moved contents of the `start` method to `initializeJob`. * Added gradient descent in PMTSNE - Also added various accessors and instance vars - Classified existing methods - Added a test for `computePValues` * [Issue 29] PMVector/PMMatrix >> #dot: does not compute a dot product. (#127) * [issue-29] Removed test for a deprecated message. * [issue-29] Replaced a call to a deprecated message, corrected a style violation. * [issue-29] Removed deprecated messages. * Update README.md * Added test cases for subtraction between scalars and vectors and suggested quickfix (#121) * Added Basic Scalar subtraction test * added test for subtract PMVector from a Number * QuickFix of the scalar subtraction with PMVector Issue * Fixed ZeroDivideError in PMStandardizationScaler (#128) This happened when one of the input features was constant. - Set scale to 1 for the feature which is constant - Added two tests for this case * Remove old Math-RandomDistributionBased package from repo * Refactored PMTSNE to include steps (#131) New methods `step` and `postStep` have been added. `postStep` will contain all viz and debug methods. A new `stateVariables` contains required variables for the steps. * [Issue 105] Math-Random Package Is Messy - Improve Naming, Refactor Tests (#132) * [issue-105] Removed an obselete test. * [issue-105] Improved the name of the class. The class comment says it is a generator. * [issue-105] Improved the name of the class. * [issue-105] Extracted duplicate code to an intention-revealing method. * [issue-105] Extracted duplicate code to a helper method. * [issue-105] Inlined the method as it's only used in one place. * [issue-105] Improved the name of the method. * [issue-105] Corrected code style. * [issue-105] Improved the name of the method. * [issue-105] Removed obselete code. * [issue-105] Corrected the category. * [issue-105] Improved the names of the methods. * [issue-105] Improved the names of the method. * [issue-105] Removed obselete test. * [issue-105] Brought back a test deleted accidentally. * [issue-105] Made similar code even more similar. * [issue-105] Moved the code to a better place, an intention-revealing method. * [issue-105] Made the code consistent with that of the other tests. This reads a little better now. * [issue-105] Made similar code look the same, improved the name of a test method by using domain language. * Added vizualization examples for PMTSNE (#133) - Renamed variable `computeErrorEvery` to `updateErrorEvery` - Added `updateError` variable which calculates error only when true - Added grid vizualization example - Added linked-rings vizualization and generator * Ability to convert vectors to matrices and vice versa (#129) * Added Basic Scalar subtraction test * added test for subtract PMVector from a Number * QuickFix of the scalar subtraction with PMVector Issue * Added methods for intuitive conversion between vectors and matrices * Tests for matrix <-> vector interconversions * Fixed implementation of reshape * [Issue 105] Refactor Math-Random Tests Package (#134) * [issue-105] Removed unnecessary dot. * [issue-105] The code is doing the same thing differently, so I have made it look exactly the same in order that we can extract the duplication elsewhere later. * [issue-105] Extracted code to an intention-revealing method. * [issue-105] Improved the name of the test method and extracted generation of a sample to an intention revealing variable. * [issue-105] Extracted the generation of a sample to an intention-revealing method. * [issue-105] In the case of the Poisson generator I understand that lambda is the mean/expected value (cf. wikipedia). * [issue-105] Introduced the expectedValue message for consistency, in view of removing the mean message completely. * [issue-105] Corrected the message name to conform to the Pharo style. * [issue-105] Extracted duplicate code to a test helper class. * [issue-105] Removed obselete comment. * [issue-105] Made the assertion the same as used in the exponential generator test in hopes of moving it to a super class. * [issue-105] Corrected and improved the name of the class and the method therein. * [issue-105] Improved code formatting, replaced implicitly duplicate code with the random sample generator class. * [issue-105] Improved the names of the temporary variables. * [issue-105] Improved the name of the assertion. * [issue-105] Removed an obselete comment. * [issue-105] Improved the name of the assertion. * [issue-105] Made the name of the test clearer. * [issue-105] Inlined the temp variable as it does not enhance understandability. * [#122] Fix PMVector comparison operators (#123) - Also added relevant tests for the operators * [Issue 105] Math-Random package is messy (#135) * [issue-105] Moved the incrementing to the bottom so we can extract the tempering to a method in the next refactor. * [issue-105] Extracted the tempering section to an intention-revealing method. * [issue-105] Corrected the categorisation to match the super class's. * [issue-105] Corrected the categorisation to match the super class's. * [issue-105] Corrected the initialisation. * [Issue 106] Support For coveralls.io (#137) * [issue-106] Fake it til we make it - just test the random package for now. * [issue-106] Corrected structure. * [issue-106] Added another package to track. * [issue-106] Added another two packages. * [issue-106] Added the benchmark packages. * [issue-106] Added the Chromosome, Clustering, Complex and Core packages. * [issue-106] Added the Distribution packages. * [issue-106] Added the FFT and FunctionFit packages. * [issue-106] The FFT and FunctionFit packages seem broken so we replace it with the K-packages. * [issue-106] Added the Math-Matrix (and any Math-M*) package. * [issue-106] Added all Math-N* packages. * [issue-106] Added the Math-O* packages. * [issue-106] The Math-ODE packages seems to cause the CI job to run out of memory, so let's proceed to the Math-P* packages. * [issue-106] Added the Math-Q* packages. * [issue-106] Added the coverage status to the README. * [issue-106] Replaced hard-coded package name with something that keeps overage open to additional R-packages. * [issue-106] Added the TNSE package. * [issue-106] Support For coveralls.io (#138) * [issue-106] The link to the badge should point to the development branch. * [issue-106] We can at least cover the FunctionFit package. * [Issue 106] Refactor Math-Accuracy (#139) * [issue-106] Improved message names. * [issue-106] The happy path should not be the guard clause; normally the subclass should respond to the message. * [issue-106] Improved the name of the block variable. * [issue-106] Moved related code closer together. initRest goes on to populate parameters, arguments and results. * [issue-106] The asString message send is redundant. * [issue-106] Improved the name of the temp variable. * [issue-106] Improved the names of the block variables. * [issue-106] The asString is redundant as the tests remain green. * [issue-106] Extracted code to an intention-revealing method. * [issue-106] Simplified the calculation of the occurence of a key. * [issue-106] Inlined the temporary variable as it is now redundant. * [issue-106] Extracted an code to an intention-revealing local temp and improved ormatting. * [issue-106] Inlined the variable as it over wrote the earlier assignment. * [issue-106] The initialize call looks like a special case, so transformed it into a guard clause. * [issue-106] Improved code formatting. * [issue-106] The check is redundant now because we have got passed the guard clause. * [issue-106] The nil check is unnecessary now given the ifNone: call. The call to join: is for efficiency (O(n) vs O(n^2) for concatenation). This was recommended by Pharo. * [issue-106] Reverted the change as we are only concatenating two strings which is not super inefficient. * [issue-106] Removed obselete code. * [Issue 106] Get Math-ODE Covered By Coveralls.io (#140) * [issue-106] Cover all packages starting with Math-O. * [issue-106] Back to hard-coding the package name (Travis ran out of memory). * Use double dispatch for PMDualNumber (#142) * Clean tests of AutomaticDifferenciation * Use double dispatch for + * Double dispatch for * in DualNumber * Use double dispatch for *,+ and /. Now all tests are green again * Add a test about derivatives * PMDualNumber is now a subclass of Number and not Magnitude. * Add conjugated and real method (to support dual numbers with complex numbers). Add support in PMComplex classes also. Add green tests. * Use absSquared instead of abs2 * Remove constant comments * Fix formatting * Reformat correctly PMHyperDualNumber * [skip ci] * [skip CI] * Update README.md * [skip CI] * [skip CI] * [skip CI] * [skip CI] * [skip CI] * Update README.md * [skip CI]
1 parent a217a67 commit 6a3657a

File tree

303 files changed

+5688
-4261
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

303 files changed

+5688
-4261
lines changed

.smalltalk.ston

+18-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,23 @@ SmalltalkCISpec {
77
}
88
],
99
#testing : {
10-
#categories : [ 'Math-*' ]
10+
#coverage : {
11+
#packages : [
12+
'Math-Accuracy-ODE',
13+
'Math-ArbitraryPrecisionFloat',
14+
'Math-AutomaticDifferenciation',
15+
'Math-B*',
16+
'Math-C*',
17+
'Math-D*',
18+
'Math-FunctionFit',
19+
'Math-K*',
20+
'Math-M*',
21+
'Math-N*',
22+
'Math-ODE',
23+
'Math-P*',
24+
'Math-Q*',
25+
'Math-R*',
26+
'Math-TNSE' ]
27+
}
1128
}
1229
}
13-
14-

.travis.yml

+1-5
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,8 @@ os:
77

88
smalltalk:
99
- Pharo-6.1
10-
- Pharo64-6.1
11-
- Pharo-7.0
10+
- Pharo32-7.0
1211
- Pharo64-7.0
1312

1413
matrix:
1514
fast_finish: true
16-
allow_failures:
17-
- smalltalk: Pharo-7.0
18-
- smalltalk: Pharo64-7.0

CONTRIBUTING.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ In a fresh Pharo 7.0 image, load last development version of Polymath :
1515

1616
```Smalltalk
1717
Metacello new
18-
githubUser: 'XXX' project: 'PolyMath' commitish: 'development' path: 'src';
19-
baseline: 'PolyMath';
20-
load
18+
githubUser: 'XXX' project: 'PolyMath' commitish: 'master' path: 'src';
19+
baseline: 'PolyMath';
20+
load.
2121
```
2222
where you replace XXX with your github user name.
2323

@@ -33,6 +33,8 @@ Ounce your pull request is integrated, some cleanups are required:
3333
- remove your branch from your fork
3434
- close the issue (tips: you can automatically close the issue n, by inserting the sentence: **close #n** when you merge your pull request).
3535

36+
You will need from time to time to sync your fork with the original repo. You can do it on the command line with: https://help.github.com/articles/syncing-a-fork/ or in the browser like : https://github.com/KirstieJane/STEMMRoleModels/wiki/Syncing-your-fork-to-the-original-repository-via-the-browser You can also kill and redo a fork very easily.
37+
3638
# Release management
3739

3840
This project use semantic versionning to define the releases, meaning that each stable release of the project will be assigned a version number of the form `vX.Y.Z`.
@@ -49,11 +51,11 @@ Thus, it should be safe to depend on a fixed major version and moving minor vers
4951

5052
# Branch management
5153

52-
This project uses gitflow management.
54+
This project uses trunk-based development: https://trunkbaseddevelopment.com/
5355

5456
This project contains two main branches:
5557
- **master** : This branch is a stable branch. Each version on this branch should be a stable release of PolyMath, and ideally each commit modifying the source code of the project should be tagged with a version number.
56-
- **development** : This branch contains the current development of this project.
58+
- **release** : This branch contains the releases of this project.
5759

5860
## Hot fix
5961

README.md

+22-12
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
1-
# PolyMath
1+
<p align="center"><img alt="PolyMath" src="https://user-images.githubusercontent.com/327334/63360401-439db400-c366-11e9-954a-b45def952e08.png" style="width: 25%; height: 25%">
2+
<p align="center">
3+
Scientific Computing with Pharo
4+
<br>
5+
<a href="docs/"><strong>Explore the docs »</strong></a>
6+
<br>
7+
<br>
8+
<a href="https://github.com/PolyMath/PolyMath/issues/new?labels=Type%3A+Defect">Report a defect</a>
9+
|
10+
<a href="https://github.com/PolyMath/PolyMath/issues/new?labels=Type%3A+Feature">Request feature</a>
11+
</p>
12+
</p>
213

314
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)
415
[![Build Status](https://travis-ci.org/PolyMathOrg/PolyMath.svg?branch=master)](https://travis-ci.org/PolyMathOrg/PolyMath)
516
[![Build status](https://ci.appveyor.com/api/projects/status/3tvarh2xi22max8h?svg=true)](https://ci.appveyor.com/project/SergeStinckwich/polymath-88bea)
17+
[![Coverage Status](https://coveralls.io/repos/github/PolyMathOrg/PolyMath/badge.svg?branch=development)](https://coveralls.io/github/PolyMathOrg/PolyMath?branch=development)
618
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/PolyMathOrg/PolyMath/master/LICENSE)
719

8-
You can load the code in a fresh Pharo 6.1 image with:
20+
<img width="1675" alt="Screenshot 2019-04-24 at 11 12 57" src="https://user-images.githubusercontent.com/327334/56652094-66eb7780-6682-11e9-9753-101be18df67c.png">
21+
22+
You can load the code in a fresh Pharo 7.0 image with:
923

1024
```Smalltalk
1125
Metacello new
@@ -14,19 +28,17 @@ Metacello new
1428
load
1529
```
1630

17-
We have **767** green tests !
18-
19-
PolyMath is a Smalltalk project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. PolyMath already provide the following basic functionalities:
31+
We have **806** green tests ! At the moment, all the development happens in the development branch.
32+
33+
PolyMath is a Pharo project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. PolyMath already provide the following basic functionalities:
2034
- complex and quaternions extensions,
2135
- random number generators,
2236
- fuzzy algorithms,
2337
- KDE-trees,
24-
- Didier Besset's numerical methods,
38+
- Numerical methods,
2539
- Ordinary Differential Equation (ODE) solvers.
2640

27-
[![Lorentz attractor with PolyMath and GraphET](https://pbs.twimg.com/media/Ble65B3CYAEkMoR.jpg)](https://twitter.com/SergeStinckwich/status/457039376111788032)
28-
29-
A book about PolyMath called "Numerical Methods" is available online: https://github.com/SquareBracketAssociates/NumericalMethods/releases/tag/snapshot-2016-01-17
41+
A book about PolyMath called "PolyMath book" is available online: https://github.com/SquareBracketAssociates/PolyMath-book
3042

3143
Some documentation (to be cleaned and reorganized) about PolyMath is available on the Wiki here:
3244
https://github.com/PolyMathOrg/PolyMath/wiki
@@ -35,7 +47,7 @@ Natalia wrote some explanation about benchmarking PolyMath in the Pharo For Ente
3547

3648
## Install PolyMath
3749

38-
To install PolyMath on your Pharo image you can just execute the following script:
50+
To install PolyMath in your Pharo image you can just execute the following script:
3951

4052
```Smalltalk
4153
Metacello new
@@ -52,8 +64,6 @@ To add PolyMath to your baseline just add this:
5264
with: [ spec repository: 'github://PolyMathOrg/PolyMath:master/src' ]
5365
```
5466

55-
Note that you can replace the #master by another branch as #development or a tag as #v1.0.0, #v1.? or #v1.2.? .
56-
5767

5868
## How to contribute to PolyMath
5969

appveyor.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ environment:
66
CYG_MIRROR: http://cygwin.mirror.constant.com
77
SCI_RUN: /cygdrive/c/smalltalkCI-master/run.sh
88
matrix:
9-
- SMALLTALK: Pharo-6.1
109
- SMALLTALK: Pharo-7.0
11-
10+
1211
platform:
1312
- x86
1413

src/BaselineOfPolyMath/BaselineOfPolyMath.class.st

+120-45
Original file line numberDiff line numberDiff line change
@@ -29,67 +29,142 @@ BaselineOfPolyMath >> baseline: spec [
2929
spec
3030
package: 'ExtendedNumberParser';
3131
package: 'Math-Accuracy-Core';
32-
package: 'Math-Accuracy-ODE' with: [ spec requires: #('Math-ODE' 'XMLWriter') ];
33-
package: 'Math-ArbitraryPrecisionFloat' with: [ spec requires: #('ExtendedNumberParser') ];
34-
package: 'Math-AutomaticDifferenciation' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Matrix') ];
35-
package: 'Math-Benchmarks-KDTree' with: [ spec requires: #('Math-KDTree' 'SMark') ];
36-
package: 'Math-Benchmarks-ODE' with: [ spec requires: #('Math-ODE' 'SMark' 'XMLWriter') ];
37-
package: 'Math-Chromosome' with: [ spec requires: #('Math-Core') ];
38-
package: 'Math-Clustering' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Core-Process' 'Math-Matrix') ];
39-
package: 'Math-Complex' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Polynomials') ];
32+
package: 'Math-Accuracy-ODE'
33+
with: [ spec requires: #('Math-ODE' 'XMLWriter') ];
34+
package: 'Math-ArbitraryPrecisionFloat'
35+
with: [ spec requires: #('ExtendedNumberParser') ];
36+
package: 'Math-AutomaticDifferenciation'
37+
with: [ spec requires: #('Math-Numerical' 'Math-Matrix') ];
38+
package: 'Math-Benchmarks-KDTree'
39+
with: [ spec requires: #('Math-KDTree' 'SMark') ];
40+
package: 'Math-Benchmarks-ODE'
41+
with: [ spec requires: #('Math-ODE' 'SMark' 'XMLWriter') ];
42+
package: 'Math-Chromosome'
43+
with: [ spec requires: #('Math-Core') ];
44+
package: 'Math-Clustering'
45+
with:
46+
[ spec requires: #('Math-Numerical' 'Math-Core-Process' 'Math-Matrix') ];
47+
package: 'Math-Complex'
48+
with: [ spec requires: #('Math-Numerical' 'Math-Polynomials') ];
4049
package: 'Math-Core';
41-
package: 'Math-Core-Distribution' with: [ spec requires: #('Math-Core') ];
50+
package: 'Math-Core-Distribution'
51+
with: [ spec requires: #('Math-Core') ];
4252
package: 'Math-Core-Process';
43-
package: 'Math-DHB-Numerical' with: [ spec requires: #('Math-Core' 'Math-Core-Process' 'Math-Core-Distribution' 'Math-DistributionGamma' 'Math-DistributionBeta' 'Math-DistributionForHistogram' 'Math-StatisticalMoments' 'Math-Series') ];
44-
package: 'Math-Polynomials' with: [ spec requires: #('Math-Core' 'Math-Core-Process' 'Math-Core-Distribution' 'Math-DistributionGamma' 'Math-DistributionBeta' 'Math-DistributionForHistogram' 'Math-StatisticalMoments' 'Math-Series') ];
45-
package: 'Math-DistributionBeta' with: [ spec requires: #('Math-DistributionGamma') ];
46-
package: 'Math-DistributionForHistogram' with: [ spec requires: #('Math-Core-Distribution') ];
47-
package: 'Math-DistributionGamma' with: [ spec requires: #('Math-Core-Distribution') ];
48-
package: 'Math-FastFourierTransform' with: [ spec requires: #('Math-Complex') ];
49-
package: 'Math-FunctionFit' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Chromosome' 'Math-Accuracy-Core' 'Math-Core' 'Math-Matrix' 'Math-Polynomials') ];
53+
package: 'Math-Numerical'
54+
with: [ spec
55+
requires:
56+
#('Math-Core' 'Math-Core-Process' 'Math-Core-Distribution' 'Math-DistributionGamma' 'Math-DistributionBeta' 'Math-DistributionForHistogram' 'Math-StatisticalMoments' 'Math-Series') ];
57+
package: 'Math-Polynomials'
58+
with: [ spec
59+
requires:
60+
#('Math-Core' 'Math-Core-Process' 'Math-Core-Distribution' 'Math-DistributionGamma' 'Math-DistributionBeta' 'Math-DistributionForHistogram' 'Math-StatisticalMoments' 'Math-Series') ];
61+
package: 'Math-DistributionBeta'
62+
with: [ spec requires: #('Math-DistributionGamma') ];
63+
package: 'Math-DistributionForHistogram'
64+
with: [ spec requires: #('Math-Core-Distribution') ];
65+
package: 'Math-DistributionGamma'
66+
with: [ spec requires: #('Math-Core-Distribution') ];
67+
package: 'Math-FastFourierTransform'
68+
with: [ spec requires: #('Math-Complex') ];
69+
package: 'Math-FunctionFit'
70+
with: [ spec
71+
requires:
72+
#('Math-Numerical' 'Math-Chromosome' 'Math-Accuracy-Core' 'Math-Core' 'Math-Matrix' 'Math-Polynomials') ];
5073
package: 'Math-KDTree';
51-
package: 'Math-KernelSmoothing' with: [ spec requires: #('Math-Quantile' 'Math-DHB-Numerical' 'Math-Polynomials') ];
52-
package: 'Math-KolmogorovSmirnov' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Polynomials') ];
74+
package: 'Math-KernelSmoothing'
75+
with: [ spec
76+
requires: #('Math-Quantile' 'Math-Numerical' 'Math-Polynomials') ];
77+
package: 'Math-KolmogorovSmirnov'
78+
with: [ spec requires: #('Math-Numerical' 'Math-Polynomials') ];
5379
package: 'Math-Matrix';
5480
package: 'Math-Number-Extensions';
55-
package: 'Math-ODE' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Matrix' 'Math-Polynomials') ];
56-
package: 'Math-Permutation' with:[ spec requires: #('Math-Core' 'Math-Matrix' 'Math-Core-Process') ];
81+
package: 'Math-ODE'
82+
with:
83+
[ spec requires: #('Math-Numerical' 'Math-Matrix' 'Math-Polynomials') ];
84+
package: 'Math-Permutation'
85+
with: [ spec requires: #('Math-Core' 'Math-Matrix' 'Math-Core-Process') ];
5786
package: 'Math-Physics-Constants';
58-
package: 'Math-PrincipalComponentAnalysis' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Matrix' 'Math-Polynomials') ];
87+
package: 'Math-PrincipalComponentAnalysis'
88+
with:
89+
[ spec requires: #('Math-Numerical' 'Math-Matrix' 'Math-Polynomials') ];
5990
package: 'Math-Quantile';
60-
package: 'Math-Quaternion' with: [ spec requires: #('Math-Complex' 'Math-DHB-Numerical' 'Math-Polynomials') ];
91+
package: 'Math-Quaternion'
92+
with:
93+
[ spec requires: #('Math-Complex' 'Math-Numerical' 'Math-Polynomials') ];
6194
package: 'Math-Random';
62-
package: 'Math-RandomDistributionBased' with: [ spec requires: #('Math-DHB-Numerical' 'Math-Polynomials') ];
6395
package: 'Math-Series';
64-
package: 'Math-StatisticalMoments' with: [ spec requires: #('Math-Core' 'Math-DistributionForHistogram') ];
96+
package: 'Math-StatisticalMoments'
97+
with: [ spec requires: #('Math-Core' 'Math-DistributionForHistogram') ];
6598
package: 'Math-TSNE';
66-
package: 'Math-Tests-Accuracy' with: [ spec requires: #('Math-Accuracy-Core') ];
67-
package: 'Math-Tests-ArbitraryPrecisionFloat' with: [ spec requires: #('Math-ArbitraryPrecisionFloat') ];
68-
package: 'Math-Tests-AutomaticDifferenciation' with: [ spec requires: #('Math-AutomaticDifferenciation' 'Math-Matrix') ];
69-
package: 'Math-Tests-Clustering' with: [ spec requires: #('Math-Clustering' 'Math-Core' 'Math-Core-Distribution' 'Math-UtilsDataServer') ];
70-
package: 'Math-Tests-Complex' with: [ spec requires: #('Math-Complex') ];
71-
package: 'Math-Tests-DHB-Numerical' with: [ spec requires: #('Math-DHB-Numerical' 'Math-UtilsDataServer') ];
72-
package: 'Math-Tests-DHB-wk';
73-
package: 'Math-Tests-FastFourierTransform' with: [ spec requires: #('Math-FastFourierTransform' 'Math-DHB-Numerical' 'Math-Polynomials') ];
99+
package: 'Math-Tests-Accuracy'
100+
with: [ spec requires: #('Math-Accuracy-Core') ];
101+
package: 'Math-Tests-ArbitraryPrecisionFloat'
102+
with: [ spec requires: #('Math-ArbitraryPrecisionFloat') ];
103+
package: 'Math-Tests-AutomaticDifferenciation'
104+
with: [ spec requires: #('Math-AutomaticDifferenciation' 'Math-Matrix') ];
105+
package: 'Math-Tests-Clustering'
106+
with: [ spec
107+
requires:
108+
#('Math-Clustering' 'Math-Core' 'Math-Core-Distribution' 'Math-UtilsDataServer') ];
109+
package: 'Math-Tests-Complex'
110+
with: [ spec requires: #('Math-Complex') ];
111+
package: 'Math-Tests-Core'
112+
with: [ spec requires: #('Math-Core') ];
113+
package: 'Math-Tests-Core-Process'
114+
with: [ spec requires: #('Math-Core-Process') ];
115+
package: 'Math-Tests-Numerical'
116+
with: [ spec requires: #('Math-Numerical' 'Math-UtilsDataServer') ];
117+
package: 'Math-Tests-FastFourierTransform'
118+
with: [ spec
119+
requires: #('Math-FastFourierTransform' 'Math-Numerical' 'Math-Polynomials') ];
74120
package: 'Math-Tests-FunctionFit';
75-
package: 'Math-Tests-KDTree' with: [ spec requires: #('Math-KDTree') ];
76-
package: 'Math-Tests-KolmogorovSmirnov' with: [ spec requires: #('Math-DHB-Numerical' 'Math-KolmogorovSmirnov' 'Math-Polynomials') ];
77-
package: 'Math-Tests-Matrix' with: [ spec requires: #('Math-Core' 'Math-DHB-Numerical' 'Math-StatisticalMoments' 'Math-Matrix' 'Math-Polynomials') ];
121+
package: 'Math-Tests-KDTree'
122+
with: [ spec requires: #('Math-KDTree') ];
123+
package: 'Math-Tests-KernelSmoothing'
124+
with: [ spec requires: #('Math-KernelSmoothing') ];
125+
package: 'Math-Tests-KolmogorovSmirnov'
126+
with: [ spec
127+
requires: #('Math-Numerical' 'Math-KolmogorovSmirnov' 'Math-Polynomials') ];
128+
package: 'Math-Tests-Matrix'
129+
with: [ spec
130+
requires:
131+
#('Math-Core' 'Math-Numerical' 'Math-StatisticalMoments' 'Math-Matrix' 'Math-Polynomials') ];
132+
package: 'Math-Tests-Number-Extensions'
133+
with: [ spec requires: #('Math-Number-Extensions') ];
78134
package: 'Math-Tests-ODE' with: [ spec requires: #('Math-ODE') ];
79-
package: 'Math-Tests-Quantile' with: [ spec requires: #('Math-Quantile') ];
80-
package: 'Math-Tests-Polynomials' with: [ spec requires: #('Math-Polynomials') ];
81-
package: 'Math-Tests-Quaternion' with: [ spec requires: #('Math-Quaternion') ];
82-
package: 'Math-Tests-Random' with: [ spec requires: #('Math-Random') ];
135+
package: 'Math-Tests-Permutation'
136+
with: [ spec requires: #('Math-Permutation') ];
137+
package: 'Math-Tests-PrincipalComponentAnalysis'
138+
with: [ spec requires: #('Math-PrincipalComponentAnalysis') ];
139+
package: 'Math-Tests-Quantile'
140+
with: [ spec requires: #('Math-Quantile') ];
141+
package: 'Math-Tests-Polynomials'
142+
with: [ spec requires: #('Math-Polynomials') ];
143+
package: 'Math-Tests-Quaternion'
144+
with: [ spec requires: #('Math-Quaternion') ];
145+
package: 'Math-Tests-Random'
146+
with: [ spec requires: #('Math-Random') ];
147+
package: 'Math-Tests-TSNE'
148+
with: [ spec requires: #('Math-TSNE') ];
83149
package: 'Math-UtilsDataServer'.
84150

85151
"Groups"
86152
spec
87-
group: 'Accuracy' with: #('Math-Accuracy-ODE' 'Math-Accuracy-Core');
88-
group: 'Benchmarks' with: #('Math-Benchmarks-ODE' 'Math-Benchmarks-KDTree');
89-
group: 'Core' with: #('Math-Complex' 'Math-Quaternion' 'Math-DHB-Numerical' 'Math-Random' 'Math-KDTree' 'Math-ODE' 'Math-ArbitraryPrecisionFloat' 'Math-FastFourierTransform' 'ExtendedNumberParser' 'Math-Quantile' 'Math-Physics-Constants' 'Math-Polynomials' 'Math-TSNE');
90-
group: 'Extensions' with: #('Math-Clustering' 'Math-Number-Extensions' 'Math-Chromosome' 'Math-PrincipalComponentAnalysis' 'Math-FunctionFit' 'Math-AutomaticDifferenciation' 'Math-KernelSmoothing' 'Math-Permutation' 'Math-RandomDistributionBased' 'Math-KolmogorovSmirnov');
91-
group: 'Tests' with: #('Math-Tests-Matrix' 'Math-Tests-Clustering' 'Math-Tests-DHB-Numerical' 'Math-Tests-Complex' 'Math-Tests-Quaternion' 'Math-Tests-Random' 'Math-Tests-ODE' 'Math-Tests-KDTree' 'Math-Tests-DHB-wk' 'Math-Tests-FunctionFit' 'Math-Tests-AutomaticDifferenciation' 'Math-Tests-FastFourierTransform' 'Math-Tests-Accuracy' 'Math-Tests-ArbitraryPrecisionFloat' 'Math-Tests-KolmogorovSmirnov' 'Math-Tests-Quantile' 'Math-Tests-Polynomials');
92-
group: 'default' with: #('Core' 'Extensions' 'Tests' 'Benchmarks' 'Accuracy') ]
153+
group: 'Accuracy'
154+
with: #('Math-Accuracy-ODE' 'Math-Accuracy-Core');
155+
group: 'Benchmarks'
156+
with: #('Math-Benchmarks-ODE' 'Math-Benchmarks-KDTree');
157+
group: 'Core'
158+
with:
159+
#('Math-Complex' 'Math-Quaternion' 'Math-Numerical' 'Math-Random' 'Math-KDTree' 'Math-ODE' 'Math-ArbitraryPrecisionFloat' 'Math-FastFourierTransform' 'ExtendedNumberParser' 'Math-Quantile' 'Math-Physics-Constants' 'Math-Polynomials' 'Math-TSNE' 'Math-Core-Process' 'Math-Core' 'Math-Core-Distribution');
160+
group: 'Extensions'
161+
with:
162+
#('Math-Clustering' 'Math-Number-Extensions' 'Math-Chromosome' 'Math-PrincipalComponentAnalysis' 'Math-FunctionFit' 'Math-AutomaticDifferenciation' 'Math-KernelSmoothing' 'Math-Permutation' 'Math-KolmogorovSmirnov');
163+
group: 'Tests'
164+
with:
165+
#('Math-Tests-Matrix' 'Math-Tests-Clustering' 'Math-Tests-Numerical' 'Math-Tests-Complex' 'Math-Tests-Quaternion' 'Math-Tests-Random' 'Math-Tests-ODE' 'Math-Tests-KDTree' 'Math-Tests-FunctionFit' 'Math-Tests-AutomaticDifferenciation' 'Math-Tests-FastFourierTransform' 'Math-Tests-Accuracy' 'Math-Tests-ArbitraryPrecisionFloat' 'Math-Tests-KolmogorovSmirnov' 'Math-Tests-Quantile' 'Math-Tests-Polynomials' 'Math-Tests-PrincipalComponentAnalysis' 'Math-Tests-KernelSmoothing' 'Math-Tests-Number-Extensions' 'Math-Tests-Permutation' 'Math-Tests-TSNE' 'Math-Tests-Core-Process' 'Math-Tests-Core');
166+
group: 'default'
167+
with: #('Core' 'Extensions' 'Tests' 'Benchmarks' 'Accuracy') ]
93168
]
94169

95170
{ #category : #accessing }

0 commit comments

Comments
 (0)