FSharp.Stats icon indicating copy to clipboard operation
FSharp.Stats copied to clipboard

[Feature Request] Update all comments according to XML documentation styling

Open bvenn opened this issue 1 year ago • 1 comments

Description

Documenting your code with XML documentation has the huge benefit of a structured preview and concise description in the automated API reference:

Current triple slash documentation

/// This function takes a collection of x values performs a log transform
let myFunction (xData: seq<float>) = xData |> Seq.map log

Improved XML documentation

/// <summary>This function takes a collection of x values performs a log transform</summary>
/// <remarks>Note, that the log of 0 is -infinity</remarks>
/// <param name="xData">collection of values to be transformed</param>
/// <returns>A collection of log transformed values</returns>
/// <example> 
/// <code> 
/// // e.g. abundance data for ABC
/// let xData = vector [|1.;2.;3.;4.;5.;6.|]
/// 
/// // Apply the log transform to the xData
/// myFunction xData
/// </code> 
/// </example>
let myFunction (xData: seq<float>) = xData |> Seq.map log

References

  • See this examples
  • do not use < or > within the comments, use HTML code instead (&gt; for > and &lt; for <)
  • For further xml tags see: https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/xml-documentation
  • suggested workflow
    • search for a module that isn't worked on yet
    • go from top to bottom and extend the documentation at any point you can see (modules, types, members, functions)
    • try identify and write meaningful code examples within the xml comments
    • build the repository yourself and check if the comments work as intended when hovering over the functions/modules...
Hints (click to expand if you need additional pointers)
  • To be able to contribute to this library you'll need
    • an GitHub account
    • an IDE like Visual Studio Community or Visual Studio Code
    • dotnet 6 sdk
  • to build the binaries yourself follow the instructions
  • while working on the FSharp.Stats documentation (any file within https://github.com/fslaborg/FSharp.Stats/tree/developer/docs) you can navigate to the project folder with a prompt of your choice and use the command ./build watchdocs
  • unit tests can be executed via ./build runtests

Progress

  • [ ] Random
  • [ ] Intervals
  • [ ] Permutation
  • [ ] RunningStats
  • [ ] Seq
  • [ ] Array
  • [ ] List
  • [ ] Map
  • [ ] JaggedArray
  • [ ] Vector
  • [ ] Rowvector
  • [ ] Matrix
  • [ ] Rank
  • [ ] Correlation
  • [ ] DistanceMetrics
  • [ ] Quantile
  • [ ] Precision
  • [ ] Geometry
  • [ ] SpecialFunctions
    • [ ] ...
  • [ ] Algebra
    • [ ] ...
  • [ ] RootFinding
    • [ ] ...
  • [ ] Integration
    • [ ] ...
  • [ ] Optimization
    • [ ] ...
  • [x] Interpolation
    • [x] Polynomial
    • [x] LinearSpline
    • [x] Akima
    • [x] CubicSpline
    • [x] Interpolation
    • [x] Approximation
  • [ ] Signal
    • [x] Normalization
    • [] QQPlot
    • [ ] Padding guide
    • [x] Binning
    • [ ] FFT
    • [ ] Wavelet
    • [ ] ContinuousWavelet
    • [ ] Outliers
    • [ ] Baseline
    • [ ] Filtering <- domain knowledge required
    • [ ] Convolution
    • [ ] PeakDetection
  • [ ] Distributions
    • [ ] every member of each distribution
    • [ ] Bandwidth
    • [ ] Frequency
  • [ ] Testing
    • [ ] TTest
  • [ ] Fitting
    • [x] LinearRegression
      • [x] OLS
        • [x] Linear
          • [x] Univariable
          • [x] Multivariable
          • [ ] RidgeRegression
        • [x] Polynomial
      • [x] RobustRegression
    • [ ] CrossValidation
    • [ ] NonLinearRegression
    • [ ] GoodnessOfFit
    • [ ] LogisticRegression
    • [ ] Spline
  • [ ] ML
    • [ ] ...
  • [ ] ConfidenceInterval

bvenn avatar Jul 11 '23 15:07 bvenn

I can take a look at this. I will start with the Signal - Padding.

OwenMadden avatar Sep 30 '23 07:09 OwenMadden