869 lines
27 KiB
HTML
869 lines
27 KiB
HTML
<!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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite/linear_algebra/ndarray.cr#L1" target="_blank">
|
|
apatite/linear_algebra/ndarray.cr
|
|
</a>
|
|
|
|
<br/>
|
|
|
|
|
|
<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite/linear_algebra.cr#L5" target="_blank">
|
|
apatite/linear_algebra.cr
|
|
</a>
|
|
|
|
<br/>
|
|
|
|
|
|
<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L10" target="_blank">
|
|
apatite.cr
|
|
</a>
|
|
|
|
<br/>
|
|
|
|
|
|
<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite/version.cr#L1" target="_blank">
|
|
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>
|
|
</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>
|
|
</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>
|
|
</dd>
|
|
|
|
|
|
<dt class="entry-const" id="VERSION">
|
|
<strong>VERSION</strong> = <code><span class="s">"0.1.0"</span></code>
|
|
</dt>
|
|
|
|
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
<h2>Class Method Summary</h2>
|
|
<ul class="list-summary">
|
|
|
|
<li class="entry-summary">
|
|
<a href="#approx_precision-class-method" class="signature"><strong>.approx_precision</strong></a>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#approx_precision%3D%28approx_precision%29-class-method" class="signature"><strong>.approx_precision=</strong>(approx_precision)</a>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#precision-class-method" class="signature"><strong>.precision</strong></a>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#precision%3D%28precision%29-class-method" class="signature"><strong>.precision=</strong>(precision)</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<h2>Instance Method Summary</h2>
|
|
<ul class="list-summary">
|
|
|
|
<li class="entry-summary">
|
|
<a href="#angle_from%28a%2Cb%29-instance-method" class="signature"><strong>#angle_from</strong>(a, b)</a>
|
|
|
|
<div class="summary"><p>Returns the angle between this vector and another in radians.</p></div>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#antiparallel_to%3F%28a%2Cb%29-instance-method" class="signature"><strong>#antiparallel_to?</strong>(a, b)</a>
|
|
|
|
<div class="summary"><p>Returns whether the vectors are antiparallel to each other.</p></div>
|
|
|
|
</li>
|
|
|
|
<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>
|
|
|
|
</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>
|
|
|
|
</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>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#dot%28x%2Cy%29-instance-method" class="signature"><strong>#dot</strong>(x, y)</a>
|
|
|
|
<div class="summary"><p>Get the scalar (dot) product of two vectors.</p></div>
|
|
|
|
</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>
|
|
|
|
</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>
|
|
|
|
<div class="summary"><p>Creates a new empty matrix with the given <code>row_count</code> and <code>column_count</code>.</p></div>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#eye%28n%29-instance-method" class="signature"><strong>#eye</strong>(n)</a>
|
|
|
|
<div class="summary"><p>Creates a new diagonal matrix of size <code>n</code> with ones in the diagonal and zeros elsewhere.</p></div>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#full%28n%2Ci%29-instance-method" class="signature"><strong>#full</strong>(n, i)</a>
|
|
|
|
<div class="summary"><p>Returns a new vector of size <code>n</code> filled with <code>i</code></p></div>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#identity%28n%29-instance-method" class="signature"><strong>#identity</strong>(n)</a>
|
|
|
|
<div class="summary"><p>Creates a <code>n x n</code> identity matrix.</p></div>
|
|
|
|
</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="#parallel_to%3F%28a%2Cb%29-instance-method" class="signature"><strong>#parallel_to?</strong>(a, b)</a>
|
|
|
|
<div class="summary"><p>Returns whether the vectors are parallel to each other.</p></div>
|
|
|
|
</li>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#perpendicular_to%3F%28a%2Cb%29-instance-method" class="signature"><strong>#perpendicular_to?</strong>(a, b)</a>
|
|
|
|
<div class="summary"><p>Returns whether the vectors are perpendicular to each other.</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>
|
|
|
|
<li class="entry-summary">
|
|
<a href="#similarity%28x%2Cy%29-instance-method" class="signature"><strong>#similarity</strong>(x, y)</a>
|
|
|
|
<div class="summary"><p>Compute the cosine similarity between two vectors.</p></div>
|
|
|
|
</li>
|
|
|
|
<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>Class Method Detail</h2>
|
|
|
|
<div class="entry-detail" id="approx_precision-class-method">
|
|
<div class="signature">
|
|
|
|
def self.<strong>approx_precision</strong>
|
|
|
|
<a class="method-permalink" href="#approx_precision-class-method">#</a>
|
|
</div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L18" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="approx_precision=(approx_precision)-class-method">
|
|
<div class="signature">
|
|
|
|
def self.<strong>approx_precision=</strong>(approx_precision)
|
|
|
|
<a class="method-permalink" href="#approx_precision%3D%28approx_precision%29-class-method">#</a>
|
|
</div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L22" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="precision-class-method">
|
|
<div class="signature">
|
|
|
|
def self.<strong>precision</strong>
|
|
|
|
<a class="method-permalink" href="#precision-class-method">#</a>
|
|
</div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L17" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="precision=(precision)-class-method">
|
|
<div class="signature">
|
|
|
|
def self.<strong>precision=</strong>(precision)
|
|
|
|
<a class="method-permalink" href="#precision%3D%28precision%29-class-method">#</a>
|
|
</div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L21" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>Instance Method Detail</h2>
|
|
|
|
<div class="entry-detail" id="angle_from(a,b)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>angle_from</strong>(a, b)
|
|
|
|
<a class="method-permalink" href="#angle_from%28a%2Cb%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Returns the angle between this vector and another in radians.
|
|
If the vectors are mirrored across their axes this will return <code>nil</code>.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L145" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="antiparallel_to?(a,b)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>antiparallel_to?</strong>(a, b)
|
|
|
|
<a class="method-permalink" href="#antiparallel_to%3F%28a%2Cb%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Returns whether the vectors are antiparallel to each other.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L178" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="as_vector(input:Indexable)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>as_vector</strong>(input : Indexable)
|
|
|
|
<a class="method-permalink" href="#as_vector%28input%3AIndexable%29-instance-method">#</a>
|
|
</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>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L65" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="basis(size,index)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>basis</strong>(size, index)
|
|
|
|
<a class="method-permalink" href="#basis%28size%2Cindex%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Creates a standard basis-n vector of the given <code>size</code> and <code>index</code>.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L70" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="diagonal(values)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>diagonal</strong>(values)
|
|
|
|
<a class="method-permalink" href="#diagonal%28values%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Creates a matrix where the diagonal elements are composed of <code>values</code>.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L93" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="dot(x,y)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>dot</strong>(x, y)
|
|
|
|
<a class="method-permalink" href="#dot%28x%2Cy%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Get the scalar (dot) product of two vectors.</p>
|
|
|
|
<p>[https://en.wikipedia.org/wiki/Scalar_product](https://en.wikipedia.org/wiki/Scalar_product</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L125" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="empty-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>empty</strong>
|
|
|
|
<a class="method-permalink" href="#empty-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Returns a new empty <code><a href="Apatite/LinearAlgebra/Vector.html">Vector</a></code></p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L38" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="empty_matrix(row_count=0,column_count=0)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>empty_matrix</strong>(row_count = <span class="n">0</span>, column_count = <span class="n">0</span>)
|
|
|
|
<a class="method-permalink" href="#empty_matrix%28row_count%3D0%2Ccolumn_count%3D0%29-instance-method">#</a>
|
|
</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>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L88" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="eye(n)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>eye</strong>(n)
|
|
|
|
<a class="method-permalink" href="#eye%28n%29-instance-method">#</a>
|
|
</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>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L99" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="full(n,i)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>full</strong>(n, i)
|
|
|
|
<a class="method-permalink" href="#full%28n%2Ci%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Returns a new vector of size <code>n</code> filled with <code>i</code></p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L53" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="identity(n)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>identity</strong>(n)
|
|
|
|
<a class="method-permalink" href="#identity%28n%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Creates a <code>n x n</code> identity matrix.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L104" target="_blank">View source</a>]
|
|
|
|
</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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L43" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="parallel_to?(a,b)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>parallel_to?</strong>(a, b)
|
|
|
|
<a class="method-permalink" href="#parallel_to%3F%28a%2Cb%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Returns whether the vectors are parallel to each other.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L172" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="perpendicular_to?(a,b)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>perpendicular_to?</strong>(a, b)
|
|
|
|
<a class="method-permalink" href="#perpendicular_to%3F%28a%2Cb%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Returns whether the vectors are perpendicular to each other.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L184" 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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L77" 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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L109" 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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L114" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="similarity(x,y)-instance-method">
|
|
<div class="signature">
|
|
|
|
def <strong>similarity</strong>(x, y)
|
|
|
|
<a class="method-permalink" href="#similarity%28x%2Cy%29-instance-method">#</a>
|
|
</div>
|
|
|
|
<div class="doc"><p>Compute the cosine similarity between two vectors.</p></div>
|
|
|
|
<br/>
|
|
<div>
|
|
|
|
[<a href="https://github.com/watzon/apatite/blob/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L136" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="entry-detail" id="vector(n,&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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L59" target="_blank">View source</a>]
|
|
|
|
</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/ef28e84ecc4b7dc21e66c18464fec0892633d420/src/apatite.cr#L48" target="_blank">View source</a>]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|