This file records outstanding actions for the math module


dd. 21 september 2021
Ticket de2be80fd27630f85c25c238fe26c89a3dfe9407: direction and octant delete the minus sign lead to diagram display bugs
The changes were made in 2020, so a year ago. It is unclear what has happened and what should still be repaired. Apparently
the definition in the Diagram package is screen-oriented.





dd. 11 may 2021
Update linearalgebra code:
- comparison of strings via ==
- using foreach instead of lassign


dd. 4 march 2021
Paired t-test: https://mathworld.wolfram.com/Pairedt-Test.html


dd. 19 february 2021
Provide alternatives for pdf-gamma/cdf-gamma: using mean and standard deviation instead of alpha and beta

Support Kaplan-Meier for censored data

dd. 11 february 2021
Check:
- statistical procedures for testing " normality" - I saw some obviously not normal datasets that were still not flagged as such
  -- that seems to have been my mistake: comparing the wrong graphs
Implement:
- PPCC
- Plot positions
- QQ plots
- general support for censored data


dd. 19 january 2021
Solve a problem with determineSVD - reported by Nicolas Robert
https://groups.google.com/g/comp.lang.tcl/c/RKcM7OfVkXk
- the code turned out to be correct. Issue was closed.


dd. 4 january 2021
Check the man pages:
- [category] missing in several
- [strong] used (deprecated) - or some other keyword, no, [nl] in quasirandom.man
  math_geometry.man
  probopt.man
  quasirandom.man


dd. 27 november 2020
Stirling numbers - https://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html
                   https://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html

Most efficient via the recurrence relations and memoization?

First kind:   S1(n+1,k) = S1(n,k-1)   - n S1(n,k)    -- S1(n,1) = (-1)**(n-1) * (n-1)! , S1(n,0) = Kronecker(n,0)
Second kind:  S2(n,k)   = S2(n-1,k-1) + k S2(n-1,k)  -- S2(n,n) = 1, S2(n,1) = 1, S2(n,0) = Kronecker(n,0)

-- done

Note: [math::choose] does not take the bigints into account!

More numbers: Fibonacci and Lucas numbers:
F(0) = 1, F(1) = 1, F(n+2) = F(n+1) + F(n)
L(0) = 1, L(1) = 3, L(n+2) = L(n+1) + L(n)

dd. 23 november 2020
Add new procs by Manfred Rosenberger
Clean up some of the code (notably the synonyms)


dd. 2 november 2020
Generate the actual combinations - in math::combinatinatorics
    - take struct::list as an example!!


dd. 20 september 2020
Incorporate suggestions by Manfred Rosenberger for the geometry package - done

dd. 16 august 2020
Statistics:
Based on article by Dennis Helsel:
- Shapiro-Wilk or Anderson-Darling?
- mean according to Kaplan-Meier
- Box-Cox transformation


dd. 17 april 2020
Issue with the totient function:
https://core.tcl-lang.org/tcllib/tktview?name=7017dad214
Done

dd. 6 february 2020
- Implement accelerations for infinite sums:
  - Method described on Wolfram
  - Method for alternating series from the book

dd. 9 february
http://numbers.computation.free.fr/Constants/Miscellaneous/seriesacceleration.html
- provides an overview
https://arxiv.org/pdf/math/0202009.pdf
- also interesting
https://www.cis.twcu.ac.jp/~osada/thesis_osada.pdf
- thesis
https://kconrad.math.uconn.edu/blurbs/analysis/series_acceleration.pdf
- yet another article

dd. 4 november 2019
- Extend the set of test cases for linear interpolation with corner cases
  - these should fail with a clear error message.

dd. 4 september 2018
- Implement a "typical profile" for timeseries and determining residuals
  (Plus perhaps a notion of outliers)
- Implement detection of extreme values/periods with extreme values


dd. 17 june 2018
- Factor out the backward rotation in the intersection routines for circles
- Add a normalisation routine for vectors
- Add routines to construct a perpendicular vector and line
- Add a routine to return the perpendicular bisector of a line segment
- Add routines to deal with triangles (incircle, circumcircle)
- Add various other geometrical procs

- Add documentation of the new procs

dd. 12 june 2018
- Create a complex number based on modulus and argument

dd. 24 january 2018
- Implement plot positions for ranking in statistics package
- Implement a bootstrap method for selecting "new" samples
- Implement maximum likelihood methods for various distributions
  (exponential, normal and binomial are simple enough). Partly esthetical.

dd. 29 may 2017
- Implement Kronecker symbol (extension of Jacobi symbol)

dd. 8 january 2017
- Fix problem with test-anova-F (at least the test cases 1.1 and 1.2) - done


dd. 3 august 2016
- Fix problem in interpolation - integer arguments - done
- Fix problem in pdf-lognormal and cdf-lognormal: stdev is now used as variance - done

dd. 4 august 2016
- Add test case for permuted linear system - done
- Add test case for pdf-lognormal and cdf-lognormal (non-unity standard deviation) - done



dd. 11 april 2016
Fix problem in math::geometry::pointInsidePolygon (Eduard on comp.lang.tcl):

% set polygon "-764 -677 -668 -1341 -124 -797 -508 -406"
-764 -677 -668 -1341 -124 -797 -508 -406
% set point "838 456"
838 456
% package require math::geometry
1.1.3
% ::math::geometry::pointInsidePolygon $point $polygon
1

Possible solution at: https://www.ecse.rpi.edu/~wrf/Research/Short_Notes/pnpoly.html

I fixed the calculation of the point far away - but I want an edge case or two extra!


dd. 10 november 2015, Arjen Markus
Implement Box-Cox and Fisher's F test

Note: Fisher's F test implemented as test-anova-F

dd. 28 october 2015, Arjen Markus
Implement Dunnett's test for means and Levene's test for standard deviations


dd. 1 october 2015, Arjen Markus
Implement the following geometrical functions:
inproduct, crossProduct, areaParallellogram, unitVector, translate, rotate, rotateGeneral, reflect, reflectGeneral,
angleBetween, affine, degToRad, radToDeg, mkAffine

circles and triangles

Still to be implemented:
unitVector, rotateGeneral, reflectGeneral, affine, mkAffine

don't use lset, but lappend instead?

Describe the procedures

Implement tests

dd. 9 september 2015, Arjen Markus
Implement an inverse Student's t function - based on cephes library (cprob.tgz)

dd. 29 may 2015, Arjen Markus
- implement a wavelets module
- small stuff: create a proc that constructs a piece-wise linear function from a specification

dd. 26 april 2015, Arjen Markus
Add:
- additional linear algebra procedures by Federico Ferri
- lognormal income library by Eric Benedict
- empirical distribution
- tukey-duckworth test



dd. 18 january 2014, Arjen Markus
test cases for kernel-density:
One test case is troublesome - uniform kernel, checking the total density


dd. 26 october 2005, Arjen Markus

qcomplex.test: extend the tests for cos/sin .. to include
               non-real results.

dd. 28 september 2005, Arjen Markus

optimize.tcl: linear programming algorithm ignores certain
              constraints (of type x > 0). Needs to be
              fixed

dd. 22 june 2004, Arjen Markus

interpolate.man: add examples
interpolate.tcl: more consistency in the calling convention
                 checks on arguments (add tests for them)
optimize.man: example of a parametrized function (also a test case!)
optimize.tcl: provide an alternative for maximum

