Browse Source

Math.NET Numerics: 5.0.0-alpha01 docs update

gh-pages
Christoph Ruegg 5 years ago
parent
commit
c33e6c39f5
  1. 10
      Build.html
  2. 72
      DescriptiveStatistics.html
  3. 19
      Generate.html
  4. 111
      IFsharpNotebook.html
  5. 18
      LinearEquations.html
  6. 15
      MKL.html
  7. 66
      Matrix.html
  8. 130
      Probability.html
  9. 67
      Random.html
  10. 4
      Regression.html
  11. 2
      ReleaseNotes-MKL.html
  12. 2
      ReleaseNotes-OpenBLAS.html
  13. 22
      ReleaseNotes.html
  14. 11
      index.html

10
Build.html

@ -104,14 +104,14 @@ is <em>not</em> required when using Visual Studio or the .NET Core SDK directly.
<span class="l">13: </span>
<span class="l">14: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span class="i">unit</span> <span class="i">tests</span>, <span class="k">when</span> <span class="i">using</span> <span class="i">bash</span> <span class="i">shell</span> <span class="i">on</span> <span class="i">Windows</span> <span class="k">or</span> <span class="i">Linux</span><span class="o">.</span>
<span class="i">build</span><span class="o">.</span><span class="i">cmd</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span class="i">unit</span> <span class="i">tests</span>, <span class="k">when</span> <span class="i">using</span> <span class="i">Windows</span> <span class="i">CMD</span> <span class="i">shell</span><span class="o">.</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">unit</span> <span class="i">tests</span>, <span class="k">when</span> <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="i">using</span> <span class="i">bash</span> <span class="i">shell</span> <span class="i">on</span> <span class="i">Windows</span> <span class="k">or</span> <span class="i">Linux</span><span class="o">.</span>
<span class="i">build</span><span class="o">.</span><span class="i">cmd</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span onmouseout="hideTip(event, 'fs1', 3)" onmouseover="showTip(event, 'fs1', 3)" class="i">unit</span> <span class="i">tests</span>, <span class="k">when</span> <span onmouseout="hideTip(event, 'fs2', 4)" onmouseover="showTip(event, 'fs2', 4)" class="i">using</span> <span class="i">Windows</span> <span class="i">CMD</span> <span class="i">shell</span><span class="o">.</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">build</span> # <span class="i">normal</span> <span class="i">build</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">build</span> <span class="i">strongname</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span class="i">also</span> <span class="i">build</span> <span class="i">strong</span><span class="o">-</span><span class="i">named</span> <span class="i">variant</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> # <span class="i">normal</span> <span class="i">build</span>, <span class="i">run</span> <span class="i">unit</span> <span class="i">tests</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> <span class="i">quick</span> # <span class="i">normal</span> <span class="i">build</span>, <span class="i">run</span> <span class="i">unit</span> <span class="i">tests</span> <span class="i">except</span> <span class="i">long</span> <span class="i">running</span> <span class="i">ones</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> # <span class="i">normal</span> <span class="i">build</span>, <span class="i">run</span> <span onmouseout="hideTip(event, 'fs1', 5)" onmouseover="showTip(event, 'fs1', 5)" class="i">unit</span> <span class="i">tests</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> <span class="i">quick</span> # <span class="i">normal</span> <span class="i">build</span>, <span class="i">run</span> <span onmouseout="hideTip(event, 'fs1', 6)" onmouseover="showTip(event, 'fs1', 6)" class="i">unit</span> <span class="i">tests</span> <span class="i">except</span> <span class="i">long</span> <span class="i">running</span> <span class="i">ones</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">clean</span> # <span class="i">cleanup</span> <span class="i">build</span> <span class="i">artifacts</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">docs</span> # <span class="i">generate</span> <span class="i">documentation</span>
@ -273,6 +273,8 @@ this is also what the unit tests do when you run the <code>MklTest</code> build
</li>
</ul>
<div class="tip" id="fs1">type unit = Unit<br /><br />Full name: Microsoft.FSharp.Core.unit</div>
<div class="tip" id="fs2">val using : resource:&#39;T -&gt; action:(&#39;T -&gt; &#39;U) -&gt; &#39;U (requires &#39;T :&gt; System.IDisposable)<br /><br />Full name: Microsoft.FSharp.Core.Operators.using</div>
</div>
<div class="span3">

72
DescriptiveStatistics.html

@ -148,13 +148,13 @@ The mean is affected by outliers, so if you need a more robust estimate consider
<span class="l">7: </span>
<span class="l">8: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">whiteNoise</span> <span class="o">=</span> <span class="i">Generate</span><span class="o">.</span><span class="i">Normal</span>(<span class="n">1000</span>, <span class="i">mean</span><span class="o">=</span><span class="n">10.0</span>, <span class="i">standardDeviation</span><span class="o">=</span><span class="n">2.0</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">whiteNoise</span> <span class="o">=</span> <span class="i">Generate</span><span class="o">.</span><span class="i">Normal</span>(<span class="n">1000</span>, <span class="i">mean</span><span class="o">=</span><span class="n">10.0</span>, <span class="i">standardDeviation</span><span class="o">=</span><span class="n">2.0</span>)
<span class="fsi">val samples : float [] = [|12.90021939; 9.631515037; 7.810008046; 14.13301053; ...|] </span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Mean</span> <span class="i">whiteNoise</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Mean</span> <span onmouseout="hideTip(event, 'fs1', 2)" onmouseover="showTip(event, 'fs1', 2)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 10.02162347</span>
<span class="k">let</span> <span class="i">wave</span> <span class="o">=</span> <span class="i">Generate</span><span class="o">.</span><span class="i">Sinusoidal</span>(<span class="n">1000</span>, <span class="i">samplingRate</span><span class="o">=</span><span class="n">100.</span>, <span class="i">frequency</span><span class="o">=</span><span class="n">5.</span>, <span class="i">amplitude</span><span class="o">=</span><span class="n">0.5</span>)
<span class="i">Statistics</span><span class="o">.</span><span class="i">Mean</span> <span class="i">wave</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs2', 3)" onmouseover="showTip(event, 'fs2', 3)" class="i">wave</span> <span class="o">=</span> <span class="i">Generate</span><span class="o">.</span><span class="i">Sinusoidal</span>(<span class="n">1000</span>, <span class="i">samplingRate</span><span class="o">=</span><span class="n">100.</span>, <span class="i">frequency</span><span class="o">=</span><span class="n">5.</span>, <span class="i">amplitude</span><span class="o">=</span><span class="n">0.5</span>)
<span class="i">Statistics</span><span class="o">.</span><span class="i">Mean</span> <span onmouseout="hideTip(event, 'fs2', 4)" onmouseover="showTip(event, 'fs2', 4)" class="i">wave</span>
<span class="fsi">val it : float = -4.133520783e-17</span>
</code></pre></td>
</tr>
@ -180,12 +180,12 @@ Bessel's correction with an <span class="math">\(N-1\)</span> normalizer to a sa
<span class="l">6: </span>
<span class="l">7: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Variance</span> <span class="i">whiteNoise</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Variance</span> <span onmouseout="hideTip(event, 'fs1', 5)" onmouseover="showTip(event, 'fs1', 5)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 3.819436094</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">StandardDeviation</span> <span class="i">whiteNoise</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">StandardDeviation</span> <span onmouseout="hideTip(event, 'fs1', 6)" onmouseover="showTip(event, 'fs1', 6)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 1.954337764</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Variance</span> <span class="i">wave</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Variance</span> <span onmouseout="hideTip(event, 'fs2', 7)" onmouseover="showTip(event, 'fs2', 7)" class="i">wave</span>
<span class="fsi">val it : float = 0.1251251251</span>
</code></pre></td>
</tr>
@ -199,7 +199,7 @@ that evaluate both in a single pass:</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">MeanVariance</span> <span class="i">whiteNoise</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">MeanVariance</span> <span onmouseout="hideTip(event, 'fs1', 8)" onmouseover="showTip(event, 'fs1', 8)" class="i">whiteNoise</span>
<span class="fsi">val it : float * float = (10.02162347, 3.819436094)</span>
</code></pre></td>
</tr>
@ -217,9 +217,9 @@ apply Bessel's correction to bias in case of sample data.</p>
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Covariance</span>(<span class="i">whiteNoise</span>, <span class="i">whiteNoise</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Covariance</span>(<span onmouseout="hideTip(event, 'fs1', 9)" onmouseover="showTip(event, 'fs1', 9)" class="i">whiteNoise</span>, <span onmouseout="hideTip(event, 'fs1', 10)" onmouseover="showTip(event, 'fs1', 10)" class="i">whiteNoise</span>)
<span class="fsi">val it : float = 3.819436094</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Covariance</span>(<span class="i">whiteNoise</span>, <span class="i">wave</span>)
<span class="i">Statistics</span><span class="o">.</span><span class="i">Covariance</span>(<span onmouseout="hideTip(event, 'fs1', 11)" onmouseover="showTip(event, 'fs1', 11)" class="i">whiteNoise</span>, <span onmouseout="hideTip(event, 'fs2', 12)" onmouseover="showTip(event, 'fs2', 12)" class="i">wave</span>)
<span class="fsi">val it : float = 0.04397985084</span>
</code></pre></td>
</tr>
@ -257,17 +257,17 @@ and also the rest of the library.</p>
<span class="l">11: </span>
<span class="l">12: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">OrderStatistic</span>(<span class="i">whiteNoise</span>, <span class="n">1</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">OrderStatistic</span>(<span onmouseout="hideTip(event, 'fs1', 13)" onmouseover="showTip(event, 'fs1', 13)" class="i">whiteNoise</span>, <span class="n">1</span>)
<span class="fsi">val it : float = 3.633070184</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">OrderStatistic</span>(<span class="i">whiteNoise</span>, <span class="n">1000</span>)
<span class="i">Statistics</span><span class="o">.</span><span class="i">OrderStatistic</span>(<span onmouseout="hideTip(event, 'fs1', 14)" onmouseover="showTip(event, 'fs1', 14)" class="i">whiteNoise</span>, <span class="n">1000</span>)
<span class="fsi">val it : float = 16.65183566</span>
<span class="k">let</span> <span class="i">os</span> <span class="o">=</span> <span class="i">Statistics</span><span class="o">.</span><span class="i">orderStatisticFunc</span> <span class="i">whiteNoise</span>
<span class="i">os</span> <span class="n">250</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs3', 15)" onmouseover="showTip(event, 'fs3', 15)" class="f">os</span> <span class="o">=</span> <span class="i">Statistics</span><span class="o">.</span><span class="i">orderStatisticFunc</span> <span onmouseout="hideTip(event, 'fs1', 16)" onmouseover="showTip(event, 'fs1', 16)" class="i">whiteNoise</span>
<span onmouseout="hideTip(event, 'fs3', 17)" onmouseover="showTip(event, 'fs3', 17)" class="f">os</span> <span class="n">250</span>
<span class="fsi">val it : float = 8.645491746</span>
<span class="i">os</span> <span class="n">500</span>
<span onmouseout="hideTip(event, 'fs3', 18)" onmouseover="showTip(event, 'fs3', 18)" class="f">os</span> <span class="n">500</span>
<span class="fsi">val it : float = 10.11872428</span>
<span class="i">os</span> <span class="n">750</span>
<span onmouseout="hideTip(event, 'fs3', 19)" onmouseover="showTip(event, 'fs3', 19)" class="f">os</span> <span class="n">750</span>
<span class="fsi">val it : float = 11.33170746</span>
</code></pre></td>
</tr>
@ -288,9 +288,9 @@ median-unbiased regardless of the sample distribution. If you need another conve
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Median</span> <span class="i">whiteNoise</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Median</span> <span onmouseout="hideTip(event, 'fs1', 20)" onmouseover="showTip(event, 'fs1', 20)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 10.11872428</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Median</span> <span class="i">wave</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Median</span> <span onmouseout="hideTip(event, 'fs2', 21)" onmouseover="showTip(event, 'fs2', 21)" class="i">wave</span>
<span class="fsi">val it : float = -2.452600839e-16</span>
</code></pre></td>
</tr>
@ -312,9 +312,9 @@ estimates the median as discussed above.</p>
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">LowerQuartile</span> <span class="i">whiteNoise</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">LowerQuartile</span> <span onmouseout="hideTip(event, 'fs1', 22)" onmouseover="showTip(event, 'fs1', 22)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 8.645491746</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">UpperQuartile</span> <span class="i">whiteNoise</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">UpperQuartile</span> <span onmouseout="hideTip(event, 'fs1', 23)" onmouseover="showTip(event, 'fs1', 23)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 11.33213732</span>
</code></pre></td>
</tr>
@ -330,9 +330,9 @@ the maximum value. All these values can be visualized in the popular box plot di
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">FiveNumberSummary</span> <span class="i">whiteNoise</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">FiveNumberSummary</span> <span onmouseout="hideTip(event, 'fs1', 24)" onmouseover="showTip(event, 'fs1', 24)" class="i">whiteNoise</span>
<span class="fsi">val it : float [] = [|3.633070184; 8.645937823; 10.12165054; 11.33213732; 16.65183566|] </span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">FiveNumberSummary</span> <span class="i">wave</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">FiveNumberSummary</span> <span onmouseout="hideTip(event, 'fs2', 25)" onmouseover="showTip(event, 'fs2', 25)" class="i">wave</span>
<span class="fsi">val it : float [] = [|-0.5; -0.3584185509; -2.452600839e-16; 0.3584185509; 0.5|] </span>
</code></pre></td>
</tr>
@ -346,7 +346,7 @@ and is a robust indicator of spread. In box plots the IQR is the total height of
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">InterquartileRange</span> <span class="i">whiteNoise</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">InterquartileRange</span> <span onmouseout="hideTip(event, 'fs1', 26)" onmouseover="showTip(event, 'fs1', 26)" class="i">whiteNoise</span>
<span class="fsi">val it : float = 2.686199498</span>
</code></pre></td>
</tr>
@ -366,9 +366,9 @@ The 0-percentile represents the minimum value, 25 the first quartile, 50 the med
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Percentile</span>(<span class="i">whiteNoise</span>, <span class="n">5</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Percentile</span>(<span onmouseout="hideTip(event, 'fs1', 27)" onmouseover="showTip(event, 'fs1', 27)" class="i">whiteNoise</span>, <span class="n">5</span>)
<span class="fsi">val it : float = 6.693373507</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Percentile</span>(<span class="i">whiteNoise</span>, <span class="n">98</span>)
<span class="i">Statistics</span><span class="o">.</span><span class="i">Percentile</span>(<span onmouseout="hideTip(event, 'fs1', 28)" onmouseover="showTip(event, 'fs1', 28)" class="i">whiteNoise</span>, <span class="n">98</span>)
<span class="fsi">val it : float = 13.97580653</span>
</code></pre></td>
</tr>
@ -385,7 +385,7 @@ the inverse cumulative distribution function of the sample distribution.</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Quantile</span>(<span class="i">whiteNoise</span>, <span class="n">0.98</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Quantile</span>(<span onmouseout="hideTip(event, 'fs1', 29)" onmouseover="showTip(event, 'fs1', 29)" class="i">whiteNoise</span>, <span class="n">0.98</span>)
<span class="fsi">val it : float = 13.97580653</span>
</code></pre></td>
</tr>
@ -447,7 +447,7 @@ Similar to <code>QuantileDefinition</code>, the <code>RankDefinition</code> enum
<span class="l">5: </span>
<span class="l">6: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Ranks</span>(<span class="i">whiteNoise</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">Ranks</span>(<span onmouseout="hideTip(event, 'fs1', 30)" onmouseover="showTip(event, 'fs1', 30)" class="i">whiteNoise</span>)
<span class="fsi">val it : float [] = [|634.0; 736.0; 405.0; 395.0; 197.0; 167.0; 722.0; 44.0; ...|] </span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">Ranks</span>([| <span class="n">13.0</span>; <span class="n">14.0</span>; <span class="n">11.0</span>; <span class="n">12.0</span>; <span class="n">13.0</span> |], <span class="i">RankDefinition</span><span class="o">.</span><span class="i">Average</span>)
<span class="fsi">val it : float [] = [|3.5; 5.0; 1.0; 2.0; 3.5|] </span>
@ -468,9 +468,9 @@ function crosses <span class="math">\(\tau\)</span>.</p>
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">QuantileRank</span>(<span class="i">whiteNoise</span>, <span class="n">13.0</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Statistics</span><span class="o">.</span><span class="i">QuantileRank</span>(<span onmouseout="hideTip(event, 'fs1', 31)" onmouseover="showTip(event, 'fs1', 31)" class="i">whiteNoise</span>, <span class="n">13.0</span>)
<span class="fsi">val it : float = 0.9370045563</span>
<span class="i">Statistics</span><span class="o">.</span><span class="i">QuantileRank</span>(<span class="i">whiteNoise</span>, <span class="n">6.7</span>, <span class="i">RankDefinition</span><span class="o">.</span><span class="i">Average</span>)
<span class="i">Statistics</span><span class="o">.</span><span class="i">QuantileRank</span>(<span onmouseout="hideTip(event, 'fs1', 32)" onmouseover="showTip(event, 'fs1', 32)" class="i">whiteNoise</span>, <span class="n">6.7</span>, <span class="i">RankDefinition</span><span class="o">.</span><span class="i">Average</span>)
<span class="fsi">val it : float = 0.04960610389</span>
</code></pre></td>
</tr>
@ -495,14 +495,14 @@ function crosses <span class="math">\(\tau\)</span>.</p>
<span class="l">12: </span>
<span class="l">13: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">ecdf</span> <span class="o">=</span> <span class="i">Statistics</span><span class="o">.</span><span class="i">EmpiricalCDFFunc</span> <span class="i">whiteNoise</span>
<span class="i">Generate</span><span class="o">.</span><span class="i">LinearSpacedMap</span>(<span class="n">20</span>, <span class="i">start</span><span class="o">=</span><span class="n">3.0</span>, <span class="i">stop</span><span class="o">=</span><span class="n">17.0</span>, <span class="i">map</span><span class="o">=</span><span class="i">ecdf</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs4', 33)" onmouseover="showTip(event, 'fs4', 33)" class="i">ecdf</span> <span class="o">=</span> <span class="i">Statistics</span><span class="o">.</span><span class="i">EmpiricalCDFFunc</span> <span onmouseout="hideTip(event, 'fs1', 34)" onmouseover="showTip(event, 'fs1', 34)" class="i">whiteNoise</span>
<span class="i">Generate</span><span class="o">.</span><span class="i">LinearSpacedMap</span>(<span class="n">20</span>, <span class="i">start</span><span class="o">=</span><span class="n">3.0</span>, <span class="i">stop</span><span class="o">=</span><span class="n">17.0</span>, <span class="i">map</span><span class="o">=</span><span onmouseout="hideTip(event, 'fs4', 35)" onmouseover="showTip(event, 'fs4', 35)" class="i">ecdf</span>)
<span class="fsi">val it : float [] =</span>
<span class="fsi"> [|0.0; 0.001; 0.002; 0.005; 0.022; 0.05; 0.094; 0.172; 0.278; 0.423; 0.555; </span>
<span class="fsi"> 0.705; 0.843; 0.921; 0.944; 0.983; 0.992; 0.997; 0.999; 1.0|] </span>
<span class="k">let</span> <span class="i">eicdf</span> <span class="o">=</span> <span class="i">Statistics</span><span class="o">.</span><span class="i">empiricalInvCDFFunc</span> <span class="i">whiteNoise</span>
[ <span class="k">for</span> <span class="i">tau</span> <span class="k">in</span> <span class="n">0.0</span><span class="o">..</span><span class="n">0.05</span><span class="o">..</span><span class="n">1.0</span> <span class="k">-&gt;</span> <span class="i">eicdf</span> <span class="i">tau</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs5', 36)" onmouseover="showTip(event, 'fs5', 36)" class="f">eicdf</span> <span class="o">=</span> <span class="i">Statistics</span><span class="o">.</span><span class="i">empiricalInvCDFFunc</span> <span onmouseout="hideTip(event, 'fs1', 37)" onmouseover="showTip(event, 'fs1', 37)" class="i">whiteNoise</span>
[ <span class="k">for</span> <span onmouseout="hideTip(event, 'fs6', 38)" onmouseover="showTip(event, 'fs6', 38)" class="i">tau</span> <span class="k">in</span> <span class="n">0.0</span><span class="o">..</span><span class="n">0.05</span><span class="o">..</span><span class="n">1.0</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs5', 39)" onmouseover="showTip(event, 'fs5', 39)" class="f">eicdf</span> <span onmouseout="hideTip(event, 'fs6', 40)" onmouseover="showTip(event, 'fs6', 40)" class="i">tau</span> ]
<span class="fsi">val it : float [] =</span>
<span class="fsi"> [3.633070184; 6.682142043; 7.520000817; 8.040513497; 8.347587493; </span>
<span class="fsi"> 8.645491746; 9.02681611; 9.298987151; 9.522627142; 9.819352699; 10.11872428; </span>
@ -534,6 +534,12 @@ correlation coefficient, as well as their correlation matrix for a set of vector
<span class="k">double</span> correlation <span class="o">=</span> Correlation.Pearson(dataF, dataG);
</code></pre></td></tr></table>
<div class="tip" id="fs1">val whiteNoise : obj<br /><br />Full name: DescriptiveStatistics.whiteNoise</div>
<div class="tip" id="fs2">val wave : obj<br /><br />Full name: DescriptiveStatistics.wave</div>
<div class="tip" id="fs3">val os : (int -&gt; obj)<br /><br />Full name: DescriptiveStatistics.os</div>
<div class="tip" id="fs4">val ecdf : obj<br /><br />Full name: DescriptiveStatistics.ecdf</div>
<div class="tip" id="fs5">val eicdf : (float -&gt; obj)<br /><br />Full name: DescriptiveStatistics.eicdf</div>
<div class="tip" id="fs6">val tau : float</div>
</div>
<div class="span3">

19
Generate.html

@ -77,7 +77,7 @@ single colon <code>:</code> and double colon <code>::</code> operators in MATLAB
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp">[ <span class="n">10.0</span> <span class="o">..</span> <span class="n">2.0</span> <span class="o">..</span> <span class="n">15.0</span> ]
<span class="fsi">val it : float list = [10.0; 12.0; 14.0] </span>
[ <span class="k">for</span> <span class="i">x</span> <span class="k">in</span> <span class="n">10.0</span> <span class="o">..</span> <span class="n">2.0</span> <span class="o">..</span> <span class="n">15.0</span> <span class="k">-&gt;</span> <span class="i">sin</span> <span class="i">x</span> ]
[ <span class="k">for</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">x</span> <span class="k">in</span> <span class="n">10.0</span> <span class="o">..</span> <span class="n">2.0</span> <span class="o">..</span> <span class="n">15.0</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="f">sin</span> <span onmouseout="hideTip(event, 'fs1', 3)" onmouseover="showTip(event, 'fs1', 3)" class="i">x</span> ]
<span class="fsi">val it : float list = [-0.5440211109; -0.536572918; 0.9906073557] </span>
</code></pre></td>
</tr>
@ -111,7 +111,7 @@ Generate.LinearSpacedMap(<span class="n">15</span>, <span class="n">0.0</span>,
<span class="l">4: </span>
<span class="l">5: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Generate</span><span class="o">.</span><span class="i">linearSpacedMap</span> <span class="n">15</span> <span class="n">0.0</span> <span class="i">Math</span><span class="o">.</span><span class="i">PI</span> <span class="i">sin</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Generate</span><span class="o">.</span><span class="i">linearSpacedMap</span> <span class="n">15</span> <span class="n">0.0</span> <span class="i">Math</span><span class="o">.</span><span class="i">PI</span> <span onmouseout="hideTip(event, 'fs2', 4)" onmouseover="showTip(event, 'fs2', 4)" class="i">sin</span>
<span class="fsi">val it : float [] = </span>
<span class="fsi"> [|0.0; 0.222520934; 0.4338837391; 0.6234898019; 0.7818314825; 0.9009688679; </span>
<span class="fsi"> 0.9749279122; 1.0; 0.9749279122; 0.9009688679; 0.7818314825; 0.6234898019; </span>
@ -245,7 +245,7 @@ Generate.Map(a, x <span class="o">=</span><span class="o">&gt;</span> x <span cl
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Array</span><span class="o">.</span><span class="i">map</span> ((<span class="o">+</span>) <span class="n">1.0</span>) <span class="i">a</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span onmouseout="hideTip(event, 'fs3', 5)" onmouseover="showTip(event, 'fs3', 5)" class="t">Array</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs4', 6)" onmouseover="showTip(event, 'fs4', 6)" class="f">map</span> ((<span class="o">+</span>) <span class="n">1.0</span>) <span onmouseout="hideTip(event, 'fs5', 7)" onmouseover="showTip(event, 'fs5', 7)" class="i">a</span>
<span class="fsi">val it : float [] = [|3.0; 5.0; 4.0; 7.0|] </span>
</code></pre></td>
</tr>
@ -261,8 +261,8 @@ You can use LINQ, but that operates on sequences instead of arrays:</p>
<span class="l">2: </span>
<span class="l">3: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">b</span> <span class="o">=</span> [| <span class="n">1.0</span>; <span class="o">-</span><span class="n">1.0</span>; <span class="n">2.0</span>; <span class="o">-</span><span class="n">2.0</span> |]
<span class="i">Generate</span><span class="o">.</span><span class="i">Map2</span>(<span class="i">a</span>, <span class="i">b</span>, <span class="k">fun</span> <span class="i">x</span> <span class="i">y</span> <span class="k">-&gt;</span> <span class="i">x</span> <span class="o">+</span> <span class="i">y</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs6', 8)" onmouseover="showTip(event, 'fs6', 8)" class="i">b</span> <span class="o">=</span> [| <span class="n">1.0</span>; <span class="o">-</span><span class="n">1.0</span>; <span class="n">2.0</span>; <span class="o">-</span><span class="n">2.0</span> |]
<span class="i">Generate</span><span class="o">.</span><span class="i">Map2</span>(<span onmouseout="hideTip(event, 'fs5', 9)" onmouseover="showTip(event, 'fs5', 9)" class="i">a</span>, <span onmouseout="hideTip(event, 'fs6', 10)" onmouseover="showTip(event, 'fs6', 10)" class="i">b</span>, <span class="k">fun</span> <span class="i">x</span> <span class="i">y</span> <span class="k">-&gt;</span> <span class="i">x</span> <span class="o">+</span> <span class="i">y</span>)
<span class="fsi">val it : float [] = [|3.0; 3.0; 5.0; 4.0|] </span>
</code></pre></td>
</tr>
@ -271,7 +271,7 @@ You can use LINQ, but that operates on sequences instead of arrays:</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Array</span><span class="o">.</span><span class="i">map2</span> (<span class="o">+</span>) <span class="i">a</span> <span class="i">b</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span onmouseout="hideTip(event, 'fs3', 11)" onmouseover="showTip(event, 'fs3', 11)" class="t">Array</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs7', 12)" onmouseover="showTip(event, 'fs7', 12)" class="f">map2</span> (<span class="o">+</span>) <span onmouseout="hideTip(event, 'fs5', 13)" onmouseover="showTip(event, 'fs5', 13)" class="i">a</span> <span onmouseout="hideTip(event, 'fs6', 14)" onmouseover="showTip(event, 'fs6', 14)" class="i">b</span>
<span class="fsi">val it : float [] = [|3.0; 3.0; 5.0; 4.0|] </span>
</code></pre></td>
</tr>
@ -282,6 +282,13 @@ You can use LINQ, but that operates on sequences instead of arrays:</p>
<td class="snippet"><pre class="fssnip highlighted"><code lang="csharp">a.Zip(b, (x, y) <span class="o">=</span><span class="o">&gt;</span> x <span class="o">+</span> y).ToArray();
</code></pre></td></tr></table>
<div class="tip" id="fs1">val x : float</div>
<div class="tip" id="fs2">val sin : value:&#39;T -&gt; &#39;T (requires member Sin)<br /><br />Full name: Microsoft.FSharp.Core.Operators.sin</div>
<div class="tip" id="fs3">module Array<br /><br />from Microsoft.FSharp.Collections</div>
<div class="tip" id="fs4">val map : mapping:(&#39;T -&gt; &#39;U) -&gt; array:&#39;T [] -&gt; &#39;U []<br /><br />Full name: Microsoft.FSharp.Collections.Array.map</div>
<div class="tip" id="fs5">val a : float []<br /><br />Full name: Generate.a</div>
<div class="tip" id="fs6">val b : float []<br /><br />Full name: Generate.b</div>
<div class="tip" id="fs7">val map2 : mapping:(&#39;T1 -&gt; &#39;T2 -&gt; &#39;U) -&gt; array1:&#39;T1 [] -&gt; array2:&#39;T2 [] -&gt; &#39;U []<br /><br />Full name: Microsoft.FSharp.Collections.Array.map2</div>
</div>
<div class="span3">

111
IFsharpNotebook.html

@ -129,54 +129,85 @@ Unfortunately loading this script requires the exact version in the path - if yo
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">LinearAlgebra</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="i">Float</span>|_|) (<span class="i">v</span><span class="o">:</span><span class="i">obj</span>) <span class="o">=</span>
<span class="k">if</span> <span class="i">v</span> <span class="o">:?</span> <span class="i">float</span> <span class="k">then</span> <span class="i">Some</span>(<span class="i">v</span> <span class="o">:?&gt;</span> <span class="i">float</span>) <span class="k">else</span> <span class="i">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="i">Float32</span>|_|) (<span class="i">v</span><span class="o">:</span><span class="i">obj</span>) <span class="o">=</span>
<span class="k">if</span> <span class="i">v</span> <span class="o">:?</span> <span class="i">float32</span> <span class="k">then</span> <span class="i">Some</span>(<span class="i">v</span> <span class="o">:?&gt;</span> <span class="i">float32</span>) <span class="k">else</span> <span class="i">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="i">PositiveInfinity</span>|_|) (<span class="i">v</span><span class="o">:</span> <span class="o">^</span><span class="i">T</span>) <span class="o">=</span>
<span class="k">if</span> (<span class="o">^</span><span class="i">T</span> <span class="o">:</span> (<span class="k">static</span> <span class="k">member</span> <span class="i">IsPositiveInfinity</span><span class="o">:</span> <span class="o">&#39;</span><span class="i">T</span> <span class="k">-&gt;</span> <span class="i">bool</span>) (<span class="i">v</span>))
<span class="k">then</span> <span class="i">Some</span> <span class="i">PositiveInfinity</span> <span class="k">else</span> <span class="i">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="i">NegativeInfinity</span>|_|) (<span class="i">v</span><span class="o">:</span> <span class="o">^</span><span class="i">T</span>) <span class="o">=</span>
<span class="k">if</span> (<span class="o">^</span><span class="i">T</span> <span class="o">:</span> (<span class="k">static</span> <span class="k">member</span> <span class="i">IsNegativeInfinity</span><span class="o">:</span> <span class="o">&#39;</span><span class="i">T</span> <span class="k">-&gt;</span> <span class="i">bool</span>) (<span class="i">v</span>))
<span class="k">then</span> <span class="i">Some</span> <span class="i">NegativeInfinity</span> <span class="k">else</span> <span class="i">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="i">NaN</span>|_|) (<span class="i">v</span><span class="o">:</span> <span class="o">^</span><span class="i">T</span>) <span class="o">=</span>
<span class="k">if</span> (<span class="o">^</span><span class="i">T</span> <span class="o">:</span> (<span class="k">static</span> <span class="k">member</span> <span class="i">IsNaN</span><span class="o">:</span> <span class="o">&#39;</span><span class="i">T</span> <span class="k">-&gt;</span> <span class="i">bool</span>) (<span class="i">v</span>))
<span class="k">then</span> <span class="i">Some</span> <span class="i">NaN</span> <span class="k">else</span> <span class="i">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="p">Float</span>|_|) (<span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">v</span><span class="o">:</span><span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="t">obj</span>) <span class="o">=</span>
<span class="k">if</span> <span onmouseout="hideTip(event, 'fs1', 3)" onmouseover="showTip(event, 'fs1', 3)" class="i">v</span> <span class="o">:?</span> <span onmouseout="hideTip(event, 'fs3', 4)" onmouseover="showTip(event, 'fs3', 4)" class="t">float</span> <span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 5)" onmouseover="showTip(event, 'fs4', 5)" class="p">Some</span>(<span onmouseout="hideTip(event, 'fs1', 6)" onmouseover="showTip(event, 'fs1', 6)" class="i">v</span> <span class="o">:?&gt;</span> <span onmouseout="hideTip(event, 'fs3', 7)" onmouseover="showTip(event, 'fs3', 7)" class="t">float</span>) <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 8)" onmouseover="showTip(event, 'fs5', 8)" class="p">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="p">Float32</span>|_|) (<span onmouseout="hideTip(event, 'fs1', 9)" onmouseover="showTip(event, 'fs1', 9)" class="i">v</span><span class="o">:</span><span onmouseout="hideTip(event, 'fs2', 10)" onmouseover="showTip(event, 'fs2', 10)" class="t">obj</span>) <span class="o">=</span>
<span class="k">if</span> <span onmouseout="hideTip(event, 'fs1', 11)" onmouseover="showTip(event, 'fs1', 11)" class="i">v</span> <span class="o">:?</span> <span onmouseout="hideTip(event, 'fs6', 12)" onmouseover="showTip(event, 'fs6', 12)" class="t">float32</span> <span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 13)" onmouseover="showTip(event, 'fs4', 13)" class="p">Some</span>(<span onmouseout="hideTip(event, 'fs1', 14)" onmouseover="showTip(event, 'fs1', 14)" class="i">v</span> <span class="o">:?&gt;</span> <span onmouseout="hideTip(event, 'fs6', 15)" onmouseover="showTip(event, 'fs6', 15)" class="t">float32</span>) <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 16)" onmouseover="showTip(event, 'fs5', 16)" class="p">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="p">PositiveInfinity</span>|_|) (<span onmouseout="hideTip(event, 'fs7', 17)" onmouseover="showTip(event, 'fs7', 17)" class="i">v</span><span class="o">:</span> <span class="o">^</span><span class="i">T</span>) <span class="o">=</span>
<span class="k">if</span> (<span class="o">^</span><span class="i">T</span> <span class="o">:</span> (<span class="k">static</span> <span class="k">member</span> <span class="i">IsPositiveInfinity</span><span class="o">:</span> <span class="o">&#39;</span><span class="i">T</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs8', 18)" onmouseover="showTip(event, 'fs8', 18)" class="t">bool</span>) (<span onmouseout="hideTip(event, 'fs7', 19)" onmouseover="showTip(event, 'fs7', 19)" class="i">v</span>))
<span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 20)" onmouseover="showTip(event, 'fs4', 20)" class="p">Some</span> <span class="p">PositiveInfinity</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 21)" onmouseover="showTip(event, 'fs5', 21)" class="p">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="p">NegativeInfinity</span>|_|) (<span onmouseout="hideTip(event, 'fs9', 22)" onmouseover="showTip(event, 'fs9', 22)" class="i">v</span><span class="o">:</span> <span class="o">^</span><span class="i">T</span>) <span class="o">=</span>
<span class="k">if</span> (<span class="o">^</span><span class="i">T</span> <span class="o">:</span> (<span class="k">static</span> <span class="k">member</span> <span class="i">IsNegativeInfinity</span><span class="o">:</span> <span class="o">&#39;</span><span class="i">T</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs8', 23)" onmouseover="showTip(event, 'fs8', 23)" class="t">bool</span>) (<span onmouseout="hideTip(event, 'fs9', 24)" onmouseover="showTip(event, 'fs9', 24)" class="i">v</span>))
<span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 25)" onmouseover="showTip(event, 'fs4', 25)" class="p">Some</span> <span class="p">NegativeInfinity</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 26)" onmouseover="showTip(event, 'fs5', 26)" class="p">None</span>
<span class="k">let</span> <span class="k">inline</span> (|<span class="p">NaN</span>|_|) (<span onmouseout="hideTip(event, 'fs10', 27)" onmouseover="showTip(event, 'fs10', 27)" class="i">v</span><span class="o">:</span> <span class="o">^</span><span class="i">T</span>) <span class="o">=</span>
<span class="k">if</span> (<span class="o">^</span><span class="i">T</span> <span class="o">:</span> (<span class="k">static</span> <span class="k">member</span> <span class="i">IsNaN</span><span class="o">:</span> <span class="o">&#39;</span><span class="i">T</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs8', 28)" onmouseover="showTip(event, 'fs8', 28)" class="t">bool</span>) (<span onmouseout="hideTip(event, 'fs10', 29)" onmouseover="showTip(event, 'fs10', 29)" class="i">v</span>))
<span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 30)" onmouseover="showTip(event, 'fs4', 30)" class="p">Some</span> <span class="p">NaN</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 31)" onmouseover="showTip(event, 'fs5', 31)" class="p">None</span>
<span class="k">let</span> <span class="k">inline</span> <span class="i">formatMathValue</span> (<span class="i">floatFormat</span><span class="o">:</span><span class="i">string</span>) <span class="o">=</span> <span class="k">function</span>
| <span class="i">PositiveInfinity</span> <span class="k">-&gt;</span> <span class="s">&quot;\\infty&quot;</span>
| <span class="i">NegativeInfinity</span> <span class="k">-&gt;</span> <span class="s">&quot;-\\infty&quot;</span>
| <span class="i">NaN</span> <span class="k">-&gt;</span> <span class="s">&quot;\\times&quot;</span>
| <span class="i">Float</span> <span class="i">v</span> <span class="k">-&gt;</span> <span class="i">v</span><span class="o">.</span><span class="i">ToString</span>(<span class="i">floatFormat</span>)
| <span class="i">Float32</span> <span class="i">v</span> <span class="k">-&gt;</span> <span class="i">v</span><span class="o">.</span><span class="i">ToString</span>(<span class="i">floatFormat</span>)
| <span class="i">v</span> <span class="k">-&gt;</span> <span class="i">v</span><span class="o">.</span><span class="i">ToString</span>()
<span class="k">let</span> <span class="k">inline</span> <span onmouseout="hideTip(event, 'fs11', 32)" onmouseover="showTip(event, 'fs11', 32)" class="f">formatMathValue</span> (<span onmouseout="hideTip(event, 'fs12', 33)" onmouseover="showTip(event, 'fs12', 33)" class="i">floatFormat</span><span class="o">:</span><span onmouseout="hideTip(event, 'fs13', 34)" onmouseover="showTip(event, 'fs13', 34)" class="t">string</span>) <span class="o">=</span> <span class="k">function</span>
| <span onmouseout="hideTip(event, 'fs14', 35)" onmouseover="showTip(event, 'fs14', 35)" class="p">PositiveInfinity</span> <span class="k">-&gt;</span> <span class="s">&quot;</span><span class="e">\\</span><span class="s">infty&quot;</span>
| <span onmouseout="hideTip(event, 'fs15', 36)" onmouseover="showTip(event, 'fs15', 36)" class="p">NegativeInfinity</span> <span class="k">-&gt;</span> <span class="s">&quot;-</span><span class="e">\\</span><span class="s">infty&quot;</span>
| <span onmouseout="hideTip(event, 'fs16', 37)" onmouseover="showTip(event, 'fs16', 37)" class="p">NaN</span> <span class="k">-&gt;</span> <span class="s">&quot;</span><span class="e">\\</span><span class="s">times&quot;</span>
| <span onmouseout="hideTip(event, 'fs17', 38)" onmouseover="showTip(event, 'fs17', 38)" class="p">Float</span> <span onmouseout="hideTip(event, 'fs18', 39)" onmouseover="showTip(event, 'fs18', 39)" class="i">v</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs18', 40)" onmouseover="showTip(event, 'fs18', 40)" class="i">v</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs19', 41)" onmouseover="showTip(event, 'fs19', 41)" class="f">ToString</span>(<span onmouseout="hideTip(event, 'fs12', 42)" onmouseover="showTip(event, 'fs12', 42)" class="i">floatFormat</span>)
| <span onmouseout="hideTip(event, 'fs20', 43)" onmouseover="showTip(event, 'fs20', 43)" class="p">Float32</span> <span onmouseout="hideTip(event, 'fs21', 44)" onmouseover="showTip(event, 'fs21', 44)" class="i">v</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs21', 45)" onmouseover="showTip(event, 'fs21', 45)" class="i">v</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs22', 46)" onmouseover="showTip(event, 'fs22', 46)" class="f">ToString</span>(<span onmouseout="hideTip(event, 'fs12', 47)" onmouseover="showTip(event, 'fs12', 47)" class="i">floatFormat</span>)
| <span onmouseout="hideTip(event, 'fs23', 48)" onmouseover="showTip(event, 'fs23', 48)" class="i">v</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs23', 49)" onmouseover="showTip(event, 'fs23', 49)" class="i">v</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs24', 50)" onmouseover="showTip(event, 'fs24', 50)" class="f">ToString</span>()
<span class="k">let</span> <span class="k">inline</span> <span class="i">formatMatrix</span> (<span class="i">matrix</span><span class="o">:</span> <span class="i">Matrix</span><span class="o">&lt;</span><span class="o">&#39;</span><span class="i">T</span><span class="o">&gt;</span>) <span class="o">=</span>
<span class="i">String</span><span class="o">.</span><span class="i">concat</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>
[ <span class="s">&quot;\\begin{bmatrix}&quot;</span>
<span class="i">matrix</span><span class="o">.</span><span class="i">ToMatrixString</span>(<span class="n">10</span>,<span class="n">4</span>,<span class="n">7</span>,<span class="n">2</span>,<span class="s">&quot;\\cdots&quot;</span>,<span class="s">&quot;\\vdots&quot;</span>,<span class="s">&quot;\\ddots&quot;</span>,
<span class="s">&quot; &amp; &quot;</span>, <span class="s">&quot;\\\\ &quot;</span> <span class="o">+</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>, (<span class="k">fun</span> <span class="i">x</span> <span class="k">-&gt;</span> <span class="i">formatMathValue</span> <span class="s">&quot;G4&quot;</span> <span class="i">x</span>))
<span class="s">&quot;\\end{bmatrix}&quot;</span> ]
<span class="k">let</span> <span class="k">inline</span> <span onmouseout="hideTip(event, 'fs25', 51)" onmouseover="showTip(event, 'fs25', 51)" class="f">formatMatrix</span> (<span onmouseout="hideTip(event, 'fs26', 52)" onmouseover="showTip(event, 'fs26', 52)" class="i">matrix</span><span class="o">:</span> <span class="i">Matrix</span><span class="o">&lt;</span><span class="o">&#39;</span><span class="i">T</span><span class="o">&gt;</span>) <span class="o">=</span>
<span onmouseout="hideTip(event, 'fs27', 53)" onmouseover="showTip(event, 'fs27', 53)" class="t">String</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs28', 54)" onmouseover="showTip(event, 'fs28', 54)" class="f">concat</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>
[ <span class="s">&quot;</span><span class="e">\\</span><span class="s">begin{bmatrix}&quot;</span>
<span onmouseout="hideTip(event, 'fs26', 55)" onmouseover="showTip(event, 'fs26', 55)" class="i">matrix</span><span class="o">.</span><span class="i">ToMatrixString</span>(<span class="n">10</span>,<span class="n">4</span>,<span class="n">7</span>,<span class="n">2</span>,<span class="s">&quot;</span><span class="e">\\</span><span class="s">cdots&quot;</span>,<span class="s">&quot;</span><span class="e">\\</span><span class="s">vdots&quot;</span>,<span class="s">&quot;</span><span class="e">\\</span><span class="s">ddots&quot;</span>,
<span class="s">&quot; &amp; &quot;</span>, <span class="s">&quot;</span><span class="e">\\</span><span class="s"></span><span class="e">\\</span><span class="s"> &quot;</span> <span class="o">+</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>, (<span class="k">fun</span> <span class="i">x</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs11', 56)" onmouseover="showTip(event, 'fs11', 56)" class="i">formatMathValue</span> <span class="s">&quot;G4&quot;</span> <span class="i">x</span>))
<span class="s">&quot;</span><span class="e">\\</span><span class="s">end{bmatrix}&quot;</span> ]
<span class="k">let</span> <span class="k">inline</span> <span class="i">formatVector</span> (<span class="i">vector</span><span class="o">:</span> <span class="i">Vector</span><span class="o">&lt;</span><span class="o">&#39;</span><span class="i">T</span><span class="o">&gt;</span>) <span class="o">=</span>
<span class="i">String</span><span class="o">.</span><span class="i">concat</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>
[ <span class="s">&quot;\\begin{bmatrix}&quot;</span>
<span class="i">vector</span><span class="o">.</span><span class="i">ToVectorString</span>(<span class="n">12</span>, <span class="n">80</span>, <span class="s">&quot;\\vdots&quot;</span>, <span class="s">&quot; &amp; &quot;</span>, <span class="s">&quot;\\\\ &quot;</span> <span class="o">+</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>,
(<span class="k">fun</span> <span class="i">x</span> <span class="k">-&gt;</span> <span class="i">formatMathValue</span> <span class="s">&quot;G4&quot;</span> <span class="i">x</span>))
<span class="s">&quot;\\end{bmatrix}&quot;</span> ]
<span class="k">let</span> <span class="k">inline</span> <span onmouseout="hideTip(event, 'fs29', 57)" onmouseover="showTip(event, 'fs29', 57)" class="f">formatVector</span> (<span onmouseout="hideTip(event, 'fs30', 58)" onmouseover="showTip(event, 'fs30', 58)" class="i">vector</span><span class="o">:</span> <span class="i">Vector</span><span class="o">&lt;</span><span class="o">&#39;</span><span class="i">T</span><span class="o">&gt;</span>) <span class="o">=</span>
<span onmouseout="hideTip(event, 'fs27', 59)" onmouseover="showTip(event, 'fs27', 59)" class="t">String</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs28', 60)" onmouseover="showTip(event, 'fs28', 60)" class="f">concat</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>
[ <span class="s">&quot;</span><span class="e">\\</span><span class="s">begin{bmatrix}&quot;</span>
<span onmouseout="hideTip(event, 'fs30', 61)" onmouseover="showTip(event, 'fs30', 61)" class="i">vector</span><span class="o">.</span><span class="i">ToVectorString</span>(<span class="n">12</span>, <span class="n">80</span>, <span class="s">&quot;</span><span class="e">\\</span><span class="s">vdots&quot;</span>, <span class="s">&quot; &amp; &quot;</span>, <span class="s">&quot;</span><span class="e">\\</span><span class="s"></span><span class="e">\\</span><span class="s"> &quot;</span> <span class="o">+</span> <span class="i">Environment</span><span class="o">.</span><span class="i">NewLine</span>,
(<span class="k">fun</span> <span class="i">x</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs11', 62)" onmouseover="showTip(event, 'fs11', 62)" class="i">formatMathValue</span> <span class="s">&quot;G4&quot;</span> <span class="i">x</span>))
<span class="s">&quot;</span><span class="e">\\</span><span class="s">end{bmatrix}&quot;</span> ]
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Matrix</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span class="i">Data</span> <span class="o">=</span> <span class="i">formatMatrix</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Matrix</span><span class="o">&lt;</span><span class="i">float32</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span class="i">Data</span> <span class="o">=</span> <span class="i">formatMatrix</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Vector</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span class="i">Data</span> <span class="o">=</span> <span class="i">formatVector</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Vector</span><span class="o">&lt;</span><span class="i">float32</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span class="i">Data</span> <span class="o">=</span> <span class="i">formatVector</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Matrix</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs3', 63)" onmouseover="showTip(event, 'fs3', 63)" class="i">float</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span onmouseout="hideTip(event, 'fs31', 64)" onmouseover="showTip(event, 'fs31', 64)" class="i">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs25', 65)" onmouseover="showTip(event, 'fs25', 65)" class="i">formatMatrix</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Matrix</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs6', 66)" onmouseover="showTip(event, 'fs6', 66)" class="i">float32</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span onmouseout="hideTip(event, 'fs31', 67)" onmouseover="showTip(event, 'fs31', 67)" class="i">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs25', 68)" onmouseover="showTip(event, 'fs25', 68)" class="i">formatMatrix</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Vector</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs3', 69)" onmouseover="showTip(event, 'fs3', 69)" class="i">float</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span onmouseout="hideTip(event, 'fs31', 70)" onmouseover="showTip(event, 'fs31', 70)" class="i">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs29', 71)" onmouseover="showTip(event, 'fs29', 71)" class="i">formatVector</span> <span class="i">x</span> })
<span class="i">App</span><span class="o">.</span><span class="i">AddDisplayPrinter</span> (<span class="k">fun</span> (<span class="i">x</span><span class="o">:</span><span class="i">Vector</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs6', 72)" onmouseover="showTip(event, 'fs6', 72)" class="i">float32</span><span class="o">&gt;</span>) <span class="k">-&gt;</span>
{ <span class="i">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span>; <span onmouseout="hideTip(event, 'fs31', 73)" onmouseover="showTip(event, 'fs31', 73)" class="i">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs29', 74)" onmouseover="showTip(event, 'fs29', 74)" class="i">formatVector</span> <span class="i">x</span> })
</code></pre></td>
</tr>
</table>
<div class="tip" id="fs1">val v : obj</div>
<div class="tip" id="fs2">type obj = System.Object<br /><br />Full name: Microsoft.FSharp.Core.obj</div>
<div class="tip" id="fs3">Multiple items<br />val float : value:&#39;T -&gt; float (requires member op_Explicit)<br /><br />Full name: Microsoft.FSharp.Core.Operators.float<br /><br />--------------------<br />type float = System.Double<br /><br />Full name: Microsoft.FSharp.Core.float<br /><br />--------------------<br />type float&lt;&#39;Measure&gt; = float<br /><br />Full name: Microsoft.FSharp.Core.float&lt;_&gt;</div>
<div class="tip" id="fs4">union case Option.Some: Value: &#39;T -&gt; Option&lt;&#39;T&gt;</div>
<div class="tip" id="fs5">union case Option.None: Option&lt;&#39;T&gt;</div>
<div class="tip" id="fs6">Multiple items<br />val float32 : value:&#39;T -&gt; float32 (requires member op_Explicit)<br /><br />Full name: Microsoft.FSharp.Core.Operators.float32<br /><br />--------------------<br />type float32 = System.Single<br /><br />Full name: Microsoft.FSharp.Core.float32<br /><br />--------------------<br />type float32&lt;&#39;Measure&gt; = float32<br /><br />Full name: Microsoft.FSharp.Core.float32&lt;_&gt;</div>
<div class="tip" id="fs7">val v : &#39;T (requires member IsPositiveInfinity)</div>
<div class="tip" id="fs8">type bool = System.Boolean<br /><br />Full name: Microsoft.FSharp.Core.bool</div>
<div class="tip" id="fs9">val v : &#39;T (requires member IsNegativeInfinity)</div>
<div class="tip" id="fs10">val v : &#39;T (requires member IsNaN)</div>
<div class="tip" id="fs11">val formatMathValue : floatFormat:string -&gt; _arg1:&#39;a -&gt; string (requires member IsNaN and member IsPositiveInfinity and member IsNegativeInfinity)<br /><br />Full name: IFsharpNotebook.formatMathValue</div>
<div class="tip" id="fs12">val floatFormat : string</div>
<div class="tip" id="fs13">Multiple items<br />val string : value:&#39;T -&gt; string<br /><br />Full name: Microsoft.FSharp.Core.Operators.string<br /><br />--------------------<br />type string = System.String<br /><br />Full name: Microsoft.FSharp.Core.string</div>
<div class="tip" id="fs14">active recognizer PositiveInfinity: &#39;T -&gt; unit option<br /><br />Full name: IFsharpNotebook.( |PositiveInfinity|_| )</div>
<div class="tip" id="fs15">active recognizer NegativeInfinity: &#39;T -&gt; unit option<br /><br />Full name: IFsharpNotebook.( |NegativeInfinity|_| )</div>
<div class="tip" id="fs16">active recognizer NaN: &#39;T -&gt; unit option<br /><br />Full name: IFsharpNotebook.( |NaN|_| )</div>
<div class="tip" id="fs17">active recognizer Float: obj -&gt; float option<br /><br />Full name: IFsharpNotebook.( |Float|_| )</div>
<div class="tip" id="fs18">val v : float</div>
<div class="tip" id="fs19">System.Double.ToString() : string<br />System.Double.ToString(provider: System.IFormatProvider) : string<br />System.Double.ToString(format: string) : string<br />System.Double.ToString(format: string, provider: System.IFormatProvider) : string</div>
<div class="tip" id="fs20">active recognizer Float32: obj -&gt; float32 option<br /><br />Full name: IFsharpNotebook.( |Float32|_| )</div>
<div class="tip" id="fs21">val v : float32</div>
<div class="tip" id="fs22">System.Single.ToString() : string<br />System.Single.ToString(format: string) : string<br />System.Single.ToString(provider: System.IFormatProvider) : string<br />System.Single.ToString(format: string, provider: System.IFormatProvider) : string</div>
<div class="tip" id="fs23">val v : &#39;a (requires member IsNaN and member IsPositiveInfinity and member IsNegativeInfinity)</div>
<div class="tip" id="fs24">System.Object.ToString() : string</div>
<div class="tip" id="fs25">val formatMatrix : matrix:&#39;a -&gt; string<br /><br />Full name: IFsharpNotebook.formatMatrix</div>
<div class="tip" id="fs26">val matrix : &#39;a</div>
<div class="tip" id="fs27">module String<br /><br />from Microsoft.FSharp.Core</div>
<div class="tip" id="fs28">val concat : sep:string -&gt; strings:seq&lt;string&gt; -&gt; string<br /><br />Full name: Microsoft.FSharp.Core.String.concat</div>
<div class="tip" id="fs29">val formatVector : vector:&#39;a -&gt; string<br /><br />Full name: IFsharpNotebook.formatVector</div>
<div class="tip" id="fs30">val vector : &#39;a</div>
<div class="tip" id="fs31">namespace Microsoft.FSharp.Data</div>
</div>
<div class="span3">

18
LinearEquations.html

@ -117,11 +117,11 @@ a_{m1} &amp; a_{m2} &amp; \cdots &amp; a_{mn}
<span class="l">4: </span>
<span class="l">5: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">A</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">3.0</span>; <span class="n">2.0</span>; <span class="o">-</span><span class="n">1.0</span> ]
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">A</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">3.0</span>; <span class="n">2.0</span>; <span class="o">-</span><span class="n">1.0</span> ]
[ <span class="n">2.0</span>; <span class="o">-</span><span class="n">2.0</span>; <span class="n">4.0</span> ]
[ <span class="o">-</span><span class="n">1.0</span>; <span class="n">0.5</span>; <span class="o">-</span><span class="n">1.0</span> ]]
<span class="k">let</span> <span class="i">b</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">1.0</span>; <span class="o">-</span><span class="n">2.0</span>; <span class="n">0.0</span> ]
<span class="k">let</span> <span class="i">x</span> <span class="o">=</span> <span class="i">A</span><span class="o">.</span><span class="i">Solve</span>(<span class="i">b</span>) <span class="c">// 1;-2;-2</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="i">b</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">1.0</span>; <span class="o">-</span><span class="n">2.0</span>; <span class="n">0.0</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs3', 3)" onmouseover="showTip(event, 'fs3', 3)" class="i">x</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs1', 4)" onmouseover="showTip(event, 'fs1', 4)" class="i">A</span><span class="o">.</span><span class="i">Solve</span>(<span onmouseout="hideTip(event, 'fs2', 5)" onmouseover="showTip(event, 'fs2', 5)" class="i">b</span>) <span class="c">// 1;-2;-2</span>
</code></pre></td>
</tr>
</table>
@ -158,16 +158,22 @@ become zero on the right side), by introducing a new column each. First we subtr
<span class="l">5: </span>
<span class="l">6: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">A&#39;</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">3.0</span>; <span class="n">4.0</span>; <span class="o">-</span><span class="n">1.0</span>; <span class="n">0.0</span> ]
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs4', 6)" onmouseover="showTip(event, 'fs4', 6)" class="i">A&#39;</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">3.0</span>; <span class="n">4.0</span>; <span class="o">-</span><span class="n">1.0</span>; <span class="n">0.0</span> ]
[ <span class="n">4.0</span>; <span class="n">5.0</span>; <span class="n">0.0</span>; <span class="o">-</span><span class="n">1.0</span> ]
[ <span class="n">5.0</span>; <span class="n">6.0</span>; <span class="n">0.0</span>; <span class="n">0.0</span>; ]
[ <span class="n">6.0</span>; <span class="n">7.0</span>; <span class="n">0.0</span>; <span class="n">0.0</span> ]]
<span class="k">let</span> <span class="i">b&#39;</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">0.0</span>; <span class="n">0.0</span>; <span class="n">20.0</span>; <span class="n">0.0</span> ]
<span class="k">let</span> <span class="i">x&#39;</span> <span class="o">=</span> <span class="i">A&#39;</span><span class="o">.</span><span class="i">Solve</span>(<span class="i">b&#39;</span>) <span class="c">// -140; 120; 60; 40</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs5', 7)" onmouseover="showTip(event, 'fs5', 7)" class="i">b&#39;</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">0.0</span>; <span class="n">0.0</span>; <span class="n">20.0</span>; <span class="n">0.0</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs6', 8)" onmouseover="showTip(event, 'fs6', 8)" class="i">x&#39;</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs4', 9)" onmouseover="showTip(event, 'fs4', 9)" class="i">A&#39;</span><span class="o">.</span><span class="i">Solve</span>(<span onmouseout="hideTip(event, 'fs5', 10)" onmouseover="showTip(event, 'fs5', 10)" class="i">b&#39;</span>) <span class="c">// -140; 120; 60; 40</span>
</code></pre></td>
</tr>
</table>
<div class="tip" id="fs1">val A : obj<br /><br />Full name: LinearEquations.A</div>
<div class="tip" id="fs2">val b : obj<br /><br />Full name: LinearEquations.b</div>
<div class="tip" id="fs3">val x : obj<br /><br />Full name: LinearEquations.x</div>
<div class="tip" id="fs4">val A&#39; : obj<br /><br />Full name: LinearEquations.A&#39;</div>
<div class="tip" id="fs5">val b&#39; : obj<br /><br />Full name: LinearEquations.b&#39;</div>
<div class="tip" id="fs6">val x&#39; : obj<br /><br />Full name: LinearEquations.x&#39;</div>
</div>
<div class="span3">

15
MKL.html

@ -174,8 +174,8 @@ directory somewhere and use them directly from there:</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Control</span><span class="o">.</span><span class="i">NativeProviderPath</span> <span class="o">&lt;-</span> <span class="s">@&quot;C:\MKL&quot;</span>
<span class="i">Control</span><span class="o">.</span><span class="i">UseNativeMKL</span>()
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">Control</span><span class="o">.</span><span class="i">NativeProviderPath</span> <span class="o">&lt;-</span> <span class="s">@&quot;C:\MKL&quot;</span>
<span onmouseout="hideTip(event, 'fs1', 2)" onmouseover="showTip(event, 'fs1', 2)" class="i">Control</span><span class="o">.</span><span class="i">UseNativeMKL</span>()
</code></pre></td>
</tr>
</table>
@ -189,11 +189,11 @@ MKL provider automatically.</p>
<span class="l">4: </span>
<span class="l">5: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span class="i">System</span><span class="o">.</span><span class="i">IO</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span onmouseout="hideTip(event, 'fs2', 3)" onmouseover="showTip(event, 'fs2', 3)" class="i">System</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs3', 4)" onmouseover="showTip(event, 'fs3', 4)" class="i">IO</span>
<span class="k">open</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span>
<span class="i">Control</span><span class="o">.</span><span class="i">NativeProviderPath</span> <span class="o">&lt;-</span> <span class="i">Path</span><span class="o">.</span><span class="i">Combine</span>(<span class="k">__SOURCE_DIRECTORY__</span>,<span class="s">&quot;../&quot;</span>)
<span class="i">Control</span><span class="o">.</span><span class="i">UseNativeMKL</span>()
<span onmouseout="hideTip(event, 'fs1', 5)" onmouseover="showTip(event, 'fs1', 5)" class="i">Control</span><span class="o">.</span><span class="i">NativeProviderPath</span> <span class="o">&lt;-</span> <span onmouseout="hideTip(event, 'fs4', 6)" onmouseover="showTip(event, 'fs4', 6)" class="i">Path</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs5', 7)" onmouseover="showTip(event, 'fs5', 7)" class="i">Combine</span>(<span class="k">__SOURCE_DIRECTORY__</span>,<span class="s">&quot;../&quot;</span>)
<span onmouseout="hideTip(event, 'fs1', 8)" onmouseover="showTip(event, 'fs1', 8)" class="i">Control</span><span class="o">.</span><span class="i">UseNativeMKL</span>()
</code></pre></td>
</tr>
</table>
@ -320,6 +320,11 @@ Numerics MKL native provider for free for your own use. However, it does <em>not
redistribute it again yourself to customers of your own product. <strong>If you need to redistribute,
buy a license from Intel. If unsure, contact the Intel sales team to clarify.</strong></p>
<div class="tip" id="fs1">namespace Microsoft.FSharp.Control</div>
<div class="tip" id="fs2">namespace System</div>
<div class="tip" id="fs3">namespace System.IO</div>
<div class="tip" id="fs4">type Path =<br />&#160;&#160;static val DirectorySeparatorChar : char<br />&#160;&#160;static val AltDirectorySeparatorChar : char<br />&#160;&#160;static val VolumeSeparatorChar : char<br />&#160;&#160;static val InvalidPathChars : char[]<br />&#160;&#160;static val PathSeparator : char<br />&#160;&#160;static member ChangeExtension : path:string * extension:string -&gt; string<br />&#160;&#160;static member Combine : [&lt;ParamArray&gt;] paths:string[] -&gt; string + 3 overloads<br />&#160;&#160;static member GetDirectoryName : path:string -&gt; string<br />&#160;&#160;static member GetExtension : path:string -&gt; string<br />&#160;&#160;static member GetFileName : path:string -&gt; string<br />&#160;&#160;...<br /><br />Full name: System.IO.Path</div>
<div class="tip" id="fs5">Path.Combine([&lt;System.ParamArray&gt;] paths: string []) : string<br />Path.Combine(path1: string, path2: string) : string<br />Path.Combine(path1: string, path2: string, path3: string) : string<br />Path.Combine(path1: string, path2: string, path3: string, path4: string) : string</div>
</div>
<div class="span3">

66
Matrix.html

@ -325,31 +325,31 @@ V.Dense(x);
<span class="l">24: </span>
<span class="l">25: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">m1</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">2.0</span>; <span class="n">3.0</span> ]
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">m1</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">2.0</span>; <span class="n">3.0</span> ]
[ <span class="n">4.0</span>; <span class="n">5.0</span> ]]
<span class="k">let</span> <span class="i">v1</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">1.0</span>; <span class="n">2.0</span>; <span class="n">3.0</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="i">v1</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">1.0</span>; <span class="n">2.0</span>; <span class="n">3.0</span> ]
<span class="c">// dense 3x4 matrix filled with zeros.</span>
<span class="c">// (usually the type is inferred, but not for zero matrices)</span>
<span class="k">let</span> <span class="i">m2</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">zero</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs3', 3)" onmouseover="showTip(event, 'fs3', 3)" class="i">m2</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">zero</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs4', 4)" onmouseover="showTip(event, 'fs4', 4)" class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span>
<span class="c">// dense 3x4 matrix initialized by a function</span>
<span class="k">let</span> <span class="i">m3</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">init</span> <span class="n">3</span> <span class="n">4</span> (<span class="k">fun</span> <span class="i">i</span> <span class="i">j</span> <span class="k">-&gt;</span> <span class="i">float</span> (<span class="i">i</span><span class="o">+</span><span class="i">j</span>))
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs5', 5)" onmouseover="showTip(event, 'fs5', 5)" class="i">m3</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">init</span> <span class="n">3</span> <span class="n">4</span> (<span class="k">fun</span> <span class="i">i</span> <span class="i">j</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs4', 6)" onmouseover="showTip(event, 'fs4', 6)" class="i">float</span> (<span class="i">i</span><span class="o">+</span><span class="i">j</span>))
<span class="c">// diagonal 4x4 identity matrix of single precision</span>
<span class="k">let</span> <span class="i">m4</span> <span class="o">=</span> <span class="i">DiagonalMatrix</span><span class="o">.</span><span class="i">identity</span><span class="o">&lt;</span><span class="i">float32</span><span class="o">&gt;</span> <span class="n">4</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs6', 7)" onmouseover="showTip(event, 'fs6', 7)" class="i">m4</span> <span class="o">=</span> <span class="i">DiagonalMatrix</span><span class="o">.</span><span class="i">identity</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs7', 8)" onmouseover="showTip(event, 'fs7', 8)" class="i">float32</span><span class="o">&gt;</span> <span class="n">4</span>
<span class="c">// dense 3x4 matrix created from a sequence of sequence-columns</span>
<span class="k">let</span> <span class="i">x</span> <span class="o">=</span> <span class="i">Seq</span><span class="o">.</span><span class="i">init</span> <span class="n">4</span> (<span class="k">fun</span> <span class="i">c</span> <span class="k">-&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">init</span> <span class="n">3</span> (<span class="k">fun</span> <span class="i">r</span> <span class="k">-&gt;</span> <span class="i">float</span> (<span class="n">100</span><span class="o">*</span><span class="i">r</span> <span class="o">+</span> <span class="i">c</span>)))
<span class="k">let</span> <span class="i">m5</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">ofColumnSeq</span> <span class="i">x</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs8', 9)" onmouseover="showTip(event, 'fs8', 9)" class="i">x</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs9', 10)" onmouseover="showTip(event, 'fs9', 10)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs10', 11)" onmouseover="showTip(event, 'fs10', 11)" class="f">init</span> <span class="n">4</span> (<span class="k">fun</span> <span onmouseout="hideTip(event, 'fs11', 12)" onmouseover="showTip(event, 'fs11', 12)" class="i">c</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs9', 13)" onmouseover="showTip(event, 'fs9', 13)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs10', 14)" onmouseover="showTip(event, 'fs10', 14)" class="f">init</span> <span class="n">3</span> (<span class="k">fun</span> <span onmouseout="hideTip(event, 'fs12', 15)" onmouseover="showTip(event, 'fs12', 15)" class="i">r</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs4', 16)" onmouseover="showTip(event, 'fs4', 16)" class="f">float</span> (<span class="n">100</span><span class="o">*</span><span onmouseout="hideTip(event, 'fs12', 17)" onmouseover="showTip(event, 'fs12', 17)" class="i">r</span> <span class="o">+</span> <span onmouseout="hideTip(event, 'fs11', 18)" onmouseover="showTip(event, 'fs11', 18)" class="i">c</span>)))
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs13', 19)" onmouseover="showTip(event, 'fs13', 19)" class="i">m5</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">ofColumnSeq</span> <span onmouseout="hideTip(event, 'fs8', 20)" onmouseover="showTip(event, 'fs8', 20)" class="i">x</span>
<span class="c">// random matrix with standard distribution:</span>
<span class="k">let</span> <span class="i">m6</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">randomStandard</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs14', 21)" onmouseover="showTip(event, 'fs14', 21)" class="i">m6</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">randomStandard</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs4', 22)" onmouseover="showTip(event, 'fs4', 22)" class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span>
<span class="c">// random matrix with a uniform and one with a Gamma distribution:</span>
<span class="k">let</span> <span class="i">m7a</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">random</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span> (<span class="i">ContinuousUniform</span>(<span class="o">-</span><span class="n">2.0</span>, <span class="n">4.0</span>))
<span class="k">let</span> <span class="i">m7b</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">random</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span> (<span class="i">Gamma</span>(<span class="n">1.0</span>, <span class="n">2.0</span>))
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs15', 23)" onmouseover="showTip(event, 'fs15', 23)" class="i">m7a</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">random</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs4', 24)" onmouseover="showTip(event, 'fs4', 24)" class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span> (<span class="i">ContinuousUniform</span>(<span class="o">-</span><span class="n">2.0</span>, <span class="n">4.0</span>))
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs16', 25)" onmouseover="showTip(event, 'fs16', 25)" class="i">m7b</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">random</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs4', 26)" onmouseover="showTip(event, 'fs4', 26)" class="i">float</span><span class="o">&gt;</span> <span class="n">3</span> <span class="n">4</span> (<span class="i">Gamma</span>(<span class="n">1.0</span>, <span class="n">2.0</span>))
</code></pre></td>
</tr>
</table>
@ -367,14 +367,14 @@ operators <code>.*</code>, <code>./</code> and <code>.%</code> available for con
<span class="l">7: </span>
<span class="l">8: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">m</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">1.0</span>; <span class="n">4.0</span>; <span class="n">7.0</span> ]
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs17', 27)" onmouseover="showTip(event, 'fs17', 27)" class="i">m</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">1.0</span>; <span class="n">4.0</span>; <span class="n">7.0</span> ]
[ <span class="n">2.0</span>; <span class="n">5.0</span>; <span class="n">8.0</span> ]
[ <span class="n">3.0</span>; <span class="n">6.0</span>; <span class="n">9.0</span> ]]
<span class="k">let</span> <span class="i">v</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">10.0</span>; <span class="n">20.0</span>; <span class="n">30.0</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs18', 28)" onmouseover="showTip(event, 'fs18', 28)" class="i">v</span> <span class="o">=</span> <span class="i">vector</span> [ <span class="n">10.0</span>; <span class="n">20.0</span>; <span class="n">30.0</span> ]
<span class="k">let</span> <span class="i">v&#39;</span> <span class="o">=</span> <span class="i">m</span> <span class="o">*</span> <span class="i">v</span>
<span class="k">let</span> <span class="i">m&#39;</span> <span class="o">=</span> <span class="i">m</span> <span class="o">+</span> <span class="n">2.0</span><span class="o">*</span><span class="i">m</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs19', 29)" onmouseover="showTip(event, 'fs19', 29)" class="i">v&#39;</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs17', 30)" onmouseover="showTip(event, 'fs17', 30)" class="i">m</span> <span class="o">*</span> <span onmouseout="hideTip(event, 'fs18', 31)" onmouseover="showTip(event, 'fs18', 31)" class="i">v</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs20', 32)" onmouseover="showTip(event, 'fs20', 32)" class="i">m&#39;</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs17', 33)" onmouseover="showTip(event, 'fs17', 33)" class="i">m</span> <span class="o">+</span> <span class="n">2.0</span><span class="o">*</span><span onmouseout="hideTip(event, 'fs17', 34)" onmouseover="showTip(event, 'fs17', 34)" class="i">m</span>
</code></pre></td>
</tr>
</table>
@ -571,7 +571,7 @@ m[<span class="n">0</span>,<span class="n">2</span>]; <span class="c">// -1</spa
<p>In F#:</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">m</span><span class="o">.</span>[<span class="n">2</span>,<span class="n">0</span>] <span class="c">// 20</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span onmouseout="hideTip(event, 'fs17', 35)" onmouseover="showTip(event, 'fs17', 35)" class="i">m</span><span class="o">.</span>[<span class="n">2</span>,<span class="n">0</span>] <span class="c">// 20</span>
</code></pre></td>
</tr>
</table>
@ -599,11 +599,11 @@ to overwrite those elements with the provided data.</p>
<span class="l">4: </span>
<span class="l">5: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">m</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">init</span> <span class="n">6</span> <span class="n">4</span> (<span class="k">fun</span> <span class="i">i</span> <span class="i">j</span> <span class="k">-&gt;</span> <span class="i">float</span> (<span class="n">10</span><span class="o">*</span><span class="i">i</span> <span class="o">+</span> <span class="i">j</span>))
<span class="i">m</span><span class="o">.</span>[<span class="n">0</span>,<span class="n">0..</span><span class="n">3</span>] <span class="c">// vector [0,1,2,3]</span>
<span class="i">m</span><span class="o">.</span>[<span class="n">1..</span><span class="n">2</span>,<span class="n">0..</span><span class="n">3</span>] <span class="c">// matrix [10,11,12,13; 20,21,22,23]</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs21', 36)" onmouseover="showTip(event, 'fs21', 36)" class="i">m</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">init</span> <span class="n">6</span> <span class="n">4</span> (<span class="k">fun</span> <span class="i">i</span> <span class="i">j</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs4', 37)" onmouseover="showTip(event, 'fs4', 37)" class="i">float</span> (<span class="n">10</span><span class="o">*</span><span class="i">i</span> <span class="o">+</span> <span class="i">j</span>))
<span onmouseout="hideTip(event, 'fs21', 38)" onmouseover="showTip(event, 'fs21', 38)" class="i">m</span><span class="o">.</span>[<span class="n">0</span>,<span class="n">0..</span><span class="n">3</span>] <span class="c">// vector [0,1,2,3]</span>
<span onmouseout="hideTip(event, 'fs21', 39)" onmouseover="showTip(event, 'fs21', 39)" class="i">m</span><span class="o">.</span>[<span class="n">1..</span><span class="n">2</span>,<span class="n">0..</span><span class="n">3</span>] <span class="c">// matrix [10,11,12,13; 20,21,22,23]</span>
<span class="c">// overwrite a sub-matrix with the content of another matrix:</span>
<span class="i">m</span><span class="o">.</span>[<span class="n">0..</span><span class="n">1</span>,<span class="n">1..</span><span class="n">2</span>] <span class="o">&lt;-</span> <span class="i">matrix</span> [[ <span class="n">3.0</span>; <span class="n">4.0</span> ]; [ <span class="n">5.0</span>; <span class="n">6.0</span> ]]
<span onmouseout="hideTip(event, 'fs21', 40)" onmouseover="showTip(event, 'fs21', 40)" class="i">m</span><span class="o">.</span>[<span class="n">0..</span><span class="n">1</span>,<span class="n">1..</span><span class="n">2</span>] <span class="o">&lt;-</span> <span class="i">matrix</span> [[ <span class="n">3.0</span>; <span class="n">4.0</span> ]; [ <span class="n">5.0</span>; <span class="n">6.0</span> ]]
</code></pre></td>
</tr>
</table>
@ -689,8 +689,8 @@ Vector&lt;Double&gt; v <span class="o">=</span> u.Map(c <span class="o">=</span>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">u</span> <span class="o">=</span> <span class="i">DenseVector</span><span class="o">.</span><span class="i">randomStandard</span><span class="o">&lt;</span><span class="i">Complex</span><span class="o">&gt;</span> <span class="n">10</span>
<span class="k">let</span> <span class="i">v</span> <span class="o">=</span> <span class="i">u</span> <span class="o">|&gt;</span> <span class="i">Vector</span><span class="o">.</span><span class="i">map</span> (<span class="k">fun</span> <span class="i">c</span> <span class="k">-&gt;</span> <span class="i">c</span><span class="o">.</span><span class="i">Real</span>)
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs22', 41)" onmouseover="showTip(event, 'fs22', 41)" class="i">u</span> <span class="o">=</span> <span class="i">DenseVector</span><span class="o">.</span><span class="i">randomStandard</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs23', 42)" onmouseover="showTip(event, 'fs23', 42)" class="i">Complex</span><span class="o">&gt;</span> <span class="n">10</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs24', 43)" onmouseover="showTip(event, 'fs24', 43)" class="i">v</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs22', 44)" onmouseover="showTip(event, 'fs22', 44)" class="i">u</span> <span class="o">|&gt;</span> <span class="i">Vector</span><span class="o">.</span><span class="i">map</span> (<span class="k">fun</span> <span class="i">c</span> <span class="k">-&gt;</span> <span class="i">c</span><span class="o">.</span><span class="i">Real</span>)
</code></pre></td>
</tr>
</table>
@ -917,6 +917,30 @@ DenseMatrix 5x100-Double
to load the MathNet.Numerics.fsx script of the F# package. Besides loading
the assemblies it also adds proper FSI printers for both matrices and vectors.</p>
<div class="tip" id="fs1">val m1 : obj<br /><br />Full name: Matrix.m1</div>
<div class="tip" id="fs2">val v1 : obj<br /><br />Full name: Matrix.v1</div>
<div class="tip" id="fs3">val m2 : obj<br /><br />Full name: Matrix.m2</div>
<div class="tip" id="fs4">Multiple items<br />val float : value:&#39;T -&gt; float (requires member op_Explicit)<br /><br />Full name: Microsoft.FSharp.Core.Operators.float<br /><br />--------------------<br />type float = System.Double<br /><br />Full name: Microsoft.FSharp.Core.float<br /><br />--------------------<br />type float&lt;&#39;Measure&gt; = float<br /><br />Full name: Microsoft.FSharp.Core.float&lt;_&gt;</div>
<div class="tip" id="fs5">val m3 : obj<br /><br />Full name: Matrix.m3</div>
<div class="tip" id="fs6">val m4 : obj<br /><br />Full name: Matrix.m4</div>
<div class="tip" id="fs7">Multiple items<br />val float32 : value:&#39;T -&gt; float32 (requires member op_Explicit)<br /><br />Full name: Microsoft.FSharp.Core.Operators.float32<br /><br />--------------------<br />type float32 = System.Single<br /><br />Full name: Microsoft.FSharp.Core.float32<br /><br />--------------------<br />type float32&lt;&#39;Measure&gt; = float32<br /><br />Full name: Microsoft.FSharp.Core.float32&lt;_&gt;</div>
<div class="tip" id="fs8">val x : seq&lt;seq&lt;float&gt;&gt;<br /><br />Full name: Matrix.x</div>
<div class="tip" id="fs9">module Seq<br /><br />from Microsoft.FSharp.Collections</div>
<div class="tip" id="fs10">val init : count:int -&gt; initializer:(int -&gt; &#39;T) -&gt; seq&lt;&#39;T&gt;<br /><br />Full name: Microsoft.FSharp.Collections.Seq.init</div>
<div class="tip" id="fs11">val c : int</div>
<div class="tip" id="fs12">val r : int</div>
<div class="tip" id="fs13">val m5 : obj<br /><br />Full name: Matrix.m5</div>
<div class="tip" id="fs14">val m6 : obj<br /><br />Full name: Matrix.m6</div>
<div class="tip" id="fs15">val m7a : obj<br /><br />Full name: Matrix.m7a</div>
<div class="tip" id="fs16">val m7b : obj<br /><br />Full name: Matrix.m7b</div>
<div class="tip" id="fs17">val m : float<br /><br />Full name: Matrix.m</div>
<div class="tip" id="fs18">val v : float<br /><br />Full name: Matrix.v</div>
<div class="tip" id="fs19">val v&#39; : float<br /><br />Full name: Matrix.v&#39;</div>
<div class="tip" id="fs20">val m&#39; : float<br /><br />Full name: Matrix.m&#39;</div>
<div class="tip" id="fs21">val m : obj<br /><br />Full name: Matrix.m</div>
<div class="tip" id="fs22">val u : obj<br /><br />Full name: Matrix.u</div>
<div class="tip" id="fs23">Multiple items<br />type Complex =<br />&#160;&#160;struct<br />&#160;&#160;&#160;&#160;new : real:float * imaginary:float -&gt; Complex<br />&#160;&#160;&#160;&#160;member Equals : obj:obj -&gt; bool + 1 overload<br />&#160;&#160;&#160;&#160;member GetHashCode : unit -&gt; int<br />&#160;&#160;&#160;&#160;member Imaginary : float<br />&#160;&#160;&#160;&#160;member Magnitude : float<br />&#160;&#160;&#160;&#160;member Phase : float<br />&#160;&#160;&#160;&#160;member Real : float<br />&#160;&#160;&#160;&#160;member ToString : unit -&gt; string + 3 overloads<br />&#160;&#160;&#160;&#160;static val Zero : Complex<br />&#160;&#160;&#160;&#160;static val One : Complex<br />&#160;&#160;&#160;&#160;...<br />&#160;&#160;end<br /><br />Full name: System.Numerics.Complex<br /><br />--------------------<br />Complex()<br />Complex(real: float, imaginary: float) : unit</div>
<div class="tip" id="fs24">val v : obj<br /><br />Full name: Matrix.v</div>
</div>
<div class="span3">

130
Probability.html

@ -198,12 +198,12 @@ gamma<span class="n">2</span>.RandomSource <span class="o">=</span> <span class=
<span class="l">7: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="c">// some probability distributions</span>
<span class="k">let</span> <span class="i">normal</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">WithMeanVariance</span>(<span class="n">3.0</span>, <span class="n">1.5</span>, <span class="i">a</span>)
<span class="k">let</span> <span class="i">exponential</span> <span class="o">=</span> <span class="i">Exponential</span>(<span class="n">2.4</span>)
<span class="k">let</span> <span class="i">gamma</span> <span class="o">=</span> <span class="i">Gamma</span>(<span class="n">2.0</span>, <span class="n">1.5</span>, <span class="i">Random</span><span class="o">.</span><span class="i">crypto</span>())
<span class="k">let</span> <span class="i">cauchy</span> <span class="o">=</span> <span class="i">Cauchy</span>(<span class="n">0.0</span>, <span class="n">1.0</span>, <span class="i">Random</span><span class="o">.</span><span class="i">mrg32k3aWith</span> <span class="n">10</span> <span class="k">false</span>)
<span class="k">let</span> <span class="i">poisson</span> <span class="o">=</span> <span class="i">Poisson</span>(<span class="n">3.0</span>)
<span class="k">let</span> <span class="i">geometric</span> <span class="o">=</span> <span class="i">Geometric</span>(<span class="n">0.8</span>, <span class="i">Random</span><span class="o">.</span><span class="i">system</span>())
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">normal</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">WithMeanVariance</span>(<span class="n">3.0</span>, <span class="n">1.5</span>, <span class="i">a</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="i">exponential</span> <span class="o">=</span> <span class="i">Exponential</span>(<span class="n">2.4</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs3', 3)" onmouseover="showTip(event, 'fs3', 3)" class="i">gamma</span> <span class="o">=</span> <span class="i">Gamma</span>(<span class="n">2.0</span>, <span class="n">1.5</span>, <span class="i">Random</span><span class="o">.</span><span class="i">crypto</span>())
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs4', 4)" onmouseover="showTip(event, 'fs4', 4)" class="i">cauchy</span> <span class="o">=</span> <span class="i">Cauchy</span>(<span class="n">0.0</span>, <span class="n">1.0</span>, <span class="i">Random</span><span class="o">.</span><span class="i">mrg32k3aWith</span> <span class="n">10</span> <span class="k">false</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs5', 5)" onmouseover="showTip(event, 'fs5', 5)" class="i">poisson</span> <span class="o">=</span> <span class="i">Poisson</span>(<span class="n">3.0</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs6', 6)" onmouseover="showTip(event, 'fs6', 6)" class="i">geometric</span> <span class="o">=</span> <span class="i">Geometric</span>(<span class="n">0.8</span>, <span class="i">Random</span><span class="o">.</span><span class="i">system</span>())
</code></pre></td>
</tr>
</table>
@ -213,9 +213,9 @@ estimation from a set of samples:</p>
<span class="l">2: </span>
<span class="l">3: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">estimation</span> <span class="o">=</span> <span class="i">LogNormal</span><span class="o">.</span><span class="i">Estimate</span>([| <span class="n">2.0</span>; <span class="n">1.5</span>; <span class="n">2.1</span>; <span class="n">1.2</span>; <span class="n">3.0</span>; <span class="n">2.4</span>; <span class="n">1.8</span> |])
<span class="k">let</span> <span class="i">mean</span>, <span class="i">variance</span> <span class="o">=</span> <span class="i">estimation</span><span class="o">.</span><span class="i">Mean</span>, <span class="i">estimation</span><span class="o">.</span><span class="i">Variance</span>
<span class="k">let</span> <span class="i">moreSamples</span> <span class="o">=</span> <span class="i">estimation</span><span class="o">.</span><span class="i">Samples</span>() <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">take</span> <span class="n">10</span> <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">toArray</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs7', 7)" onmouseover="showTip(event, 'fs7', 7)" class="i">estimation</span> <span class="o">=</span> <span class="i">LogNormal</span><span class="o">.</span><span class="i">Estimate</span>([| <span class="n">2.0</span>; <span class="n">1.5</span>; <span class="n">2.1</span>; <span class="n">1.2</span>; <span class="n">3.0</span>; <span class="n">2.4</span>; <span class="n">1.8</span> |])
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs8', 8)" onmouseover="showTip(event, 'fs8', 8)" class="i">mean</span>, <span onmouseout="hideTip(event, 'fs9', 9)" onmouseover="showTip(event, 'fs9', 9)" class="i">variance</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs7', 10)" onmouseover="showTip(event, 'fs7', 10)" class="i">estimation</span><span class="o">.</span><span class="i">Mean</span>, <span onmouseout="hideTip(event, 'fs7', 11)" onmouseover="showTip(event, 'fs7', 11)" class="i">estimation</span><span class="o">.</span><span class="i">Variance</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs10', 12)" onmouseover="showTip(event, 'fs10', 12)" class="i">moreSamples</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs7', 13)" onmouseover="showTip(event, 'fs7', 13)" class="i">estimation</span><span class="o">.</span><span class="i">Samples</span>() <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 14)" onmouseover="showTip(event, 'fs11', 14)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs12', 15)" onmouseover="showTip(event, 'fs12', 15)" class="f">take</span> <span class="n">10</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 16)" onmouseover="showTip(event, 'fs11', 16)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs13', 17)" onmouseover="showTip(event, 'fs13', 17)" class="f">toArray</span>
</code></pre></td>
</tr>
</table>
@ -249,16 +249,16 @@ but one can easily replace this with more sophisticated random number generators
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="c">// sample some random numbers from these distributions</span>
<span class="c">// continuous distributions sample to floating-point numbers:</span>
<span class="k">let</span> <span class="i">continuous</span> <span class="o">=</span>
[ <span class="k">yield</span> <span class="i">normal</span><span class="o">.</span><span class="i">Sample</span>()
<span class="k">yield</span> <span class="i">exponential</span><span class="o">.</span><span class="i">Sample</span>()
<span class="k">yield!</span> <span class="i">gamma</span><span class="o">.</span><span class="i">Samples</span>() <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">take</span> <span class="n">10</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs14', 18)" onmouseover="showTip(event, 'fs14', 18)" class="i">continuous</span> <span class="o">=</span>
[ <span class="k">yield</span> <span onmouseout="hideTip(event, 'fs1', 19)" onmouseover="showTip(event, 'fs1', 19)" class="i">normal</span><span class="o">.</span><span class="i">Sample</span>()
<span class="k">yield</span> <span onmouseout="hideTip(event, 'fs2', 20)" onmouseover="showTip(event, 'fs2', 20)" class="i">exponential</span><span class="o">.</span><span class="i">Sample</span>()
<span class="k">yield!</span> <span onmouseout="hideTip(event, 'fs3', 21)" onmouseover="showTip(event, 'fs3', 21)" class="i">gamma</span><span class="o">.</span><span class="i">Samples</span>() <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 22)" onmouseover="showTip(event, 'fs11', 22)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs12', 23)" onmouseover="showTip(event, 'fs12', 23)" class="f">take</span> <span class="n">10</span> ]
<span class="c">// discrete distributions on the other hand sample to integers:</span>
<span class="k">let</span> <span class="i">discrete</span> <span class="o">=</span>
[ <span class="i">poisson</span><span class="o">.</span><span class="i">Sample</span>()
<span class="i">poisson</span><span class="o">.</span><span class="i">Sample</span>()
<span class="i">geometric</span><span class="o">.</span><span class="i">Sample</span>() ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs15', 24)" onmouseover="showTip(event, 'fs15', 24)" class="i">discrete</span> <span class="o">=</span>
[ <span onmouseout="hideTip(event, 'fs5', 25)" onmouseover="showTip(event, 'fs5', 25)" class="i">poisson</span><span class="o">.</span><span class="i">Sample</span>()
<span onmouseout="hideTip(event, 'fs5', 26)" onmouseover="showTip(event, 'fs5', 26)" class="i">poisson</span><span class="o">.</span><span class="i">Sample</span>()
<span onmouseout="hideTip(event, 'fs6', 27)" onmouseover="showTip(event, 'fs6', 27)" class="i">geometric</span><span class="o">.</span><span class="i">Sample</span>() ]
</code></pre></td>
</tr>
</table>
@ -273,12 +273,12 @@ Note that no intermediate value caching is possible this way and parameters must
<span class="l">7: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="c">// using the default number generator (SystemRandomSource.Default)</span>
<span class="k">let</span> <span class="i">w</span> <span class="o">=</span> <span class="i">Rayleigh</span><span class="o">.</span><span class="i">Sample</span>(<span class="n">1.5</span>)
<span class="k">let</span> <span class="i">x</span> <span class="o">=</span> <span class="i">Hypergeometric</span><span class="o">.</span><span class="i">Sample</span>(<span class="n">100</span>, <span class="n">20</span>, <span class="n">5</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs16', 28)" onmouseover="showTip(event, 'fs16', 28)" class="i">w</span> <span class="o">=</span> <span class="i">Rayleigh</span><span class="o">.</span><span class="i">Sample</span>(<span class="n">1.5</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs17', 29)" onmouseover="showTip(event, 'fs17', 29)" class="i">x</span> <span class="o">=</span> <span class="i">Hypergeometric</span><span class="o">.</span><span class="i">Sample</span>(<span class="n">100</span>, <span class="n">20</span>, <span class="n">5</span>)
<span class="c">// or by manually providing the uniform random number generator</span>
<span class="k">let</span> <span class="i">u</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">Sample</span>(<span class="i">Random</span><span class="o">.</span><span class="i">system</span>(), <span class="n">2.0</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span class="i">v</span> <span class="o">=</span> <span class="i">Laplace</span><span class="o">.</span><span class="i">Samples</span>(<span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwister</span>(), <span class="n">1.0</span>, <span class="n">3.0</span>) <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">take</span> <span class="n">100</span> <span class="o">|&gt;</span> <span class="i">List</span><span class="o">.</span><span class="i">ofSeq</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs18', 30)" onmouseover="showTip(event, 'fs18', 30)" class="i">u</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">Sample</span>(<span class="i">Random</span><span class="o">.</span><span class="i">system</span>(), <span class="n">2.0</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs19', 31)" onmouseover="showTip(event, 'fs19', 31)" class="i">v</span> <span class="o">=</span> <span class="i">Laplace</span><span class="o">.</span><span class="i">Samples</span>(<span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwister</span>(), <span class="n">1.0</span>, <span class="n">3.0</span>) <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 32)" onmouseover="showTip(event, 'fs11', 32)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs12', 33)" onmouseover="showTip(event, 'fs12', 33)" class="f">take</span> <span class="n">100</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs20', 34)" onmouseover="showTip(event, 'fs20', 34)" class="t">List</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs21', 35)" onmouseover="showTip(event, 'fs21', 35)" class="f">ofSeq</span>
</code></pre></td>
</tr>
</table>
@ -297,8 +297,8 @@ Laplace.Samples(samples, <span class="n">1.0</span>, <span class="n">2.0</span>)
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">Seq</span><span class="o">.</span><span class="i">scan</span> (<span class="o">+</span>) <span class="n">0.0</span> (<span class="i">Normal</span><span class="o">.</span><span class="i">Samples</span>(<span class="n">0.0</span>, <span class="n">1.0</span>)) <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">take</span> <span class="n">10</span> <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">toArray</span>
<span class="i">Seq</span><span class="o">.</span><span class="i">scan</span> (<span class="o">+</span>) <span class="n">0.0</span> (<span class="i">Cauchy</span><span class="o">.</span><span class="i">Samples</span>(<span class="n">0.0</span>, <span class="n">1.0</span>)) <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">take</span> <span class="n">10</span> <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">toArray</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span onmouseout="hideTip(event, 'fs11', 36)" onmouseover="showTip(event, 'fs11', 36)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs22', 37)" onmouseover="showTip(event, 'fs22', 37)" class="f">scan</span> (<span class="o">+</span>) <span class="n">0.0</span> (<span class="i">Normal</span><span class="o">.</span><span class="i">Samples</span>(<span class="n">0.0</span>, <span class="n">1.0</span>)) <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 38)" onmouseover="showTip(event, 'fs11', 38)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs12', 39)" onmouseover="showTip(event, 'fs12', 39)" class="f">take</span> <span class="n">10</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 40)" onmouseover="showTip(event, 'fs11', 40)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs13', 41)" onmouseover="showTip(event, 'fs13', 41)" class="f">toArray</span>
<span onmouseout="hideTip(event, 'fs11', 42)" onmouseover="showTip(event, 'fs11', 42)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs22', 43)" onmouseover="showTip(event, 'fs22', 43)" class="f">scan</span> (<span class="o">+</span>) <span class="n">0.0</span> (<span class="i">Cauchy</span><span class="o">.</span><span class="i">Samples</span>(<span class="n">0.0</span>, <span class="n">1.0</span>)) <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 44)" onmouseover="showTip(event, 'fs11', 44)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs12', 45)" onmouseover="showTip(event, 'fs12', 45)" class="f">take</span> <span class="n">10</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 46)" onmouseover="showTip(event, 'fs11', 46)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs13', 47)" onmouseover="showTip(event, 'fs13', 47)" class="f">toArray</span>
</code></pre></td>
</tr>
</table>
@ -331,26 +331,26 @@ some of them are also available with the <code>Ln</code>-suffix.</p>
<span class="l">21: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="c">// distribution properties of the gamma we&#39;ve configured above</span>
<span class="k">let</span> <span class="i">gammaStats</span> <span class="o">=</span>
( <span class="i">gamma</span><span class="o">.</span><span class="i">Mean</span>,
<span class="i">gamma</span><span class="o">.</span><span class="i">Variance</span>,
<span class="i">gamma</span><span class="o">.</span><span class="i">StdDev</span>,
<span class="i">gamma</span><span class="o">.</span><span class="i">Entropy</span>,
<span class="i">gamma</span><span class="o">.</span><span class="i">Skewness</span>,
<span class="i">gamma</span><span class="o">.</span><span class="i">Mode</span> )
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs23', 48)" onmouseover="showTip(event, 'fs23', 48)" class="i">gammaStats</span> <span class="o">=</span>
( <span onmouseout="hideTip(event, 'fs3', 49)" onmouseover="showTip(event, 'fs3', 49)" class="i">gamma</span><span class="o">.</span><span class="i">Mean</span>,
<span onmouseout="hideTip(event, 'fs3', 50)" onmouseover="showTip(event, 'fs3', 50)" class="i">gamma</span><span class="o">.</span><span class="i">Variance</span>,
<span onmouseout="hideTip(event, 'fs3', 51)" onmouseover="showTip(event, 'fs3', 51)" class="i">gamma</span><span class="o">.</span><span class="i">StdDev</span>,
<span onmouseout="hideTip(event, 'fs3', 52)" onmouseover="showTip(event, 'fs3', 52)" class="i">gamma</span><span class="o">.</span><span class="i">Entropy</span>,
<span onmouseout="hideTip(event, 'fs3', 53)" onmouseover="showTip(event, 'fs3', 53)" class="i">gamma</span><span class="o">.</span><span class="i">Skewness</span>,
<span onmouseout="hideTip(event, 'fs3', 54)" onmouseover="showTip(event, 'fs3', 54)" class="i">gamma</span><span class="o">.</span><span class="i">Mode</span> )
<span class="c">// probability distribution functions of the normal we&#39;ve configured above.</span>
<span class="k">let</span> <span class="i">nd</span> <span class="o">=</span> <span class="i">normal</span><span class="o">.</span><span class="i">Density</span>(<span class="n">4.0</span>) <span class="c">(* PDF *)</span>
<span class="k">let</span> <span class="i">ndLn</span> <span class="o">=</span> <span class="i">normal</span><span class="o">.</span><span class="i">DensityLn</span>(<span class="n">4.0</span>) <span class="c">(* ln(PDF) *)</span>
<span class="k">let</span> <span class="i">nc</span> <span class="o">=</span> <span class="i">normal</span><span class="o">.</span><span class="i">CumulativeDistribution</span>(<span class="n">4.0</span>) <span class="c">(* CDF *)</span>
<span class="k">let</span> <span class="i">nic</span> <span class="o">=</span> <span class="i">normal</span><span class="o">.</span><span class="i">InverseCumulativeDistribution</span>(<span class="n">0.7</span>) <span class="c">(* CDF^(-1) *)</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs24', 55)" onmouseover="showTip(event, 'fs24', 55)" class="i">nd</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs1', 56)" onmouseover="showTip(event, 'fs1', 56)" class="i">normal</span><span class="o">.</span><span class="i">Density</span>(<span class="n">4.0</span>) <span class="c">(* PDF *)</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs25', 57)" onmouseover="showTip(event, 'fs25', 57)" class="i">ndLn</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs1', 58)" onmouseover="showTip(event, 'fs1', 58)" class="i">normal</span><span class="o">.</span><span class="i">DensityLn</span>(<span class="n">4.0</span>) <span class="c">(* ln(PDF) *)</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs26', 59)" onmouseover="showTip(event, 'fs26', 59)" class="i">nc</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs1', 60)" onmouseover="showTip(event, 'fs1', 60)" class="i">normal</span><span class="o">.</span><span class="i">CumulativeDistribution</span>(<span class="n">4.0</span>) <span class="c">(* CDF *)</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs27', 61)" onmouseover="showTip(event, 'fs27', 61)" class="i">nic</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs1', 62)" onmouseover="showTip(event, 'fs1', 62)" class="i">normal</span><span class="o">.</span><span class="i">InverseCumulativeDistribution</span>(<span class="n">0.7</span>) <span class="c">(* CDF^(-1) *)</span>
<span class="c">// Distribution functions can also be evaluated without creating an object,</span>
<span class="c">// but then you have to pass in the distribution parameters as first arguments:</span>
<span class="k">let</span> <span class="i">nd2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">PDF</span>(<span class="n">3.0</span>, <span class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span class="i">ndLn2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">PDFLn</span>(<span class="n">3.0</span>, <span class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span class="i">nc2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">CDF</span>(<span class="n">3.0</span>, <span class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span class="i">nic2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">InvCDF</span>(<span class="n">3.0</span>, <span class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">0.7</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs28', 63)" onmouseover="showTip(event, 'fs28', 63)" class="i">nd2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">PDF</span>(<span class="n">3.0</span>, <span onmouseout="hideTip(event, 'fs29', 64)" onmouseover="showTip(event, 'fs29', 64)" class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs30', 65)" onmouseover="showTip(event, 'fs30', 65)" class="i">ndLn2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">PDFLn</span>(<span class="n">3.0</span>, <span onmouseout="hideTip(event, 'fs29', 66)" onmouseover="showTip(event, 'fs29', 66)" class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs31', 67)" onmouseover="showTip(event, 'fs31', 67)" class="i">nc2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">CDF</span>(<span class="n">3.0</span>, <span onmouseout="hideTip(event, 'fs29', 68)" onmouseover="showTip(event, 'fs29', 68)" class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">4.0</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs32', 69)" onmouseover="showTip(event, 'fs32', 69)" class="i">nic2</span> <span class="o">=</span> <span class="i">Normal</span><span class="o">.</span><span class="i">InvCDF</span>(<span class="n">3.0</span>, <span onmouseout="hideTip(event, 'fs29', 70)" onmouseover="showTip(event, 'fs29', 70)" class="i">sqrt</span> <span class="n">1.5</span>, <span class="n">0.7</span>)
</code></pre></td>
</tr>
</table>
@ -376,25 +376,65 @@ This way they can be composed and transformed arbitrarily if curried:</p>
<span class="l">16: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="c">/// Transform a sample from a distribution</span>
<span class="k">let</span> <span class="i">s1</span> <span class="i">rng</span> <span class="o">=</span> <span class="i">tanh</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normal</span> <span class="n">2.0</span> <span class="n">0.5</span> <span class="i">rng</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs33', 71)" onmouseover="showTip(event, 'fs33', 71)" class="f">s1</span> <span onmouseout="hideTip(event, 'fs34', 72)" onmouseover="showTip(event, 'fs34', 72)" class="i">rng</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs35', 73)" onmouseover="showTip(event, 'fs35', 73)" class="f">tanh</span> (<span class="i">Sample</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs1', 74)" onmouseover="showTip(event, 'fs1', 74)" class="i">normal</span> <span class="n">2.0</span> <span class="n">0.5</span> <span onmouseout="hideTip(event, 'fs34', 75)" onmouseover="showTip(event, 'fs34', 75)" class="i">rng</span>)
<span class="c">/// But we really want to transform the function, not the resulting sample:</span>
<span class="k">let</span> <span class="i">s1f</span> <span class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">map</span> <span class="i">tanh</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normal</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span class="i">rng</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs36', 76)" onmouseover="showTip(event, 'fs36', 76)" class="f">s1f</span> <span onmouseout="hideTip(event, 'fs34', 77)" onmouseover="showTip(event, 'fs34', 77)" class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">map</span> <span onmouseout="hideTip(event, 'fs35', 78)" onmouseover="showTip(event, 'fs35', 78)" class="i">tanh</span> (<span class="i">Sample</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs1', 79)" onmouseover="showTip(event, 'fs1', 79)" class="i">normal</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span onmouseout="hideTip(event, 'fs34', 80)" onmouseover="showTip(event, 'fs34', 80)" class="i">rng</span>
<span class="c">/// Exactly the same also works with functions generating full sequences</span>
<span class="k">let</span> <span class="i">s1s</span> <span class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">mapSeq</span> <span class="i">tanh</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normalSeq</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span class="i">rng</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs37', 81)" onmouseover="showTip(event, 'fs37', 81)" class="f">s1s</span> <span onmouseout="hideTip(event, 'fs34', 82)" onmouseover="showTip(event, 'fs34', 82)" class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">mapSeq</span> <span onmouseout="hideTip(event, 'fs35', 83)" onmouseover="showTip(event, 'fs35', 83)" class="i">tanh</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normalSeq</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span onmouseout="hideTip(event, 'fs34', 84)" onmouseover="showTip(event, 'fs34', 84)" class="i">rng</span>
<span class="c">/// Now with multiple distributions, e.g. their product:</span>
<span class="k">let</span> <span class="i">s2</span> <span class="i">rng</span> <span class="o">=</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normal</span> <span class="n">2.0</span> <span class="n">1.5</span> <span class="i">rng</span>) <span class="o">*</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">cauchy</span> <span class="n">2.0</span> <span class="n">0.5</span> <span class="i">rng</span>)
<span class="k">let</span> <span class="i">s2f</span> <span class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">map2</span> <span class="o">(*)</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normal</span> <span class="n">2.0</span> <span class="n">1.5</span>) (<span class="i">Sample</span><span class="o">.</span><span class="i">cauchy</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span class="i">rng</span>
<span class="k">let</span> <span class="i">s2s</span> <span class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">mapSeq2</span> <span class="o">(*)</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normalSeq</span> <span class="n">2.0</span> <span class="n">1.5</span>) (<span class="i">Sample</span><span class="o">.</span><span class="i">cauchySeq</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span class="i">rng</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs38', 85)" onmouseover="showTip(event, 'fs38', 85)" class="f">s2</span> <span onmouseout="hideTip(event, 'fs34', 86)" onmouseover="showTip(event, 'fs34', 86)" class="i">rng</span> <span class="o">=</span> (<span class="i">Sample</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs1', 87)" onmouseover="showTip(event, 'fs1', 87)" class="i">normal</span> <span class="n">2.0</span> <span class="n">1.5</span> <span onmouseout="hideTip(event, 'fs34', 88)" onmouseover="showTip(event, 'fs34', 88)" class="i">rng</span>) <span class="o">*</span> (<span class="i">Sample</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs4', 89)" onmouseover="showTip(event, 'fs4', 89)" class="i">cauchy</span> <span class="n">2.0</span> <span class="n">0.5</span> <span onmouseout="hideTip(event, 'fs34', 90)" onmouseover="showTip(event, 'fs34', 90)" class="i">rng</span>)
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs39', 91)" onmouseover="showTip(event, 'fs39', 91)" class="f">s2f</span> <span onmouseout="hideTip(event, 'fs34', 92)" onmouseover="showTip(event, 'fs34', 92)" class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">map2</span> <span class="o">(*)</span> (<span class="i">Sample</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs1', 93)" onmouseover="showTip(event, 'fs1', 93)" class="i">normal</span> <span class="n">2.0</span> <span class="n">1.5</span>) (<span class="i">Sample</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs4', 94)" onmouseover="showTip(event, 'fs4', 94)" class="i">cauchy</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span onmouseout="hideTip(event, 'fs34', 95)" onmouseover="showTip(event, 'fs34', 95)" class="i">rng</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs40', 96)" onmouseover="showTip(event, 'fs40', 96)" class="f">s2s</span> <span onmouseout="hideTip(event, 'fs34', 97)" onmouseover="showTip(event, 'fs34', 97)" class="i">rng</span> <span class="o">=</span> <span class="i">Sample</span><span class="o">.</span><span class="i">mapSeq2</span> <span class="o">(*)</span> (<span class="i">Sample</span><span class="o">.</span><span class="i">normalSeq</span> <span class="n">2.0</span> <span class="n">1.5</span>) (<span class="i">Sample</span><span class="o">.</span><span class="i">cauchySeq</span> <span class="n">2.0</span> <span class="n">0.5</span>) <span onmouseout="hideTip(event, 'fs34', 98)" onmouseover="showTip(event, 'fs34', 98)" class="i">rng</span>
<span class="c">// Taking some samples from the composed function</span>
<span class="i">Seq</span><span class="o">.</span><span class="i">take</span> <span class="n">10</span> (<span class="i">s2s</span> (<span class="i">Random</span><span class="o">.</span><span class="i">system</span>())) <span class="o">|&gt;</span> <span class="i">Seq</span><span class="o">.</span><span class="i">toArray</span>
<span onmouseout="hideTip(event, 'fs11', 99)" onmouseover="showTip(event, 'fs11', 99)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs12', 100)" onmouseover="showTip(event, 'fs12', 100)" class="f">take</span> <span class="n">10</span> (<span onmouseout="hideTip(event, 'fs40', 101)" onmouseover="showTip(event, 'fs40', 101)" class="f">s2s</span> (<span class="i">Random</span><span class="o">.</span><span class="i">system</span>())) <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs11', 102)" onmouseover="showTip(event, 'fs11', 102)" class="t">Seq</span><span class="o">.</span><span onmouseout="hideTip(event, 'fs13', 103)" onmouseover="showTip(event, 'fs13', 103)" class="f">toArray</span>
</code></pre></td>
</tr>
</table>
<div class="tip" id="fs1">val normal : obj<br /><br />Full name: Probability.normal</div>
<div class="tip" id="fs2">val exponential : obj<br /><br />Full name: Probability.exponential</div>
<div class="tip" id="fs3">val gamma : obj<br /><br />Full name: Probability.gamma</div>
<div class="tip" id="fs4">val cauchy : obj<br /><br />Full name: Probability.cauchy</div>
<div class="tip" id="fs5">val poisson : obj<br /><br />Full name: Probability.poisson</div>
<div class="tip" id="fs6">val geometric : obj<br /><br />Full name: Probability.geometric</div>
<div class="tip" id="fs7">val estimation : obj<br /><br />Full name: Probability.estimation</div>
<div class="tip" id="fs8">val mean : obj<br /><br />Full name: Probability.mean</div>
<div class="tip" id="fs9">val variance : obj<br /><br />Full name: Probability.variance</div>
<div class="tip" id="fs10">val moreSamples : obj []<br /><br />Full name: Probability.moreSamples</div>
<div class="tip" id="fs11">module Seq<br /><br />from Microsoft.FSharp.Collections</div>
<div class="tip" id="fs12">val take : count:int -&gt; source:seq&lt;&#39;T&gt; -&gt; seq&lt;&#39;T&gt;<br /><br />Full name: Microsoft.FSharp.Collections.Seq.take</div>
<div class="tip" id="fs13">val toArray : source:seq&lt;&#39;T&gt; -&gt; &#39;T []<br /><br />Full name: Microsoft.FSharp.Collections.Seq.toArray</div>
<div class="tip" id="fs14">val continuous : obj list<br /><br />Full name: Probability.continuous</div>
<div class="tip" id="fs15">val discrete : obj list<br /><br />Full name: Probability.discrete</div>
<div class="tip" id="fs16">val w : obj<br /><br />Full name: Probability.w</div>
<div class="tip" id="fs17">val x : obj<br /><br />Full name: Probability.x</div>
<div class="tip" id="fs18">val u : obj<br /><br />Full name: Probability.u</div>
<div class="tip" id="fs19">val v : obj list<br /><br />Full name: Probability.v</div>
<div class="tip" id="fs20">Multiple items<br />module List<br /><br />from Microsoft.FSharp.Collections<br /><br />--------------------<br />type List&lt;&#39;T&gt; =<br />&#160;&#160;| ( [] )<br />&#160;&#160;| ( :: ) of Head: &#39;T * Tail: &#39;T list<br />&#160;&#160;interface IEnumerable<br />&#160;&#160;interface IEnumerable&lt;&#39;T&gt;<br />&#160;&#160;member GetSlice : startIndex:int option * endIndex:int option -&gt; &#39;T list<br />&#160;&#160;member Head : &#39;T<br />&#160;&#160;member IsEmpty : bool<br />&#160;&#160;member Item : index:int -&gt; &#39;T with get<br />&#160;&#160;member Length : int<br />&#160;&#160;member Tail : &#39;T list<br />&#160;&#160;static member Cons : head:&#39;T * tail:&#39;T list -&gt; &#39;T list<br />&#160;&#160;static member Empty : &#39;T list<br /><br />Full name: Microsoft.FSharp.Collections.List&lt;_&gt;</div>
<div class="tip" id="fs21">val ofSeq : source:seq&lt;&#39;T&gt; -&gt; &#39;T list<br /><br />Full name: Microsoft.FSharp.Collections.List.ofSeq</div>
<div class="tip" id="fs22">val scan : folder:(&#39;State -&gt; &#39;T -&gt; &#39;State) -&gt; state:&#39;State -&gt; source:seq&lt;&#39;T&gt; -&gt; seq&lt;&#39;State&gt;<br /><br />Full name: Microsoft.FSharp.Collections.Seq.scan</div>
<div class="tip" id="fs23">val gammaStats : obj * obj * obj * obj * obj * obj<br /><br />Full name: Probability.gammaStats</div>
<div class="tip" id="fs24">val nd : obj<br /><br />Full name: Probability.nd</div>
<div class="tip" id="fs25">val ndLn : obj<br /><br />Full name: Probability.ndLn</div>
<div class="tip" id="fs26">val nc : obj<br /><br />Full name: Probability.nc</div>
<div class="tip" id="fs27">val nic : obj<br /><br />Full name: Probability.nic</div>
<div class="tip" id="fs28">val nd2 : obj<br /><br />Full name: Probability.nd2</div>
<div class="tip" id="fs29">val sqrt : value:&#39;T -&gt; &#39;U (requires member Sqrt)<br /><br />Full name: Microsoft.FSharp.Core.Operators.sqrt</div>
<div class="tip" id="fs30">val ndLn2 : obj<br /><br />Full name: Probability.ndLn2</div>
<div class="tip" id="fs31">val nc2 : obj<br /><br />Full name: Probability.nc2</div>
<div class="tip" id="fs32">val nic2 : obj<br /><br />Full name: Probability.nic2</div>
<div class="tip" id="fs33">val s1 : rng:&#39;a -&gt; float<br /><br />Full name: Probability.s1<br /><em><br /><br />&#160;Transform a sample from a distribution</em></div>
<div class="tip" id="fs34">val rng : &#39;a</div>
<div class="tip" id="fs35">val tanh : value:&#39;T -&gt; &#39;T (requires member Tanh)<br /><br />Full name: Microsoft.FSharp.Core.Operators.tanh</div>
<div class="tip" id="fs36">val s1f : rng:&#39;a -&gt; &#39;b<br /><br />Full name: Probability.s1f<br /><em><br /><br />&#160;But we really want to transform the function, not the resulting sample:</em></div>
<div class="tip" id="fs37">val s1s : rng:&#39;a -&gt; &#39;b<br /><br />Full name: Probability.s1s<br /><em><br /><br />&#160;Exactly the same also works with functions generating full sequences</em></div>
<div class="tip" id="fs38">val s2 : rng:&#39;a -&gt; obj<br /><br />Full name: Probability.s2<br /><em><br /><br />&#160;Now with multiple distributions, e.g. their product:</em></div>
<div class="tip" id="fs39">val s2f : rng:&#39;a -&gt; &#39;b<br /><br />Full name: Probability.s2f</div>
<div class="tip" id="fs40">val s2s : rng:&#39;a -&gt; &#39;b<br /><br />Full name: Probability.s2s</div>
</div>
<div class="span3">

67
Random.html

@ -124,18 +124,18 @@ System.Random rng <span class="o">=</span> SystemRandomSource.Default;
<span class="l">11: </span>
<span class="l">12: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">samples</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doubles</span> <span class="n">1000</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">samples</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doubles</span> <span class="n">1000</span>
<span class="c">// overwrite the whole array with new random values</span>
<span class="i">Random</span><span class="o">.</span><span class="i">doubleFill</span> <span class="i">samples</span>
<span class="i">Random</span><span class="o">.</span><span class="i">doubleFill</span> <span onmouseout="hideTip(event, 'fs1', 2)" onmouseover="showTip(event, 'fs1', 2)" class="i">samples</span>
<span class="c">// create an infinite sequence:</span>
<span class="k">let</span> <span class="i">sampleSeq</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doubleSeq</span> ()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs2', 3)" onmouseover="showTip(event, 'fs2', 3)" class="i">sampleSeq</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doubleSeq</span> ()
<span class="c">// take a single random value</span>
<span class="k">let</span> <span class="i">rng</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">shared</span>
<span class="k">let</span> <span class="i">sample</span> <span class="o">=</span> <span class="i">rng</span><span class="o">.</span><span class="i">NextDouble</span>()
<span class="k">let</span> <span class="i">sampled</span> <span class="o">=</span> <span class="i">rng</span><span class="o">.</span><span class="i">NextDecimal</span>()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs3', 4)" onmouseover="showTip(event, 'fs3', 4)" class="i">rng</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">shared</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs4', 5)" onmouseover="showTip(event, 'fs4', 5)" class="i">sample</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs3', 6)" onmouseover="showTip(event, 'fs3', 6)" class="i">rng</span><span class="o">.</span><span class="i">NextDouble</span>()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs5', 7)" onmouseover="showTip(event, 'fs5', 7)" class="i">sampled</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs3', 8)" onmouseover="showTip(event, 'fs3', 8)" class="i">rng</span><span class="o">.</span><span class="i">NextDecimal</span>()
</code></pre></td>
</tr>
</table>
@ -187,9 +187,9 @@ or else a combination of a random number from a shared RNG, the time and a Guid
<span class="l">2: </span>
<span class="l">3: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">someTimeSeed</span> <span class="o">=</span> <span class="i">RandomSeed</span><span class="o">.</span><span class="i">Time</span>() <span class="c">// not recommended</span>
<span class="k">let</span> <span class="i">someGuidSeed</span> <span class="o">=</span> <span class="i">RandomSeed</span><span class="o">.</span><span class="i">Guid</span>()
<span class="k">let</span> <span class="i">someRobustSeed</span> <span class="o">=</span> <span class="i">RandomSeed</span><span class="o">.</span><span class="i">Robust</span>() <span class="c">// recommended, used by default</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs6', 9)" onmouseover="showTip(event, 'fs6', 9)" class="i">someTimeSeed</span> <span class="o">=</span> <span class="i">RandomSeed</span><span class="o">.</span><span class="i">Time</span>() <span class="c">// not recommended</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs7', 10)" onmouseover="showTip(event, 'fs7', 10)" class="i">someGuidSeed</span> <span class="o">=</span> <span class="i">RandomSeed</span><span class="o">.</span><span class="i">Guid</span>()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs8', 11)" onmouseover="showTip(event, 'fs8', 11)" class="i">someRobustSeed</span> <span class="o">=</span> <span class="i">RandomSeed</span><span class="o">.</span><span class="i">Robust</span>() <span class="c">// recommended, used by default</span>
</code></pre></td>
</tr>
</table>
@ -198,9 +198,9 @@ or else a combination of a random number from a shared RNG, the time and a Guid
<span class="l">2: </span>
<span class="l">3: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">samplesSeeded</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doublesSeed</span> <span class="n">42</span> <span class="n">1000</span>
<span class="i">Random</span><span class="o">.</span><span class="i">doubleFillSeed</span> <span class="n">42</span> <span class="i">samplesSeeded</span>
<span class="k">let</span> <span class="i">samplesSeqSeeded</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doubleSeqSeed</span> <span class="n">42</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs9', 12)" onmouseover="showTip(event, 'fs9', 12)" class="i">samplesSeeded</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doublesSeed</span> <span class="n">42</span> <span class="n">1000</span>
<span class="i">Random</span><span class="o">.</span><span class="i">doubleFillSeed</span> <span class="n">42</span> <span onmouseout="hideTip(event, 'fs9', 13)" onmouseover="showTip(event, 'fs9', 13)" class="i">samplesSeeded</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs10', 14)" onmouseover="showTip(event, 'fs10', 14)" class="i">samplesSeqSeeded</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">doubleSeqSeed</span> <span class="n">42</span>
</code></pre></td>
</tr>
</table>
@ -269,18 +269,18 @@ In case of the latter, all objects will be cast to their common base type <code>
<span class="l">13: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="c">// By using the normal constructor (random1 has type MersenneTwister) </span>
<span class="k">let</span> <span class="i">random1</span> <span class="o">=</span> <span class="i">MersenneTwister</span>()
<span class="k">let</span> <span class="i">random1b</span> <span class="o">=</span> <span class="i">MersenneTwister</span>(<span class="n">42</span>) <span class="c">// with seed</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs11', 15)" onmouseover="showTip(event, 'fs11', 15)" class="i">random1</span> <span class="o">=</span> <span class="i">MersenneTwister</span>()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs12', 16)" onmouseover="showTip(event, 'fs12', 16)" class="i">random1b</span> <span class="o">=</span> <span class="i">MersenneTwister</span>(<span class="n">42</span>) <span class="c">// with seed</span>
<span class="c">// By using the Random module (random2 has type System.Random)</span>
<span class="k">let</span> <span class="i">random2</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwister</span> ()
<span class="k">let</span> <span class="i">random2b</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwisterSeed</span> <span class="n">42</span> <span class="c">// with seed</span>
<span class="k">let</span> <span class="i">random2c</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwisterWith</span> <span class="n">42</span> <span class="k">false</span> <span class="c">// opt-out of thread-safety</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs13', 17)" onmouseover="showTip(event, 'fs13', 17)" class="i">random2</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwister</span> ()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs14', 18)" onmouseover="showTip(event, 'fs14', 18)" class="i">random2b</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwisterSeed</span> <span class="n">42</span> <span class="c">// with seed</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs15', 19)" onmouseover="showTip(event, 'fs15', 19)" class="i">random2c</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwisterWith</span> <span class="n">42</span> <span class="k">false</span> <span class="c">// opt-out of thread-safety</span>
<span class="c">// Using some other algorithms:</span>
<span class="k">let</span> <span class="i">random3</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">crypto</span> ()
<span class="k">let</span> <span class="i">random4</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">xorshift</span> ()
<span class="k">let</span> <span class="i">random5</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">wh2006</span> ()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs16', 20)" onmouseover="showTip(event, 'fs16', 20)" class="i">random3</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">crypto</span> ()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs17', 21)" onmouseover="showTip(event, 'fs17', 21)" class="i">random4</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">xorshift</span> ()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs18', 22)" onmouseover="showTip(event, 'fs18', 22)" class="i">random5</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">wh2006</span> ()
</code></pre></td>
</tr>
</table>
@ -314,11 +314,11 @@ unless explicitly disabled by a constructor argument or by setting <code>Control
<span class="l">4: </span>
<span class="l">5: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">a</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">systemShared</span>
<span class="k">let</span> <span class="i">b</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwisterShared</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs19', 23)" onmouseover="showTip(event, 'fs19', 23)" class="i">a</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">systemShared</span>
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs20', 24)" onmouseover="showTip(event, 'fs20', 24)" class="i">b</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">mersenneTwisterShared</span>
<span class="c">// or if you don&#39;t care, simply</span>
<span class="k">let</span> <span class="i">c</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">shared</span>;
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs21', 25)" onmouseover="showTip(event, 'fs21', 25)" class="i">c</span> <span class="o">=</span> <span class="i">Random</span><span class="o">.</span><span class="i">shared</span>;
</code></pre></td>
</tr>
</table>
@ -351,6 +351,27 @@ Normal.Samples(c, <span class="n">0.0</span>, <span class="n">1.0</span>);
</code></pre></td></tr></table>
<p>See <a href="Probability.html">Probability Distributions</a> for details.</p>
<div class="tip" id="fs1">val samples : obj<br /><br />Full name: Random.samples</div>
<div class="tip" id="fs2">val sampleSeq : obj<br /><br />Full name: Random.sampleSeq</div>
<div class="tip" id="fs3">val rng : obj<br /><br />Full name: Random.rng</div>
<div class="tip" id="fs4">val sample : obj<br /><br />Full name: Random.sample</div>
<div class="tip" id="fs5">val sampled : obj<br /><br />Full name: Random.sampled</div>
<div class="tip" id="fs6">val someTimeSeed : obj<br /><br />Full name: Random.someTimeSeed</div>
<div class="tip" id="fs7">val someGuidSeed : obj<br /><br />Full name: Random.someGuidSeed</div>
<div class="tip" id="fs8">val someRobustSeed : obj<br /><br />Full name: Random.someRobustSeed</div>
<div class="tip" id="fs9">val samplesSeeded : obj<br /><br />Full name: Random.samplesSeeded</div>
<div class="tip" id="fs10">val samplesSeqSeeded : obj<br /><br />Full name: Random.samplesSeqSeeded</div>
<div class="tip" id="fs11">val random1 : obj<br /><br />Full name: Random.random1</div>
<div class="tip" id="fs12">val random1b : obj<br /><br />Full name: Random.random1b</div>
<div class="tip" id="fs13">val random2 : obj<br /><br />Full name: Random.random2</div>
<div class="tip" id="fs14">val random2b : obj<br /><br />Full name: Random.random2b</div>
<div class="tip" id="fs15">val random2c : obj<br /><br />Full name: Random.random2c</div>
<div class="tip" id="fs16">val random3 : obj<br /><br />Full name: Random.random3</div>
<div class="tip" id="fs17">val random4 : obj<br /><br />Full name: Random.random4</div>
<div class="tip" id="fs18">val random5 : obj<br /><br />Full name: Random.random5</div>
<div class="tip" id="fs19">val a : obj<br /><br />Full name: Random.a</div>
<div class="tip" id="fs20">val b : obj<br /><br />Full name: Random.b</div>
<div class="tip" id="fs21">val c : obj<br /><br />Full name: Random.c</div>
</div>
<div class="span3">

4
Regression.html

@ -89,7 +89,7 @@ Tuple&lt;<span class="k">double</span>, <span class="k">double</span>&gt; p <spa
<p>Or in F#:</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span class="i">a</span>, <span class="i">b</span> <span class="o">=</span> <span class="i">Fit</span><span class="o">.</span><span class="i">Line</span> ([|<span class="n">10.0</span>;<span class="n">20.0</span>;<span class="n">30.0</span>|], [|<span class="n">15.0</span>;<span class="n">20.0</span>;<span class="n">25.0</span>|])
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">a</span>, <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="i">b</span> <span class="o">=</span> <span class="i">Fit</span><span class="o">.</span><span class="i">Line</span> ([|<span class="n">10.0</span>;<span class="n">20.0</span>;<span class="n">30.0</span>|], [|<span class="n">15.0</span>;<span class="n">20.0</span>;<span class="n">25.0</span>|])
</code></pre></td>
</tr>
</table>
@ -285,6 +285,8 @@ are dependent on the point of interest <span class="math">\(t\)</span>.</p>
<h2><a name="Regularization" class="anchor" href="#Regularization">Regularization</a></h2>
<h2><a name="Iterative-Methods" class="anchor" href="#Iterative-Methods">Iterative Methods</a></h2>
<div class="tip" id="fs1">val a : obj<br /><br />Full name: Regression.a</div>
<div class="tip" id="fs2">val b : obj<br /><br />Full name: Regression.b</div>
</div>
<div class="span3">

2
ReleaseNotes-MKL.html

@ -58,7 +58,7 @@
<div class="span9" id="main">
<h1><a name="MKL-Provider-Release-Notes" class="anchor" href="#MKL-Provider-Release-Notes">MKL Provider Release Notes</a></h1>
<p><a href="ReleaseNotes.html">Math.NET Numerics</a> | <a href="ReleaseNotes-MKL.html">MKL Provider</a> | <a href="ReleaseNotes-OpenBLAS.html">OpenBLAS Provider</a> | <a href="ReleaseNotes-Data.html">Data Extensions</a></p>
<p><a href="ReleaseNotes.html">Math.NET Numerics</a> | <a href="ReleaseNotes-MKL.html">MKL Provider</a> | <a href="ReleaseNotes-OpenBLAS.html">OpenBLAS Provider</a></p>
<h3><a name="2-5-0-2021-01-01" class="anchor" href="#2-5-0-2021-01-01">2.5.0 - 2021-01-01</a></h3>
<ul>
<li>r14 with Intel MKL 2020 Update 4</li>

2
ReleaseNotes-OpenBLAS.html

@ -58,7 +58,7 @@
<div class="span9" id="main">
<h1><a name="OpenBLAS-Provider-Release-Notes" class="anchor" href="#OpenBLAS-Provider-Release-Notes">OpenBLAS Provider Release Notes</a></h1>
<p><a href="ReleaseNotes.html">Math.NET Numerics</a> | <a href="ReleaseNotes-MKL.html">MKL Provider</a> | <a href="ReleaseNotes-OpenBLAS.html">OpenBLAS Provider</a> | <a href="ReleaseNotes-Data.html">Data Extensions</a></p>
<p><a href="ReleaseNotes.html">Math.NET Numerics</a> | <a href="ReleaseNotes-MKL.html">MKL Provider</a> | <a href="ReleaseNotes-OpenBLAS.html">OpenBLAS Provider</a></p>
<h3><a name="0-2-0-2015-09-26" class="anchor" href="#0-2-0-2015-09-26">0.2.0 - 2015-09-26</a></h3>
<ul>
<li>Initial version</li>

22
ReleaseNotes.html

@ -58,7 +58,27 @@
<div class="span9" id="main">
<h1><a name="Math-NET-Numerics-Release-Notes" class="anchor" href="#Math-NET-Numerics-Release-Notes">Math.NET Numerics Release Notes</a></h1>
<p><a href="ReleaseNotes.html">Math.NET Numerics</a> | <a href="ReleaseNotes-MKL.html">MKL Provider</a> | <a href="ReleaseNotes-OpenBLAS.html">OpenBLAS Provider</a> | <a href="ReleaseNotes-Data.html">Data Extensions</a></p>
<p><a href="ReleaseNotes.html">Math.NET Numerics</a> | <a href="ReleaseNotes-MKL.html">MKL Provider</a> | <a href="ReleaseNotes-OpenBLAS.html">OpenBLAS Provider</a></p>
<h3><a name="5-0-0-alpha01-2021-06-27" class="anchor" href="#5-0-0-alpha01-2021-06-27">5.0.0-alpha01 - 2021-06-27</a></h3>
<ul>
<li>COMPATIBILITY: net5.0, net48 better supported with explicit builds</li>
<li>COMPATIBILITY: netstandard1.x, net40, net45 no longer supported</li>
<li>BREAKING: drop all which was marked as obsolete</li>
<li>BREAKING: all native provider adapters moved out to separate NuGet packages</li>
<li>BREAKING: switch many usages of tuples to value tuples (experimental)</li>
<li>Distributions: Logistic <em>~Bobby Ingram</em></li>
<li>Distributions: Perf: Cauchy avoid duplicate evaluation <em>~Febin</em></li>
<li>Precision: Perf: pre-compute negative powers <em>~Febin</em></li>
<li>Optimizations: Remove static properties in LevenbergMarquardtMinimizer <em>~Jong Hyun Kim</em></li>
<li>Fit.Curve and FindMinimum extended to accept two more parameters</li>
<li>Series: stable series summation</li>
<li>Providers: drop managed reference linear algebra provider</li>
<li>Providers: native providers no longer inherit managed providers, managed now sealed</li>
<li>Providers: MKL provider compilation switched to Intel oneAPI MKL</li>
<li>Lots of internal cleanup, leveraging newer language features</li>
<li>Data: now released always together with Numerics (no longer separate versioning)</li>
<li>Control.Describe now includes CPU architecture and family identifier if know</li>
</ul>
<h3><a name="4-15-0-2021-01-07" class="anchor" href="#4-15-0-2021-01-07">4.15.0 - 2021-01-07</a></h3>
<ul>
<li>Precision: Round (with integer part rounding) <em>~Jon Larborn</em></li>

11
index.html

@ -119,9 +119,9 @@ idiomatic and includes arbitrary precision types (BigInteger, BigRational).</p>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">LinearAlgebra</span>
<span class="k">let</span> <span class="i">m</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">1.0</span>; <span class="n">2.0</span> ]
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="i">m</span> <span class="o">=</span> <span class="i">matrix</span> [[ <span class="n">1.0</span>; <span class="n">2.0</span> ]
[ <span class="n">3.0</span>; <span class="n">4.0</span> ]]
<span class="k">let</span> <span class="i">m&#39;</span> <span class="o">=</span> <span class="i">m</span><span class="o">.</span><span class="i">Inverse</span>()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="i">m&#39;</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs1', 3)" onmouseover="showTip(event, 'fs1', 3)" class="i">m</span><span class="o">.</span><span class="i">Inverse</span>()
</code></pre></td>
</tr>
</table>
@ -145,8 +145,8 @@ For convenience our F# packages include a small script that sets everything up p
<span class="i">SpecialFunctions</span><span class="o">.</span><span class="i">Gamma</span>(<span class="n">0.5</span>)
<span class="k">open</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">LinearAlgebra</span>
<span class="k">let</span> <span class="i">m</span> <span class="o">:</span> <span class="i">Matrix</span><span class="o">&lt;</span><span class="i">float</span><span class="o">&gt;</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">randomStandard</span> <span class="n">50</span> <span class="n">50</span>
(<span class="i">m</span> <span class="o">*</span> <span class="i">m</span><span class="o">.</span><span class="i">Transpose</span>())<span class="o">.</span><span class="i">Determinant</span>()
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs1', 4)" onmouseover="showTip(event, 'fs1', 4)" class="i">m</span> <span class="o">:</span> <span class="i">Matrix</span><span class="o">&lt;</span><span onmouseout="hideTip(event, 'fs3', 5)" onmouseover="showTip(event, 'fs3', 5)" class="i">float</span><span class="o">&gt;</span> <span class="o">=</span> <span class="i">DenseMatrix</span><span class="o">.</span><span class="i">randomStandard</span> <span class="n">50</span> <span class="n">50</span>
(<span onmouseout="hideTip(event, 'fs1', 6)" onmouseover="showTip(event, 'fs1', 6)" class="i">m</span> <span class="o">*</span> <span onmouseout="hideTip(event, 'fs1', 7)" onmouseover="showTip(event, 'fs1', 7)" class="i">m</span><span class="o">.</span><span class="i">Transpose</span>())<span class="o">.</span><span class="i">Determinant</span>()
</code></pre></td>
</tr>
</table>
@ -281,6 +281,9 @@ DenseVector 500-Double
</code></pre></td></tr></table>
<p>See <a href="MKL.html">Intel MKL</a> for details how to use native providers on Linux.</p>
<div class="tip" id="fs1">val m : obj<br /><br />Full name: index.m</div>
<div class="tip" id="fs2">val m&#39; : obj<br /><br />Full name: index.m&#39;</div>
<div class="tip" id="fs3">Multiple items<br />val float : value:&#39;T -&gt; float (requires member op_Explicit)<br /><br />Full name: Microsoft.FSharp.Core.Operators.float<br /><br />--------------------<br />type float = System.Double<br /><br />Full name: Microsoft.FSharp.Core.float<br /><br />--------------------<br />type float&lt;&#39;Measure&gt; = float<br /><br />Full name: Microsoft.FSharp.Core.float&lt;_&gt;</div>
</div>
<div class="span3">

Loading…
Cancel
Save