Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

286 lines
41 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>IF# Notebook
</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="Christoph Ruegg, Marcus Cuda, Jurgen Van Gael">
<link rel="stylesheet" id="theme_link" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.6.0/materia/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link type="text/css" rel="stylesheet" href="https://numerics.mathdotnet.com/content/navbar-fixed-left.css" />
<link type="text/css" rel="stylesheet" href="https://numerics.mathdotnet.com/content/fsdocs-default.css" />
<link type="text/css" rel="stylesheet" href="https://numerics.mathdotnet.com/content/fsdocs-custom.css" />
<script type="text/javascript" src="https://numerics.mathdotnet.com/content/fsdocs-tips.js"></script>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- BEGIN SEARCH BOX: this adds support for the search box -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/JavaScript-autoComplete/1.0.4/auto-complete.css" />
<!-- END SEARCH BOX: this adds support for the search box -->
</head>
<body>
<nav class="navbar navbar-expand-md navbar-light bg-secondary fixed-left" id="fsdocs-nav">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse navbar-nav-scroll" id="navbarsExampleDefault">
<a href="https://numerics.mathdotnet.com/"><img id="fsdocs-logo" src="/logo.png" /></a>
<!-- BEGIN SEARCH BOX: this adds support for the search box -->
<div id="header">
<div class="searchbox" id="fsdocs-searchbox">
<label for="search-by">
<i class="fas fa-search"></i>
</label>
<input data-search-input="" id="search-by" type="search" placeholder="Search..." />
<span data-search-clear="">
<i class="fas fa-times"></i>
</span>
</div>
</div>
<!-- END SEARCH BOX: this adds support for the search box -->
<ul class="navbar-nav">
<li class="nav-header">Math.NET Numerics</li>
<li class="nav-item"><a class="nav-link" href="Packages.html">NuGet & Binaries</a></li>
<li class="nav-item"><a class="nav-link" href="ReleaseNotes.html">Release Notes</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/mathnet/mathnet-numerics/blob/master/LICENSE.md">MIT License</a></li>
<li class="nav-item"><a class="nav-link" href="Compatibility.html">Platform Support</a></li>
<li class="nav-item"><a class="nav-link" href="https://numerics.mathdotnet.com/api/">Class Reference</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/mathnet/mathnet-numerics/issues">Issues & Bugs</a></li>
<li class="nav-item"><a class="nav-link" href="Users.html">Who is using Math.NET?</a></li>
<li class="nav-header">Contributing</li>
<li class="nav-item"><a class="nav-link" href="Contributors.html">Contributors</a></li>
<li class="nav-item"><a class="nav-link" href="Contributing.html">Contributing</a></li>
<li class="nav-item"><a class="nav-link" href="Build.html">Build & Tools</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/mathnet/mathnet-numerics/discussions/categories/ideas">Your Ideas</a></li>
<li class="nav-header">Getting Help</li>
<li class="nav-item"><a class="nav-link" href="https://discuss.mathdotnet.com/c/numerics">Discuss</a></li>
<li class="nav-item"><a class="nav-link" href="https://stackoverflow.com/questions/tagged/mathdotnet">Stack Overflow</a></li>
<li class="nav-header">Getting Started</li>
<l class="nav-item"i><a class="nav-link" href="/">Getting started</a></li>
<li class="nav-item"><a class="nav-link" href="Constants.html">Constants</a></li>
<li class="nav-item"><a class="nav-link" href="Matrix.html">Matrices and Vectors</a></li>
<li class="nav-item"><a class="nav-link" href="Euclid.html">Euclid & Number Theory</a></li>
<li class="nav-item">Combinatorics</li>
<li class="nav-header">Evaluation</li>
<li class="nav-item"><a class="nav-link" href="Functions.html">Special Functions</a></li>
<li class="nav-item"><a class="nav-link" href="Integration.html">Integration</a></li>
<li class="nav-header">Statistics/Probability</li>
<li class="nav-item"><a class="nav-link" href="DescriptiveStatistics.html">Descriptive Statistics</a></li>
<li class="nav-item"><a class="nav-link" href="Probability.html">Probability Distributions</a></li>
<li class="nav-header">Generation</li>
<li class="nav-item"><a class="nav-link" href="Generate.html">Generating Data</a></li>
<li class="nav-item"><a class="nav-link" href="Random.html">Random Numbers</a></li>
<li class="nav-header">Solving Equations</li>
<li class="nav-item"><a class="nav-link" href="LinearEquations.html">Linear Equation Systems</a></li>
<li class="nav-header">Optimization</li>
<li class="nav-item"><a class="nav-link" href="Distance.html">Distance Metrics</a></li>
<li class="nav-header">Curve Fitting</li>
<li class="nav-item"><a class="nav-link" href="Regression.html">Regression</a></li>
<li class="nav-header">Native Providers</li>
<li class="nav-item"><a class="nav-link" href="MKL.html">Intel MKL</a></li>
<li class="nav-header">Working Together</li>
<li class="nav-item"><a class="nav-link" href="CSV.html">Delimited Text Files (CSV)</a></li>
<li class="nav-item"><a class="nav-link" href="MatrixMarket.html">NIST MatrixMarket</a></li>
<li class="nav-item"><a class="nav-link" href="MatlabFiles.html">MATLAB</a></li>
<li class="nav-item"><a class="nav-link" href="IFSharpNotebook.html">IF# Notebook</a></li>
</ul>
</div>
</nav>
<div class="container">
<div class="masthead">
<h3 class="muted">
<a href="https://numerics.mathdotnet.com">Math.NET Numerics</a> |
<a href="https://www.mathdotnet.com">Math.NET Project</a> |
<a href="https://github.com/mathnet/mathnet-numerics">GitHub</a>
</h3>
</div>
<hr />
<div class="container" id="fsdocs-content">
<h1><a name="IF-Notebook" class="anchor" href="#IF-Notebook">IF# Notebook</a></h1>
<p><a href="https://ipython.org/">iPython</a> provides a rich browser-based interactive notebook with support for code, text, mathematical expressions,
inline plots and other rich media. <a href="https://github.com/BayardRock/IfSharp">IfSharp</a>, developed by Bayard Rock, is an F# profile
for iPython with IntelliSense and embedded FSharp.Charting. Thanks to its NuGet support it can load other packages like Math.NET Numerics on demand.</p>
<p><img src="img/IfSharp-GenerateIS.png" alt="Screenshot" /></p>
<h2><a name="Installing-IF-Notebook" class="anchor" href="#Installing-IF-Notebook">Installing IF# Notebook</a></h2>
<p>Follow the instructions at <a href="https://bayardrock.github.io/IfSharp/installation.html">IfSharp/Installation</a>.</p>
<p>Essentially:</p>
<ol>
<li><p>Install <a href="https://continuum.io/downloads">Anaconda</a></p></li>
<li>
<p>In a shell, run</p>
<p>conda update conda
conda update ipython</p>
</li>
<li><p>Install <a href="https://github.com/BayardRock/IfSharp/releases">IfSharp</a>.</p></li>
</ol>
<h2><a name="Display-Printers-for-Matrices-and-Vectors" class="anchor" href="#Display-Printers-for-Matrices-and-Vectors">Display Printers for Matrices and Vectors</a></h2>
<p>By itself IfSharp does not know how to display matrices and vectors in a nice way, but we can tell it how to do so by providing our own display printers for them.
Since v3.3 the Math.NET Numerics F# package includes a script <code>MathNet.Numerics.IfSharp.fsx</code> to do so.
Unfortunately loading this script requires the exact version in the path - if you know a way to avoid this please let us know.</p>
<p><img src="img/IfSharp-MatrixVector.png" alt="Screenshot" /></p>
<p>Alternatively you can also use the code below and adapt it to your needs, e.g. if you want it to show more rows.</p>
<pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span class="id">MathNet</span><span class="pn">.</span><span class="id">Numerics</span><span class="pn">.</span><span class="id">LinearAlgebra</span>
<span class="k">let</span> <span class="k">inline</span> <span class="pn">(</span><span class="fn">|</span><span class="uc">Float</span><span class="pn">|</span><span class="id">_</span><span class="pn">|</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs1', 1)" onmouseover="showTip(event, 'fs1', 1)" class="fn">v</span><span class="pn">:</span><span onmouseout="hideTip(event, 'fs2', 2)" onmouseover="showTip(event, 'fs2', 2)" class="rt">obj</span><span class="pn">)</span> <span class="o">=</span>
<span class="k">if</span> <span onmouseout="hideTip(event, 'fs1', 3)" onmouseover="showTip(event, 'fs1', 3)" class="fn">v</span> <span class="o">:?</span> <span onmouseout="hideTip(event, 'fs3', 4)" onmouseover="showTip(event, 'fs3', 4)" class="vt">float</span> <span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 5)" onmouseover="showTip(event, 'fs4', 5)" class="uc">Some</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs1', 6)" onmouseover="showTip(event, 'fs1', 6)" class="fn">v</span> <span class="o">:?&gt;</span> <span onmouseout="hideTip(event, 'fs3', 7)" onmouseover="showTip(event, 'fs3', 7)" class="vt">float</span><span class="pn">)</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 8)" onmouseover="showTip(event, 'fs5', 8)" class="uc">None</span>
<span class="k">let</span> <span class="k">inline</span> <span class="pn">(</span><span class="fn">|</span><span class="uc">Float32</span><span class="pn">|</span><span class="id">_</span><span class="pn">|</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs1', 9)" onmouseover="showTip(event, 'fs1', 9)" class="fn">v</span><span class="pn">:</span><span onmouseout="hideTip(event, 'fs2', 10)" onmouseover="showTip(event, 'fs2', 10)" class="rt">obj</span><span class="pn">)</span> <span class="o">=</span>
<span class="k">if</span> <span onmouseout="hideTip(event, 'fs1', 11)" onmouseover="showTip(event, 'fs1', 11)" class="fn">v</span> <span class="o">:?</span> <span onmouseout="hideTip(event, 'fs6', 12)" onmouseover="showTip(event, 'fs6', 12)" class="vt">float32</span> <span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 13)" onmouseover="showTip(event, 'fs4', 13)" class="uc">Some</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs1', 14)" onmouseover="showTip(event, 'fs1', 14)" class="fn">v</span> <span class="o">:?&gt;</span> <span onmouseout="hideTip(event, 'fs6', 15)" onmouseover="showTip(event, 'fs6', 15)" class="vt">float32</span><span class="pn">)</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 16)" onmouseover="showTip(event, 'fs5', 16)" class="uc">None</span>
<span class="k">let</span> <span class="k">inline</span> <span class="pn">(</span><span class="fn">|</span><span class="uc">PositiveInfinity</span><span class="pn">|</span><span class="id">_</span><span class="pn">|</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs7', 17)" onmouseover="showTip(event, 'fs7', 17)" class="fn">v</span><span class="pn">:</span> <span class="ta">^</span><span class="id">T</span><span class="pn">)</span> <span class="o">=</span>
<span class="k">if</span> <span class="pn">(</span><span class="ta">^</span><span class="id">T</span> <span class="pn">:</span> <span class="pn">(</span><span class="k">static</span> <span class="k">member</span> <span class="fn">IsPositiveInfinity</span><span class="pn">:</span> <span class="ta">&#39;</span><span class="id">T</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs8', 18)" onmouseover="showTip(event, 'fs8', 18)" class="vt">bool</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs7', 19)" onmouseover="showTip(event, 'fs7', 19)" class="fn">v</span><span class="pn">)</span><span class="pn">)</span>
<span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 20)" onmouseover="showTip(event, 'fs4', 20)" class="uc">Some</span> <span class="uc">PositiveInfinity</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 21)" onmouseover="showTip(event, 'fs5', 21)" class="uc">None</span>
<span class="k">let</span> <span class="k">inline</span> <span class="pn">(</span><span class="fn">|</span><span class="uc">NegativeInfinity</span><span class="pn">|</span><span class="id">_</span><span class="pn">|</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs9', 22)" onmouseover="showTip(event, 'fs9', 22)" class="fn">v</span><span class="pn">:</span> <span class="ta">^</span><span class="id">T</span><span class="pn">)</span> <span class="o">=</span>
<span class="k">if</span> <span class="pn">(</span><span class="ta">^</span><span class="id">T</span> <span class="pn">:</span> <span class="pn">(</span><span class="k">static</span> <span class="k">member</span> <span class="fn">IsNegativeInfinity</span><span class="pn">:</span> <span class="ta">&#39;</span><span class="id">T</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs8', 23)" onmouseover="showTip(event, 'fs8', 23)" class="vt">bool</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs9', 24)" onmouseover="showTip(event, 'fs9', 24)" class="fn">v</span><span class="pn">)</span><span class="pn">)</span>
<span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 25)" onmouseover="showTip(event, 'fs4', 25)" class="uc">Some</span> <span class="uc">NegativeInfinity</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 26)" onmouseover="showTip(event, 'fs5', 26)" class="uc">None</span>
<span class="k">let</span> <span class="k">inline</span> <span class="pn">(</span><span class="fn">|</span><span class="uc">NaN</span><span class="pn">|</span><span class="id">_</span><span class="pn">|</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs10', 27)" onmouseover="showTip(event, 'fs10', 27)" class="fn">v</span><span class="pn">:</span> <span class="ta">^</span><span class="id">T</span><span class="pn">)</span> <span class="o">=</span>
<span class="k">if</span> <span class="pn">(</span><span class="ta">^</span><span class="id">T</span> <span class="pn">:</span> <span class="pn">(</span><span class="k">static</span> <span class="k">member</span> <span class="fn">IsNaN</span><span class="pn">:</span> <span class="ta">&#39;</span><span class="id">T</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs8', 28)" onmouseover="showTip(event, 'fs8', 28)" class="vt">bool</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs10', 29)" onmouseover="showTip(event, 'fs10', 29)" class="fn">v</span><span class="pn">)</span><span class="pn">)</span>
<span class="k">then</span> <span onmouseout="hideTip(event, 'fs4', 30)" onmouseover="showTip(event, 'fs4', 30)" class="uc">Some</span> <span class="uc">NaN</span> <span class="k">else</span> <span onmouseout="hideTip(event, 'fs5', 31)" onmouseover="showTip(event, 'fs5', 31)" class="uc">None</span>
<span class="k">let</span> <span class="k">inline</span> <span onmouseout="hideTip(event, 'fs11', 32)" onmouseover="showTip(event, 'fs11', 32)" class="fn">formatMathValue</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs12', 33)" onmouseover="showTip(event, 'fs12', 33)" class="fn">floatFormat</span><span class="pn">:</span><span onmouseout="hideTip(event, 'fs13', 34)" onmouseover="showTip(event, 'fs13', 34)" class="rt">string</span><span class="pn">)</span> <span class="o">=</span> <span class="k">function</span>
<span class="pn">|</span> <span onmouseout="hideTip(event, 'fs14', 35)" onmouseover="showTip(event, 'fs14', 35)" class="uc">PositiveInfinity</span> <span class="k">-&gt;</span> <span class="s">&quot;\\infty&quot;</span>
<span class="pn">|</span> <span onmouseout="hideTip(event, 'fs15', 36)" onmouseover="showTip(event, 'fs15', 36)" class="uc">NegativeInfinity</span> <span class="k">-&gt;</span> <span class="s">&quot;-\\infty&quot;</span>
<span class="pn">|</span> <span onmouseout="hideTip(event, 'fs16', 37)" onmouseover="showTip(event, 'fs16', 37)" class="uc">NaN</span> <span class="k">-&gt;</span> <span class="s">&quot;\\times&quot;</span>
<span class="pn">|</span> <span onmouseout="hideTip(event, 'fs17', 38)" onmouseover="showTip(event, 'fs17', 38)" class="uc">Float</span> <span onmouseout="hideTip(event, 'fs18', 39)" onmouseover="showTip(event, 'fs18', 39)" class="fn">v</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs18', 40)" onmouseover="showTip(event, 'fs18', 40)" class="fn">v</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs19', 41)" onmouseover="showTip(event, 'fs19', 41)" class="id">ToString</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs12', 42)" onmouseover="showTip(event, 'fs12', 42)" class="fn">floatFormat</span><span class="pn">)</span>
<span class="pn">|</span> <span onmouseout="hideTip(event, 'fs20', 43)" onmouseover="showTip(event, 'fs20', 43)" class="uc">Float32</span> <span onmouseout="hideTip(event, 'fs21', 44)" onmouseover="showTip(event, 'fs21', 44)" class="fn">v</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs21', 45)" onmouseover="showTip(event, 'fs21', 45)" class="fn">v</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs22', 46)" onmouseover="showTip(event, 'fs22', 46)" class="id">ToString</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs12', 47)" onmouseover="showTip(event, 'fs12', 47)" class="fn">floatFormat</span><span class="pn">)</span>
<span class="pn">|</span> <span onmouseout="hideTip(event, 'fs23', 48)" onmouseover="showTip(event, 'fs23', 48)" class="fn">v</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs23', 49)" onmouseover="showTip(event, 'fs23', 49)" class="fn">v</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs24', 50)" onmouseover="showTip(event, 'fs24', 50)" class="id">ToString</span><span class="pn">(</span><span class="pn">)</span>
<span class="k">let</span> <span class="k">inline</span> <span onmouseout="hideTip(event, 'fs25', 51)" onmouseover="showTip(event, 'fs25', 51)" class="fn">formatMatrix</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs26', 52)" onmouseover="showTip(event, 'fs26', 52)" class="fn">matrix</span><span class="pn">:</span> <span class="id">Matrix</span><span class="pn">&lt;</span><span class="id">&#39;</span><span class="id">T</span><span class="pn">&gt;</span><span class="pn">)</span> <span class="o">=</span>
<span onmouseout="hideTip(event, 'fs27', 53)" onmouseover="showTip(event, 'fs27', 53)" class="m">String</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs28', 54)" onmouseover="showTip(event, 'fs28', 54)" class="id">concat</span> <span class="id">Environment</span><span class="pn">.</span><span class="id">NewLine</span>
<span class="pn">[</span> <span class="s">&quot;\\begin{bmatrix}&quot;</span>
<span onmouseout="hideTip(event, 'fs26', 55)" onmouseover="showTip(event, 'fs26', 55)" class="fn">matrix</span><span class="pn">.</span><span class="id">ToMatrixString</span><span class="pn">(</span><span class="n">10</span><span class="pn">,</span><span class="n">4</span><span class="pn">,</span><span class="n">7</span><span class="pn">,</span><span class="n">2</span><span class="pn">,</span><span class="s">&quot;\\cdots&quot;</span><span class="pn">,</span><span class="s">&quot;\\vdots&quot;</span><span class="pn">,</span><span class="s">&quot;\\ddots&quot;</span><span class="pn">,</span>
<span class="s">&quot; &amp; &quot;</span><span class="pn">,</span> <span class="s">&quot;\\\\ &quot;</span> <span class="o">+</span> <span class="id">Environment</span><span class="pn">.</span><span class="id">NewLine</span><span class="pn">,</span> <span class="pn">(</span><span class="k">fun</span> <span class="id">x</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs11', 56)" onmouseover="showTip(event, 'fs11', 56)" class="id">formatMathValue</span> <span class="s">&quot;G4&quot;</span> <span class="id">x</span><span class="pn">)</span><span class="pn">)</span>
<span class="s">&quot;\\end{bmatrix}&quot;</span> <span class="pn">]</span>
<span class="k">let</span> <span class="k">inline</span> <span onmouseout="hideTip(event, 'fs29', 57)" onmouseover="showTip(event, 'fs29', 57)" class="fn">formatVector</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs30', 58)" onmouseover="showTip(event, 'fs30', 58)" class="fn">vector</span><span class="pn">:</span> <span onmouseout="hideTip(event, 'fs31', 59)" onmouseover="showTip(event, 'fs31', 59)" class="vt">Vector</span><span class="pn">&lt;</span><span class="ta">&#39;</span><span class="id">T</span><span class="pn">&gt;</span><span class="pn">)</span> <span class="o">=</span>
<span onmouseout="hideTip(event, 'fs27', 60)" onmouseover="showTip(event, 'fs27', 60)" class="m">String</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs28', 61)" onmouseover="showTip(event, 'fs28', 61)" class="id">concat</span> <span class="id">Environment</span><span class="pn">.</span><span class="id">NewLine</span>
<span class="pn">[</span> <span class="s">&quot;\\begin{bmatrix}&quot;</span>
<span onmouseout="hideTip(event, 'fs30', 62)" onmouseover="showTip(event, 'fs30', 62)" class="fn">vector</span><span class="pn">.</span><span class="id">ToVectorString</span><span class="pn">(</span><span class="n">12</span><span class="pn">,</span> <span class="n">80</span><span class="pn">,</span> <span class="s">&quot;\\vdots&quot;</span><span class="pn">,</span> <span class="s">&quot; &amp; &quot;</span><span class="pn">,</span> <span class="s">&quot;\\\\ &quot;</span> <span class="o">+</span> <span class="id">Environment</span><span class="pn">.</span><span class="id">NewLine</span><span class="pn">,</span>
<span class="pn">(</span><span class="k">fun</span> <span class="id">x</span> <span class="k">-&gt;</span> <span onmouseout="hideTip(event, 'fs11', 63)" onmouseover="showTip(event, 'fs11', 63)" class="id">formatMathValue</span> <span class="s">&quot;G4&quot;</span> <span class="id">x</span><span class="pn">)</span><span class="pn">)</span>
<span class="s">&quot;\\end{bmatrix}&quot;</span> <span class="pn">]</span>
<span class="id">App</span><span class="pn">.</span><span class="id">AddDisplayPrinter</span> <span class="pn">(</span><span class="k">fun</span> <span class="pn">(</span><span class="id">x</span><span class="pn">:</span><span class="id">Matrix</span><span class="pn">&lt;</span><span onmouseout="hideTip(event, 'fs3', 64)" onmouseover="showTip(event, 'fs3', 64)" class="id">float</span><span class="pn">&gt;</span><span class="pn">)</span> <span class="k">-&gt;</span>
<span class="pn">{</span> <span class="id">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span><span class="pn">;</span> <span onmouseout="hideTip(event, 'fs32', 65)" onmouseover="showTip(event, 'fs32', 65)" class="id">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs25', 66)" onmouseover="showTip(event, 'fs25', 66)" class="id">formatMatrix</span> <span class="id">x</span> <span class="pn">}</span><span class="pn">)</span>
<span class="id">App</span><span class="pn">.</span><span class="id">AddDisplayPrinter</span> <span class="pn">(</span><span class="k">fun</span> <span class="pn">(</span><span class="id">x</span><span class="pn">:</span><span class="id">Matrix</span><span class="pn">&lt;</span><span onmouseout="hideTip(event, 'fs6', 67)" onmouseover="showTip(event, 'fs6', 67)" class="id">float32</span><span class="pn">&gt;</span><span class="pn">)</span> <span class="k">-&gt;</span>
<span class="pn">{</span> <span class="id">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span><span class="pn">;</span> <span onmouseout="hideTip(event, 'fs32', 68)" onmouseover="showTip(event, 'fs32', 68)" class="id">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs25', 69)" onmouseover="showTip(event, 'fs25', 69)" class="id">formatMatrix</span> <span class="id">x</span> <span class="pn">}</span><span class="pn">)</span>
<span class="id">App</span><span class="pn">.</span><span class="id">AddDisplayPrinter</span> <span class="pn">(</span><span class="k">fun</span> <span class="pn">(</span><span class="id">x</span><span class="pn">:</span><span onmouseout="hideTip(event, 'fs31', 70)" onmouseover="showTip(event, 'fs31', 70)" class="id">Vector</span><span class="pn">&lt;</span><span onmouseout="hideTip(event, 'fs3', 71)" onmouseover="showTip(event, 'fs3', 71)" class="id">float</span><span class="pn">&gt;</span><span class="pn">)</span> <span class="k">-&gt;</span>
<span class="pn">{</span> <span class="id">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span><span class="pn">;</span> <span onmouseout="hideTip(event, 'fs32', 72)" onmouseover="showTip(event, 'fs32', 72)" class="id">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs29', 73)" onmouseover="showTip(event, 'fs29', 73)" class="id">formatVector</span> <span class="id">x</span> <span class="pn">}</span><span class="pn">)</span>
<span class="id">App</span><span class="pn">.</span><span class="id">AddDisplayPrinter</span> <span class="pn">(</span><span class="k">fun</span> <span class="pn">(</span><span class="id">x</span><span class="pn">:</span><span onmouseout="hideTip(event, 'fs31', 74)" onmouseover="showTip(event, 'fs31', 74)" class="id">Vector</span><span class="pn">&lt;</span><span onmouseout="hideTip(event, 'fs6', 75)" onmouseover="showTip(event, 'fs6', 75)" class="id">float32</span><span class="pn">&gt;</span><span class="pn">)</span> <span class="k">-&gt;</span>
<span class="pn">{</span> <span class="id">ContentType</span> <span class="o">=</span> <span class="s">&quot;text/latex&quot;</span><span class="pn">;</span> <span onmouseout="hideTip(event, 'fs32', 76)" onmouseover="showTip(event, 'fs32', 76)" class="id">Data</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs29', 77)" onmouseover="showTip(event, 'fs29', 77)" class="id">formatVector</span> <span class="id">x</span> <span class="pn">}</span><span class="pn">)</span>
</code></pre>
<div class="fsdocs-tip" id="fs1">val v : obj</div>
<div class="fsdocs-tip" id="fs2">type obj = System.Object<br /><em>&lt;summary&gt;An abbreviation for the CLI type &lt;see cref=&quot;T:System.Object&quot; /&gt;.&lt;/summary&gt;<br />&lt;category&gt;Basic Types&lt;/category&gt;</em></div>
<div class="fsdocs-tip" id="fs3">Multiple items<br />val float : value:&#39;T -&gt; float (requires member op_Explicit)<br /><em>&lt;summary&gt;Converts the argument to 64-bit float. This is a direct conversion for all
primitive numeric types. For strings, the input is converted using &lt;c&gt;Double.Parse()&lt;/c&gt;
with InvariantCulture settings. Otherwise the operation requires an appropriate
static conversion method on the input type.&lt;/summary&gt;<br />&lt;param name=&quot;value&quot;&gt;The input value.&lt;/param&gt;<br />&lt;returns&gt;The converted float&lt;/returns&gt;</em><br /><br />--------------------<br />[&lt;Struct&gt;]
type float = System.Double<br /><em>&lt;summary&gt;An abbreviation for the CLI type &lt;see cref=&quot;T:System.Double&quot; /&gt;.&lt;/summary&gt;<br />&lt;category&gt;Basic Types&lt;/category&gt;</em><br /><br />--------------------<br />type float&lt;&#39;Measure&gt; =
float<br /><em>&lt;summary&gt;The type of double-precision floating point numbers, annotated with a unit of measure.
The unit of measure is erased in compiled code and when values of this type
are analyzed using reflection. The type is representationally equivalent to
&lt;see cref=&quot;T:System.Double&quot; /&gt;.&lt;/summary&gt;<br />&lt;category index=&quot;6&quot;&gt;Basic Types with Units of Measure&lt;/category&gt;</em></div>
<div class="fsdocs-tip" id="fs4">Union-Fall Option.Some: Value: &#39;T -&gt; Option&lt;&#39;T&gt;<br /><em>&lt;summary&gt;The representation of &quot;Value of type &#39;T&quot;&lt;/summary&gt;<br />&lt;param name=&quot;Value&quot;&gt;The input value.&lt;/param&gt;<br />&lt;returns&gt;An option representing the value.&lt;/returns&gt;</em></div>
<div class="fsdocs-tip" id="fs5">Union-Fall Option.None: Option&lt;&#39;T&gt;<br /><em>&lt;summary&gt;The representation of &quot;No value&quot;&lt;/summary&gt;</em></div>
<div class="fsdocs-tip" id="fs6">Multiple items<br />val float32 : value:&#39;T -&gt; float32 (requires member op_Explicit)<br /><em>&lt;summary&gt;Converts the argument to 32-bit float. This is a direct conversion for all
primitive numeric types. For strings, the input is converted using &lt;c&gt;Single.Parse()&lt;/c&gt;
with InvariantCulture settings. Otherwise the operation requires an appropriate
static conversion method on the input type.&lt;/summary&gt;<br />&lt;param name=&quot;value&quot;&gt;The input value.&lt;/param&gt;<br />&lt;returns&gt;The converted float32&lt;/returns&gt;</em><br /><br />--------------------<br />[&lt;Struct&gt;]
type float32 = System.Single<br /><em>&lt;summary&gt;An abbreviation for the CLI type &lt;see cref=&quot;T:System.Single&quot; /&gt;.&lt;/summary&gt;<br />&lt;category&gt;Basic Types&lt;/category&gt;</em><br /><br />--------------------<br />type float32&lt;&#39;Measure&gt; =
float32<br /><em>&lt;summary&gt;The type of single-precision floating point numbers, annotated with a unit of measure.
The unit of measure is erased in compiled code and when values of this type
are analyzed using reflection. The type is representationally equivalent to
&lt;see cref=&quot;T:System.Single&quot; /&gt;.
&lt;/summary&gt;<br />&lt;category&gt;Basic Types with Units of Measure&lt;/category&gt;</em></div>
<div class="fsdocs-tip" id="fs7">val v : &#39;T (requires member IsPositiveInfinity)</div>
<div class="fsdocs-tip" id="fs8">[&lt;Struct&gt;]
type bool = System.Boolean<br /><em>&lt;summary&gt;An abbreviation for the CLI type &lt;see cref=&quot;T:System.Boolean&quot; /&gt;.&lt;/summary&gt;<br />&lt;category&gt;Basic Types&lt;/category&gt;</em></div>
<div class="fsdocs-tip" id="fs9">val v : &#39;T (requires member IsNegativeInfinity)</div>
<div class="fsdocs-tip" id="fs10">val v : &#39;T (requires member IsNaN)</div>
<div class="fsdocs-tip" id="fs11">val formatMathValue : floatFormat:string -&gt; _arg1:&#39;a -&gt; string (requires member IsNaN and member IsPositiveInfinity and member IsNegativeInfinity)</div>
<div class="fsdocs-tip" id="fs12">val floatFormat : string</div>
<div class="fsdocs-tip" id="fs13">Multiple items<br />val string : value:&#39;T -&gt; string<br /><em>&lt;summary&gt;Converts the argument to a string using &lt;c&gt;ToString&lt;/c&gt;.&lt;/summary&gt;<br />&lt;remarks&gt;For standard integer and floating point values the and any type that implements &lt;c&gt;IFormattable&lt;/c&gt;&lt;c&gt;ToString&lt;/c&gt; conversion uses &lt;c&gt;CultureInfo.InvariantCulture&lt;/c&gt;. &lt;/remarks&gt;<br />&lt;param name=&quot;value&quot;&gt;The input value.&lt;/param&gt;<br />&lt;returns&gt;The converted string.&lt;/returns&gt;</em><br /><br />--------------------<br />type string = System.String<br /><em>&lt;summary&gt;An abbreviation for the CLI type &lt;see cref=&quot;T:System.String&quot; /&gt;.&lt;/summary&gt;<br />&lt;category&gt;Basic Types&lt;/category&gt;</em></div>
<div class="fsdocs-tip" id="fs14">aktive Erkennung PositiveInfinity: &#39;T -&gt; unit option</div>
<div class="fsdocs-tip" id="fs15">aktive Erkennung NegativeInfinity: &#39;T -&gt; unit option</div>
<div class="fsdocs-tip" id="fs16">aktive Erkennung NaN: &#39;T -&gt; unit option</div>
<div class="fsdocs-tip" id="fs17">aktive Erkennung Float: obj -&gt; float option</div>
<div class="fsdocs-tip" id="fs18">val v : float</div>
<div class="fsdocs-tip" id="fs19">System.Double.ToString() : string<br />System.Double.ToString(format: string) : string<br />System.Double.ToString(provider: System.IFormatProvider) : string<br />System.Double.ToString(format: string, provider: System.IFormatProvider) : string</div>
<div class="fsdocs-tip" id="fs20">aktive Erkennung Float32: obj -&gt; float32 option</div>
<div class="fsdocs-tip" id="fs21">val v : float32</div>
<div class="fsdocs-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="fsdocs-tip" id="fs23">val v : &#39;a (requires member IsNaN and member IsPositiveInfinity and member IsNegativeInfinity)</div>
<div class="fsdocs-tip" id="fs24">System.Object.ToString() : string</div>
<div class="fsdocs-tip" id="fs25">val formatMatrix : matrix:&#39;a -&gt; string</div>
<div class="fsdocs-tip" id="fs26">val matrix : &#39;a</div>
<div class="fsdocs-tip" id="fs27">Modul String
aus Microsoft.FSharp.Core<br /><em>&lt;summary&gt;Functional programming operators for string processing. Further string operations
are available via the member functions on strings and other functionality in
&lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.string.aspx&quot;&gt;System.String&lt;/a&gt;
and &lt;a href=&quot;http://msdn2.microsoft.com/library/system.text.regularexpressions.aspx&quot;&gt;System.Text.RegularExpressions&lt;/a&gt; types.
&lt;/summary&gt;<br />&lt;category&gt;Strings and Text&lt;/category&gt;</em></div>
<div class="fsdocs-tip" id="fs28">val concat : sep:string -&gt; strings:seq&lt;string&gt; -&gt; string<br /><em>&lt;summary&gt;Returns a new string made by concatenating the given strings
with separator &lt;c&gt;sep&lt;/c&gt;, that is &lt;c&gt;a1 + sep + ... + sep + aN&lt;/c&gt;.&lt;/summary&gt;<br />&lt;param name=&quot;sep&quot;&gt;The separator string to be inserted between the strings
of the input sequence.&lt;/param&gt;<br />&lt;param name=&quot;strings&quot;&gt;The sequence of strings to be concatenated.&lt;/param&gt;<br />&lt;returns&gt;A new string consisting of the concatenated strings separated by
the separation string.&lt;/returns&gt;<br />&lt;exception cref=&quot;T:System.ArgumentNullException&quot;&gt;Thrown when &lt;c&gt;strings&lt;/c&gt; is null.&lt;/exception&gt;</em></div>
<div class="fsdocs-tip" id="fs29">val formatVector : vector:Vector&lt;&#39;T&gt; -&gt; string (requires default constructor and value type and &#39;T :&gt; System.ValueType)</div>
<div class="fsdocs-tip" id="fs30">val vector : Vector&lt;&#39;T&gt; (requires default constructor and value type and &#39;T :&gt; System.ValueType)</div>
<div class="fsdocs-tip" id="fs31">Multiple items<br />type Vector =
static member Abs&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
static member Add&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : left: Vector&lt;&#39;T&gt; * right: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
static member AndNot&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : left: Vector&lt;&#39;T&gt; * right: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
static member AsVectorByte&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;byte&gt;
static member AsVectorDouble&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;float&gt;
static member AsVectorInt16&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;int16&gt;
static member AsVectorInt32&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;int&gt;
static member AsVectorInt64&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;int64&gt;
static member AsVectorSByte&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;sbyte&gt;
static member AsVectorSingle&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; : value: Vector&lt;&#39;T&gt; -&gt; Vector&lt;float32&gt;
...<br /><em>&lt;summary&gt;Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.&lt;/summary&gt;</em><br /><br />--------------------<br />[&lt;Struct&gt;]
type Vector&lt;&#39;T (requires default constructor and value type and &#39;T :&gt; ValueType)&gt; =
new : values: ReadOnlySpan&lt;byte&gt; -&gt; unit + 5 &#220;berladungen
member CopyTo : destination: Span&lt;byte&gt; -&gt; unit + 3 &#220;berladungen
member Equals : other: Vector&lt;&#39;T&gt; -&gt; bool + 1 &#220;berladung
member GetHashCode : unit -&gt; int
member ToString : unit -&gt; string + 2 &#220;berladungen
member TryCopyTo : destination: Span&lt;byte&gt; -&gt; bool + 1 &#220;berladung
static member op_Addition : left: Vector&lt;&#39;T&gt; * right: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
static member op_BitwiseAnd : left: Vector&lt;&#39;T&gt; * right: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
static member op_BitwiseOr : left: Vector&lt;&#39;T&gt; * right: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
static member op_Division : left: Vector&lt;&#39;T&gt; * right: Vector&lt;&#39;T&gt; -&gt; Vector&lt;&#39;T&gt;
...<br /><em>&lt;summary&gt;Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.&lt;/summary&gt;<br />&lt;typeparam name=&quot;T&quot;&gt;The vector type. &lt;c&gt;T&lt;/c&gt; can be any primitive numeric type.&lt;/typeparam&gt;</em><br /><br />--------------------<br />Vector ()<br />Vector(values: System.ReadOnlySpan&lt;byte&gt;) : Vector&lt;&#39;T&gt;<br />Vector(values: System.ReadOnlySpan&lt;&#39;T&gt;) : Vector&lt;&#39;T&gt;<br />Vector(values: System.Span&lt;&#39;T&gt;) : Vector&lt;&#39;T&gt;<br />Vector(value: &#39;T) : Vector&lt;&#39;T&gt;<br />Vector(values: &#39;T []) : Vector&lt;&#39;T&gt;<br />Vector(values: &#39;T [], index: int) : Vector&lt;&#39;T&gt;</div>
<div class="fsdocs-tip" id="fs32">Namespace Microsoft.FSharp.Data</div>
</div>
<!-- BEGIN SEARCH BOX: this adds support for the search box -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/JavaScript-autoComplete/1.0.4/auto-complete.css" />
<script type="text/javascript">var fsdocs_search_baseurl = 'https://numerics.mathdotnet.com/';</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.8/lunr.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/JavaScript-autoComplete/1.0.4/auto-complete.min.js"></script>
<script type="text/javascript" src="https://numerics.mathdotnet.com/content/fsdocs-search.js"></script>
<!-- END SEARCH BOX: this adds support for the search box -->
</div>
</body>
</html>