fsmathtools Wiki & Documentation Rss Feedhttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=Homefsmathtools Wiki Rss DescriptionUpdated Wiki: Homehttp://fsmathtools.codeplex.com/Wiki/View.aspx?title=Home&version=6<div class="wikidoc">
<h1>
FSharp.MathTools: Change of Plans
</h1>In the interest of having one great open source library for the .NET platform we have refocussed our efforts and are now contributing to <a href="http://dnanalytics.codeplex.com/" class="externalLink">dnAnalytics<span class="externalLinkIcon"></span></a>. <a href="http://dnanalytics.codeplex.com/" class="externalLink">dnAnalytics<span class="externalLinkIcon"></span></a> now includes all the functionality that was in FSharp.MathTools and <i>much more</i>. Although <a href="http://dnanalytics.codeplex.com/" class="externalLink">dnAnalytics<span class="externalLinkIcon"></span></a> is written as a C# library with the choice of including fast native code, we have added an F# front end to accomodate the functional programming community. The code for FSharp.MathTools will still be available from this site.<br /> <br />Cheers, Jurgen<br /> <br /> <br /><h2>
Old Information
</h2> <br /><b>Project Description</b><br />This community project is an effort to augment the F# libraries with methods for mathematical computing. We have different bits and pieces of code in different areas which we add as soon as they are tested and have a usable interface.<br /> <br />Our philosophy is to provide an interface for mathematical computing to F#. As for the backend: we plan to implement as much functionality as we can ourselves, but resort to quality libraries that are freely available for specialized functionality. E.g. currently, our Fourier transform library binds to the FFTW library which is a very high quality, high performance Fourier transform implementation which we cannot hope to do a better job on. If you have any suggestions for useful libraries which F# should be able to use, let us know.<br /> <br /><b>Overview</b><br />The code is organized into the following modules:<br /><ol>
<li><i>FSharp.MathTools.Core</i>: currently the major part of this module implements special functions such as gamma, beta, erf, ... Also under this module there will be various other utility function such as a Histogram, etc.</li><li><i>FSharp.MathTools.Stat</i>: implements all functionality related to probability and statistics. The main content of this module is a series of classes that implement various operations (evaluate pdf/cdf, compute means and variances, sample) for standard probability distributions such as the uniform, Bernoulli, normal, exponential, gamma, beta and Dirichlet distributions.</li><li> <i>FSharp.MathTools.Transforms</i>: currently, this module implements experimental bindings to the FFTW fourier transform library. More information and examples on this binding are <a href="http://fsmathtools.codeplex.com/Wiki/View.aspx?title=fftw&referringTitle=Home">here</a>.</li><li> <i>FSharp.MathTools.Optimization</i>: implements algorithms for unconstrained numerical optimization. Currently, there are F# implementations of line search, gradient descent and conjugate gradient algorithms. However, as we explained above, we are evaluating different free libraries for having fast access to a wider range of optimization algorithms, possibly including constrained optimization.</li><li> <i>FSharp.MathTools.IO</i>: augments the F# linear algebra types with functionality to read and write matrices in text of matlab formats.</li><li> <i>FSharp.MathTools.Compatibility.Matlab</i>: essentially some conveniently named shortcuts for common Matlab functions.</li><li><i>FSharp.MathTools.Notation</i>: some convenient names for F# library modules and classes.</li>
</ol> <br /> <br /><b>Roadmap</b><br />Currently, the library is developed on an as-need basis by its developers. Likely extensions for the future are<br /><ul>
<li>more special functions,</li><li>bindings and extensions to the dnAnalytics linear algebra library,</li><li>extended support for numerical optimization,</li><li>performance optimizations: YourKit has kindly agreed to support our open source projects with its full-featured .NET Profiler. This is a great donation to our project and we are excited to use their profiler to improve our library.</li>
</ul>
</div>jvangaelWed, 08 Apr 2009 08:59:03 GMTUpdated Wiki: Home 20090408085903AUPDATED WIKI: Homehttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=Home&version=5<div class="wikidoc">
<b>Project Description</b><br />This community project is an effort to augment the F# libraries with methods for mathematical computing. We have different bits and pieces of code in different areas which we add as soon as they are tested and have a usable interface.<br /> <br />Our philosophy is to provide an interface for mathematical computing to F#. As for the backend: we plan to implement as much functionality as we can ourselves, but resort to quality libraries that are freely available for specialized functionality. E.g. currently, our Fourier transform library binds to the FFTW library which is a very high quality, high performance Fourier transform implementation which we cannot hope to do a better job on. If you have any suggestions for useful libraries which F# should be able to use, let us know.<br /> <br /><b>Overview</b><br />The code is organized into the following modules:<br /><ol>
<li><i>FSharp.MathTools.Core</i>: currently the major part of this module implements special functions such as gamma, beta, erf, ... Also under this module there will be various other utility function such as a Histogram, etc.</li><li><i>FSharp.MathTools.Stat</i>: implements all functionality related to probability and statistics. The main content of this module is a series of classes that implement various operations (evaluate pdf/cdf, compute means and variances, sample) for standard probability distributions such as the uniform, Bernoulli, normal, exponential, gamma, beta and Dirichlet distributions.</li><li> <i>FSharp.MathTools.Transforms</i>: currently, this module implements experimental bindings to the FFTW fourier transform library. More information and examples on this binding are <a href="http://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=fftw&referringTitle=Home">here</a>.</li><li> <i>FSharp.MathTools.Optimization</i>: implements algorithms for unconstrained numerical optimization. Currently, there are F# implementations of line search, gradient descent and conjugate gradient algorithms. However, as we explained above, we are evaluating different free libraries for having fast access to a wider range of optimization algorithms, possibly including constrained optimization.</li><li> <i>FSharp.MathTools.IO</i>: augments the F# linear algebra types with functionality to read and write matrices in text of matlab formats.</li><li> <i>FSharp.MathTools.Compatibility.Matlab</i>: essentially some conveniently named shortcuts for common Matlab functions.</li><li><i>FSharp.MathTools.Notation</i>: some convenient names for F# library modules and classes.</li>
</ol> <br /> <br /><b>Roadmap</b><br />Currently, the library is developed on an as-need basis by its developers. Likely extensions for the future are<br /><ul>
<li>more special functions,</li><li>bindings and extensions to the dnAnalytics linear algebra library,</li><li>extended support for numerical optimization,</li><li>performance optimizations: YourKit has kindly agreed to support our open source projects with its full-featured .NET Profiler. This is a great donation to our project and we are excited to use their profiler to improve our library. Keep posted for more information about the results. In the mean time, we encourage you to check out their products (see below).</li>
</ul> <br /> <br /> <br />YourKit, LLC is creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: <a href="http://www.yourkit.com/.net/profiler/index.jsp" class="externalLink">YourKit .NET Profiler<span class="externalLinkIcon"></span></a> and <a href="http://www.yourkit.com/java/profiler/index.jsp" class="externalLink">YourKit Java Profiler<span class="externalLinkIcon"></span></a><br />
</div>jvangaelWed, 13 Feb 2008 13:19:31 GMTUPDATED WIKI: Home 20080213011931PUPDATED WIKI: Homehttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=Home&version=4<div class="wikidoc">
<b>Project Description</b><br />This community project is an effort to augment the F# libraries with methods for mathematical computing. We have different bits and pieces of code in different areas which we add as soon as they are tested and have a usable interface.<br /> <br />Our philosophy is to provide an interface for mathematical computing to F#. As for the backend: we plan to implement as much functionality as we can ourselves, but resort to quality libraries that are freely available for specialized functionality. E.g. currently, our Fourier transform library binds to the FFTW library which is a very high quality, high performance Fourier transform implementation which we cannot hope to do a better job on. If you have any suggestions for useful libraries which F# should be able to use, let us know.<br /> <br /><b>Overview</b><br />The code is organized into the following modules:<br /><ol>
<li><i>FSharp.MathTools.Core</i>: currently the major part of this module implements special functions such as gamma, beta, erf, ... Also under this module there will be various other utility function such as a Histogram, etc.</li><li><i>FSharp.MathTools.Stat</i>: implements all functionality related to probability and statistics. The main content of this module is a series of classes that implement various operations (evaluate pdf/cdf, compute means and variances, sample) for standard probability distributions such as the uniform, Bernoulli, normal, exponential, gamma, beta and Dirichlet distributions.</li><li> <i>FSharp.MathTools.Transforms</i>: currently, this module implements experimental bindings to the FFTW fourier transform library. More information and examples on this binding are <a href="http://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=fftw&referringTitle=Home">here</a>.</li><li> <i>FSharp.MathTools.Optimization</i>: implements algorithms for unconstrained numerical optimization. Currently, there are F# implementations of line search, gradient descent and conjugate gradient algorithms. However, as we explained above, we are evaluating different free libraries for having fast access to a wider range of optimization algorithms, possibly including constrained optimization.</li><li> <i>FSharp.MathTools.IO</i>: augments the F# linear algebra types with functionality to read and write matrices in text of matlab formats.</li><li> <i>FSharp.MathTools.Compatibility.Matlab</i>: essentially some conveniently named shortcuts for common Matlab functions.</li><li><i>FSharp.MathTools.Notation</i>: some convenient names for F# library modules and classes.</li>
</ol> <br /> <br /><b>Roadmap</b><br />Currently, the library is developed on an as-need basis by its developers. Likely extensions for the future are<br /><ul>
<li>more special functions,</li><li>bindings and extensions to the dnAnalytics linear algebra library,</li><li>extended support for numerical optimization,</li><li>performance optimizations: YourKit has kindly agreed to support our open source projects with its full-featured .NET Profiler. This is a great donation to our project and we are excited to use their profiler to improve our library. Keep posted for more information about the results. In the mean time, we encourage you to check out their products (see below).</li>
</ul> <br /> <br /> <br />YourKit, LLC is creator of innovative and intelligent tools for profiling<br />Java and .NET applications. Take a look at YourKit's leading software products:<br /><a href="http://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a> and<br /><a href="http://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a>. <br />
</div>jvangaelTue, 12 Feb 2008 20:20:27 GMTUPDATED WIKI: Home 20080212082027PUPDATED WIKI: fftwhttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=fftw&version=2<div class="wikidoc">
<h1>
Experimental Fast Fourier Transform
</h1> <br />FSharp.MathTools now includes experimental bindings to the <a href="http://www.fftw.org/" class="externalLink">FFTW<span class="externalLinkIcon"></span></a> fast Fourier transform library. In order to use the bindings with fsmathtools.dll, download the fftw dll's from <a href="http://www.fftw.org/download.html" class="externalLink">here<span class="externalLinkIcon"></span></a>. Put the dll's in your application's directory and you should be set to compute fast fourier transforms! We are currently only experimenting with the library and no other methods than the fourier transform and its inverse are bound. Stay tuned for a more exhaustive interface.<br /> <br />The following sample shows how easy it is to use the FFTW library:<br /><pre>
#light
#r "fsmathtools.dll"
let f = FFT [|1.0;2.0;3.0;4.0|]
let dif = InverseFFT f
</pre>
</div>jvangaelSun, 04 Nov 2007 20:48:07 GMTUPDATED WIKI: fftw 20071104084807PUPDATED WIKI: fftwhttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=fftw&version=1<div class="wikidoc">
<h1>
Experimental Fast Fourier Transform
</h1> <br />FSharp.MathTools now includes experimental bindings to the <a href="http://www.fftw.org/" class="externalLink">FFTW<span class="externalLinkIcon"></span></a> fast Fourier transform libraray. In order to use the bindings. In order to use fsmathtools.dll and download the fftw dll's from <a href="http://www.fftw.org/download.html" class="externalLink">here<span class="externalLinkIcon"></span></a>. Put them into the same directory and you should be set to start computing fast fourier transforms. We are currently only experimenting with the library and no other methods than the fourier transform and its inverse are bound. Stay tuned for a more exhaustive interface.<br /> <br />The following sample shows how easy it is to use the FFTW library:<br /><pre>
#light
#r "fsmathtools.dll"
let f = FFT [|1.0;2.0;3.0;4.0|]
let dif = InverseFFT f
</pre>
</div>jvangaelMon, 29 Oct 2007 07:11:12 GMTUPDATED WIKI: fftw 20071029071112AUPDATED WIKI: Homehttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=Home&version=3<div class="wikidoc">
<b>Project Description</b><br />This project aims to augment the Microsoft F# distribution with code that is of use to the mathematical (or scientific) computing community.
<br /> <br /> <br /><b>Overview and Roadmap</b><br /> <br />This community project is an effort to augment the F# libraries with methods for mathematical computing. We have different bits and pieces of code in different areas which we will add as soon as they are tested and have a usable interface. The areas we are focussing on right now are:<br />- Special functions such as gamma, beta, erf, ...,<br />- PDF/CDF evaluations for standard distributions,<br />- Sampling from standard distributions,<br />- Numerical optimization routines (Gradient Descent, Newton, Quasi-Newton, Conjugate Gradient, ...),<br />- IO for matrix and vector formats,<br />- <a href="http://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=fftw&referringTitle=Home">Fourier Transforms</a>: experimental bindings to FFTW libraray.<br /> <br />If you have any expertise in areas such as interpolation, PDE's, ... and would like to contribute, get in touch with Jurgen.<br />
</div>jvangaelMon, 29 Oct 2007 07:03:27 GMTUPDATED WIKI: Home 20071029070327AUPDATED WIKI: Homehttp://www.codeplex.com/fsmathtools/Wiki/View.aspx?title=Home&version=2<div class="wikidoc">
<b>Project Description</b><br />This project aims to augment the Microsoft F# distribution with code that is of use to the scientific computing community.
<br /> <br /> <br /><b>Overview and Roadmap</b><br /> <br />This community project is an effort to augment the F# libraries with methods for mathematical computing. We have different bits and pieces of code in different areas which we will add as soon as they are tested and have a usable interface. The areas we are focussing on right now are:<br />- Special functions such as gamma, beta, erf, ...,<br />- PDF/CDF evaluations for standard distributions,<br />- Sampling from standard distributions,<br />- Numerical optimization routines (Gradient Descent, Newton, Quasi-Newton, Conjugate Gradient, ...),<br />- IO for matrix and vector formats.<br /> <br />If you have any expertise in areas such as interpolation, PDE's, Fourier Transforms, ... and would like to contribute, get in touch with Jurgen.<br />
</div>jvangaelWed, 03 Oct 2007 10:23:12 GMTUPDATED WIKI: Home 20071003102312A