fslaborg / FSharp.Stats

statistical testing, linear algebra, machine learning, fitting and signal processing in F#
https://fslab.org/FSharp.Stats/
Other
210 stars 56 forks source link

Update Normalization module #168

Open bvenn opened 2 years ago

bvenn commented 2 years ago

Description

The normalization module is located within the Signal folder but is within the FSharp.Stats namespace. This should be updated to FSharp.Stats.Signal.

@HLWeil Furthermore the random matrix theory is in Testing.RMT. Although statistical tests are key elements of this method, it is more associated to Signal. Consequently the references must be updated in fslab blogpost.

kMutagene commented 2 years ago

Agreed with everything here, just note that it is not absolutely necessary to update blog posts as the respective packages still work.

bvenn commented 2 years ago

Agreed with everything here, just note that it is not absolutely necessary to update blog posts as the respective packages still work.

It does not work if there is no version defined in the #r nuget reference and a new package is released with the changes, right? At least for FSharp.Stats it seems that no one pinned the version.

kMutagene commented 2 years ago

yup, so i think blog posts should always pin dependencies then

bvenn commented 2 years ago

RMT migration to Signal is more difficult than expected:

- Signal
    - 
- Distribution
    - KernelDensity     <- dependence of Signal.FFT
- Testing               <- dependence of Distribution
    - RMT               <- dependence of Testing.chiSquared, move to Signal

There is no ordering, that does not provoke circular module dependencies. I can think of three options:

  1. Disconnect from folder structure and order all modules by their dependency structure. FSharp.Stats grew quite a bit during the last years, circular module dependencies cannot be circumvented anymore.
  2. Move RMT.fs out of folder structure, move it to the very bottom, and add it to FSharp.Stats.Signal namespace. The folder structure would be broken, and the search for the correct fs would be tedious if this happens more often.
  3. Leave RMT in Testing folder but update namespace from FSharp.Stats.Testing to FSharp.Satts.Signal.

Are there any other options I missed, except of leaving everything as it is? RMT uses Testing but actually it would make sense to move it to Signal.