apatite/docs/Apatite.html

624 lines
19 KiB
HTML
Raw Normal View History

2019-06-13 02:23:54 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="generator" content="Crystal Docs 0.29.0">
<link href="css/style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/doc.js"></script>
<script type="text/javascript">
CrystalDoc.base_path = "";
</script>
<meta id="repository-name" content="github.com/watzon/apatite">
<title>Apatite - github.com/watzon/apatite</title>
</head>
<body>
<div class="sidebar">
<div class="sidebar-header">
<div class="search-box">
<input type="search" class="search-input" placeholder="Search..." spellcheck="false" aria-label="Search">
</div>
<div class="repository-links">
<a href="index.html">README</a>
</div>
</div>
<div class="search-results" class="hidden">
<ul class="search-list"></ul>
</div>
<div class="types-list">
<ul>
<li class="parent open current" data-id="github.com/watzon/apatite/Apatite" data-name="apatite">
<a href="Apatite.html">Apatite</a>
<ul>
<li class="parent " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra" data-name="apatite::linearalgebra">
<a href="Apatite/LinearAlgebra.html">LinearAlgebra</a>
<ul>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Matrix" data-name="apatite::linearalgebra::matrix">
<a href="Apatite/LinearAlgebra/Matrix.html">Matrix</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/NDArray" data-name="apatite::linearalgebra::ndarray">
<a href="Apatite/LinearAlgebra/NDArray.html">NDArray</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Vector" data-name="apatite::linearalgebra::vector">
<a href="Apatite/LinearAlgebra/Vector.html">Vector</a>
</li>
</ul>
</li>
</ul>
</li>
<li class=" " data-id="github.com/watzon/apatite/Array" data-name="array(t)">
<a href="Array.html">Array</a>
</li>
</ul>
</div>
</div>
<div class="main-content">
<h1 class="type-name">
<span class="kind">module</span> Apatite
</h1>
<h2>Overview</h2>
<p>Apatite is a fundimental package for scientific computing in Crystal. If that
sounds like a modified version of the first line from the NumPy homepage,
that's because it is. Apatite has (ok, will have) all of the goodness
of NumPy sitting atop the blazing speed and beautiful syntax
of Crystal.</p>
<h2>Included Modules</h2>
<ul class="other-types-list">
<li class="other-type"><a href="Apatite/LinearAlgebra.html">Apatite::LinearAlgebra</a></li>
</ul>
<h2>Extended Modules</h2>
<ul class="other-types-list">
<li class="other-type"><a href="Apatite.html">Apatite</a></li>
</ul>
<h2>Defined in:</h2>
<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite/linear_algebra/ndarray.cr#L1" target="_blank">
2019-06-13 02:23:54 +00:00
apatite/linear_algebra/ndarray.cr
</a>
<br/>
<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite/linear_algebra.cr#L5" target="_blank">
2019-06-13 02:23:54 +00:00
apatite/linear_algebra.cr
</a>
<br/>
<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L10" target="_blank">
2019-06-13 02:23:54 +00:00
apatite.cr
</a>
<br/>
<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite/version.cr#L1" target="_blank">
2019-06-13 02:23:54 +00:00
apatite/version.cr
</a>
<br/>
<h2>Constant Summary</h2>
<dl>
<dt class="entry-const" id="I">
<strong>I</strong> = <code><span class="t">Vector</span><span class="t">::</span><span class="t">I</span></code>
</dt>
<dd class="entry-const-doc">
<p>Cartesian unit vector I</p>
<p><code><a href="Apatite/LinearAlgebra/Vector.html">Vector</a>{1.0, 0.0, 0.0}</code></p>
2019-06-13 02:23:54 +00:00
</dd>
<dt class="entry-const" id="J">
<strong>J</strong> = <code><span class="t">Vector</span><span class="t">::</span><span class="t">J</span></code>
</dt>
<dd class="entry-const-doc">
<p>Cartesian unit vector J</p>
<p><code><a href="Apatite/LinearAlgebra/Vector.html">Vector</a>{0.0, 1.0, 0.0}</code></p>
2019-06-13 02:23:54 +00:00
</dd>
<dt class="entry-const" id="K">
<strong>K</strong> = <code><span class="t">Vector</span><span class="t">::</span><span class="t">K</span></code>
</dt>
<dd class="entry-const-doc">
<p>Cartesian unit vector K</p>
<p><code><a href="Apatite/LinearAlgebra/Vector.html">Vector</a>{0.0, 0.0, 1.0}</code></p>
2019-06-13 02:23:54 +00:00
</dd>
<dt class="entry-const" id="VERSION">
<strong>VERSION</strong> = <code><span class="s">&quot;0.1.0&quot;</span></code>
</dt>
</dl>
<h2>Instance Method Summary</h2>
2019-06-13 02:23:54 +00:00
<ul class="list-summary">
<li class="entry-summary">
<a href="#as_vector%28input%3AIndexable%29-instance-method" class="signature"><strong>#as_vector</strong>(input : Indexable)</a>
<div class="summary"><p>Creates a new vector from the given <code>input</code>.</p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#basis%28size%2Cindex%29-instance-method" class="signature"><strong>#basis</strong>(size, index)</a>
<div class="summary"><p>Creates a standard basis-n vector of the given <code>size</code> and <code>index</code>.</p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#diagonal%28values%29-instance-method" class="signature"><strong>#diagonal</strong>(values)</a>
<div class="summary"><p>Creates a matrix where the diagonal elements are composed of <code>values</code>.</p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#empty-instance-method" class="signature"><strong>#empty</strong></a>
<div class="summary"><p>Returns a new empty <code><a href="Apatite/LinearAlgebra/Vector.html">Vector</a></code></p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#empty_matrix%28row_count%3D0%2Ccolumn_count%3D0%29-instance-method" class="signature"><strong>#empty_matrix</strong>(row_count = <span class="n">0</span>, column_count = <span class="n">0</span>)</a>
2019-06-13 02:23:54 +00:00
<div class="summary"><p>Creates a new empty matrix with the given <code>row_count</code> and <code>column_count</code>.</p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#eye%28n%29-instance-method" class="signature"><strong>#eye</strong>(n)</a>
2019-06-13 02:23:54 +00:00
<div class="summary"><p>Creates a new diagonal matrix of size <code>n</code> with ones in the diagonal and zeros elsewhere.</p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#full%28n%2Ci%29-instance-method" class="signature"><strong>#full</strong>(n, i)</a>
2019-06-13 02:23:54 +00:00
<div class="summary"><p>Returns a new vector of size <code>n</code> filled with <code>i</code></p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#identity%28n%29-instance-method" class="signature"><strong>#identity</strong>(n)</a>
2019-06-13 02:23:54 +00:00
<div class="summary"><p>Creates a <code>n x n</code> identity matrix.</p></div>
2019-06-13 02:23:54 +00:00
</li>
<li class="entry-summary">
<a href="#ones%28n%29-instance-method" class="signature"><strong>#ones</strong>(n)</a>
<div class="summary"><p>Returns a new vector filled with <code>n</code> ones.</p></div>
</li>
<li class="entry-summary">
<a href="#random%28n%2Crange%3Dnil%29-instance-method" class="signature"><strong>#random</strong>(n, range = <span class="n">nil</span>)</a>
<div class="summary"><p>Creates a new vector of size <code>n</code> filled with random numbers.</p></div>
</li>
<li class="entry-summary">
<a href="#row_vector%28row%29-instance-method" class="signature"><strong>#row_vector</strong>(row)</a>
<div class="summary"><p>Creates a single-row matrix where the values of that row are as given in <code>row</code>.</p></div>
</li>
<li class="entry-summary">
<a href="#scalar%28n%2Cvalue%29-instance-method" class="signature"><strong>#scalar</strong>(n, value)</a>
<div class="summary"><p>Creates an <code>n</code> by <code>n</code> diagonal matrix where each diagonal element is value.</p></div>
</li>
2019-06-13 02:23:54 +00:00
<li class="entry-summary">
<a href="#vector%28n%2C%26block%29-instance-method" class="signature"><strong>#vector</strong>(n, &block)</a>
<div class="summary"><p>Creates a new vector of size <code>n</code>, and invokes the block once for each index of <code>self</code>, assigning the block's value in that index.</p></div>
</li>
<li class="entry-summary">
<a href="#zeros%28n%29-instance-method" class="signature"><strong>#zeros</strong>(n)</a>
<div class="summary"><p>Returns a new vector filled with <code>n</code> zeros.</p></div>
</li>
</ul>
<div class="methods-inherited">
<h3>Instance methods inherited from module <code><a href="Apatite/LinearAlgebra.html">Apatite::LinearAlgebra</a></code></h3>
<a href="Apatite/LinearAlgebra.html#sigmoid%28input%3ANumber%29-instance-method" class="tooltip">
<span>sigmoid(input : Number)</span>
sigmoid</a>,
<a href="Apatite/LinearAlgebra.html#sigmoid_d%28input%3ANumber%29-instance-method" class="tooltip">
<span>sigmoid_d(input : Number)</span>
sigmoid_d</a>
</div>
<h2>Instance Method Detail</h2>
2019-06-13 02:23:54 +00:00
<div class="entry-detail" id="as_vector(input:Indexable)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>as_vector</strong>(input : Indexable)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#as_vector%28input%3AIndexable%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Creates a new vector from the given <code>input</code>. Input can be any
<code>Indexable</code> type.</p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L61" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="basis(size,index)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>basis</strong>(size, index)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#basis%28size%2Cindex%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Creates a standard basis-n vector of the given <code>size</code> and <code>index</code>.</p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L66" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="diagonal(values)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>diagonal</strong>(values)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#diagonal%28values%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Creates a matrix where the diagonal elements are composed of <code>values</code>.</p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L89" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="empty-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>empty</strong>
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#empty-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Returns a new empty <code><a href="Apatite/LinearAlgebra/Vector.html">Vector</a></code></p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L34" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="empty_matrix(row_count=0,column_count=0)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>empty_matrix</strong>(row_count = <span class="n">0</span>, column_count = <span class="n">0</span>)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#empty_matrix%28row_count%3D0%2Ccolumn_count%3D0%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Creates a new empty matrix with the given <code>row_count</code> and
<code>column_count</code>. At lease one of <code>row_count</code> or
<code>column_count</code> must be zero.</p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L84" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="eye(n)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>eye</strong>(n)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#eye%28n%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Creates a new diagonal matrix of size <code>n</code> with ones in the diagonal
and zeros elsewhere.</p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L95" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="full(n,i)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>full</strong>(n, i)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#full%28n%2Ci%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Returns a new vector of size <code>n</code> filled with <code>i</code></p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L49" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="identity(n)-instance-method">
2019-06-13 02:23:54 +00:00
<div class="signature">
def <strong>identity</strong>(n)
2019-06-13 02:23:54 +00:00
<a class="method-permalink" href="#identity%28n%29-instance-method">#</a>
2019-06-13 02:23:54 +00:00
</div>
<div class="doc"><p>Creates a <code>n x n</code> identity matrix.</p></div>
2019-06-13 02:23:54 +00:00
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L100" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="ones(n)-instance-method">
<div class="signature">
def <strong>ones</strong>(n)
<a class="method-permalink" href="#ones%28n%29-instance-method">#</a>
</div>
<div class="doc"><p>Returns a new vector filled with <code>n</code> ones.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L39" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="random(n,range=nil)-instance-method">
<div class="signature">
def <strong>random</strong>(n, range = <span class="n">nil</span>)
<a class="method-permalink" href="#random%28n%2Crange%3Dnil%29-instance-method">#</a>
</div>
<div class="doc"><p>Creates a new vector of size <code>n</code> filled with random numbers. A <code>range</code>
can optionally be passed in if you want to limit the random numbers
to a given range.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L73" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="row_vector(row)-instance-method">
<div class="signature">
def <strong>row_vector</strong>(row)
<a class="method-permalink" href="#row_vector%28row%29-instance-method">#</a>
</div>
<div class="doc"><p>Creates a single-row matrix where the values of that row are as given in <code>row</code>.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L105" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="scalar(n,value)-instance-method">
<div class="signature">
def <strong>scalar</strong>(n, value)
<a class="method-permalink" href="#scalar%28n%2Cvalue%29-instance-method">#</a>
</div>
<div class="doc"><p>Creates an <code>n</code> by <code>n</code> diagonal matrix where each diagonal element is value.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L110" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="vector(n,&amp;block)-instance-method">
<div class="signature">
def <strong>vector</strong>(n, &block)
<a class="method-permalink" href="#vector%28n%2C%26block%29-instance-method">#</a>
</div>
<div class="doc"><p>Creates a new vector of size <code>n</code>, and invokes the block once
for each index of <code>self</code>, assigning the block's value in that index.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L55" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
<div class="entry-detail" id="zeros(n)-instance-method">
<div class="signature">
def <strong>zeros</strong>(n)
<a class="method-permalink" href="#zeros%28n%29-instance-method">#</a>
</div>
<div class="doc"><p>Returns a new vector filled with <code>n</code> zeros.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/bb0f2c43324c0d6ab61bd78a63170c4d2e671d2f/src/apatite.cr#L44" target="_blank">View source</a>]
2019-06-13 02:23:54 +00:00
</div>
</div>
</div>
</body>
</html>