Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Partial draft

  • Loading branch information...
commit 1a36927377d2eeb17f2a755f0b907126af891c11 1 parent 47d42be
Jason McCampbell authored

Showing 1 changed file with 38 additions and 4 deletions. Show diff stats Hide diff stats

  1. +38 4 math/index.md
42 math/index.md
Source Rendered
@@ -8,22 +8,56 @@ This page provides information about using F# for numerical computing.
8 8
9 9 ### Why F#?
10 10
11   -Why is F# great for solving numerical problems...
  11 +F# is particularly well suited to numerical programming, compared with many
  12 +mainstream languages, because of its functional-first design. Functional programming
  13 +is rooted in the development of lambda calculus and focuses on the definition
  14 +of functions to transform data, as opposed to the manipulation of program state common
  15 +with other popular paradigms such as object-oriented programming.
  16 +As such, the functional style is often a more natural translation of the underlying
  17 +mathematics.
  18 +
  19 +Performance of the code and the developer are two big requirements for numerical computing.
  20 +The computing tasks are often CPU-intensive so the language must be efficient in this
  21 +regard. F# runs on the [Microsoft .NET Common Language Runtime (CLR)](http://msdn.microsoft.com/en-us/library/ddk909ch(v=vs.71).aspx)
  22 +on Windows and on [Mono](http://www.mono-project.com/Main_Page) on Windows, Linux, and Mac OS.
  23 +Both of these environments include high-performance
  24 +[Just-In-Time compilers](http://en.wikipedia.org/wiki/Just-in-time_compilation), which means the
  25 +code is compiled to native code (high-performance) on-demand. The Mono environment additionally
  26 +provides easy access to the [x86 SIMD](http://www.counity.at/blog/2011/hardware-acceleration-in-net-part-1-1-mono-simd-introduction/)
  27 +(Single Instruction, Multiple Data) commands which provide substantial speed-ups
  28 +for certain types of processing.
  29 +
  30 +Being built on the .NET and Mono runtimes, integrating highly optimized,
  31 +native code libraries (C/C++, FORTRAN, etc) such as the Intel Math Kernel Library
  32 +is straightforward.
  33 +
  34 +Performance of the developer is at least as critical as the performance of the resulting
  35 +code. A big part of developer performance is ready access to libraries of common
  36 +algorithms and data structures. The rest of this page surveys some of the most common
  37 +numberical computing libraries available for F#.
  38 +
12 39
13 40 ### Open-source libraries
14 41
15 42 Here are some open source libraries:
16 43
17   - * Math.NET
  44 + * [Math.NET Numerics](https://github.com/mathnet/mathnet-numerics) Math.NET Mumerics provides
  45 + a large collection of common algorithms needed in science and engineering, including
  46 + linear algebra, probability models, random numbers, interpolation, and FFT's. This package
  47 + also includes commonly useful data structure such as sparse and dense vector and matrix
  48 + implementations. The libraries are managed code with wrappers available for optimized native
  49 + implementations such as [MKL](http://software.intel.com/en-us/intel-mkl) and
  50 + [ATLAS](http://math-atlas.sourceforge.net/). License: MIT/X11
18 51
19 52
20 53 ### Commercial libraries
21 54
22 55 Here are some commercial libraries:
23 56
24   - * StatFactory FCore
25   - * QuantAlea
  57 + * [StatFactory FCore](http://www.statfactory.co.uk/)
  58 + * [QuantAlea] (http://www.quantalea.net/). GPU-accelerated financial analysis libraries.
26 59 * Flying Frog
  60 + * MKL?
27 61 * etc..
28 62
29 63

0 comments on commit 1a36927

Please sign in to comment.
Something went wrong with that request. Please try again.