apatite/docs/Apatite/LinearAlgebra/Vector.html

1458 lines
46 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.30.1">
<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::LinearAlgebra::Vector(T) - 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 open current" 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/ErrDimensionMismatch" data-name="apatite::linearalgebra::errdimensionmismatch">
<a href="../../Apatite/LinearAlgebra/ErrDimensionMismatch.html">ErrDimensionMismatch</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/ErrNotRegular" data-name="apatite::linearalgebra::errnotregular">
<a href="../../Apatite/LinearAlgebra/ErrNotRegular.html">ErrNotRegular</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/ErrOperationNotDefined" data-name="apatite::linearalgebra::erroperationnotdefined">
<a href="../../Apatite/LinearAlgebra/ErrOperationNotDefined.html">ErrOperationNotDefined</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Error" data-name="apatite::linearalgebra::error">
<a href="../../Apatite/LinearAlgebra/Error.html">Error</a>
</li>
<li class="parent " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Matrix" data-name="apatite::linearalgebra::matrix(t)">
<a href="../../Apatite/LinearAlgebra/Matrix.html">Matrix</a>
<ul>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Matrix/EigenvalueDecomposition" data-name="apatite::linearalgebra::matrix::eigenvaluedecomposition">
<a href="../../Apatite/LinearAlgebra/Matrix/EigenvalueDecomposition.html">EigenvalueDecomposition</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Matrix/LupDecomposition" data-name="apatite::linearalgebra::matrix::lupdecomposition">
<a href="../../Apatite/LinearAlgebra/Matrix/LupDecomposition.html">LupDecomposition</a>
</li>
</ul>
</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=" current" data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/Vector" data-name="apatite::linearalgebra::vector(t)">
<a href="../../Apatite/LinearAlgebra/Vector.html">Vector</a>
</li>
<li class=" " data-id="github.com/watzon/apatite/Apatite/LinearAlgebra/ZeroVectorError" data-name="apatite::linearalgebra::zerovectorerror">
<a href="../../Apatite/LinearAlgebra/ZeroVectorError.html">ZeroVectorError</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">class</span> Apatite::LinearAlgebra::Vector(T)
</h1>
<ul class="superclass-hierarchy"><li class="superclass"><a href="../../Apatite/LinearAlgebra/Vector.html">Apatite::LinearAlgebra::Vector(T)</a></li><li class="superclass">Reference</li><li class="superclass">Object</li></ul>
<h2>Overview</h2>
<p>Represents a mathematical vector, and also constitutes a row or column
of a <code><a href="../../Apatite/LinearAlgebra/Matrix.html">Matrix</a></code></p>
<h2>Included Modules</h2>
<ul class="other-types-list">
<li class="other-type">Comparable(<a href="../../Apatite/LinearAlgebra/Vector.html">Apatite::LinearAlgebra::Vector(T)</a>)</li>
<li class="other-type">Enumerable(T)</li>
<li class="other-type">Indexable(T)</li>
</ul>
<h2>Defined in:</h2>
<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L8" target="_blank">
apatite/linear_algebra/vector.cr
</a>
<br/>
<h2>Class Method Summary</h2>
<ul class="list-summary">
<li class="entry-summary">
<a href="#[](*array)-class-method" class="signature"><strong>.[]</strong>(*array)</a>
<div class="summary"><p>Creates a new vector from a list of elements.</p></div>
</li>
<li class="entry-summary">
<a href="#basis(size,index)-class-method" class="signature"><strong>.basis</strong>(size, index)</a>
<div class="summary"><p>Returns a standard basis <code>n</code>-vector.</p></div>
</li>
<li class="entry-summary">
<a href="#elements(array,copy=true)-class-method" class="signature"><strong>.elements</strong>(array, copy = <span class="n">true</span>)</a>
<div class="summary"><p>Creates a vector from an Array.</p></div>
</li>
<li class="entry-summary">
<a href="#independent?(*vs)-class-method" class="signature"><strong>.independent?</strong>(*vs)</a>
<div class="summary"><p>Returns <code>true</code> if all of vectors are linearly independent.</p></div>
</li>
<li class="entry-summary">
<a href="#zero(size)-class-method" class="signature"><strong>.zero</strong>(size)</a>
<div class="summary"><p>Return a zero vector.</p></div>
</li>
</ul>
<h2>Instance Method Summary</h2>
<ul class="list-summary">
<li class="entry-summary">
<a href="#*(x:Number)-instance-method" class="signature"><strong>#*</strong>(x : Number)</a>
<div class="summary"><p>Multiplies the vector by x, where x is a number.</p></div>
</li>
<li class="entry-summary">
<a href="#*(x:Vector)-instance-method" class="signature"><strong>#*</strong>(x : Vector)</a>
<div class="summary"><p>Multiplies the vector by x, where x is another vector.</p></div>
</li>
<li class="entry-summary">
<a href="#*(x:Matrix)-instance-method" class="signature"><strong>#*</strong>(x : Matrix)</a>
<div class="summary"><p>Multiplies the vector by x, where x is a matrix.</p></div>
</li>
<li class="entry-summary">
<a href="#+(x:Matrix)-instance-method" class="signature"><strong>#+</strong>(x : Matrix)</a>
<div class="summary"><p>Vector addition.</p></div>
</li>
<li class="entry-summary">
<a href="#+(x:Number)-instance-method" class="signature"><strong>#+</strong>(x : Number)</a>
<div class="summary"><p>Vector addition.</p></div>
</li>
<li class="entry-summary">
<a href="#+(x:Vector)-instance-method" class="signature"><strong>#+</strong>(x : Vector)</a>
<div class="summary"><p>Vector addition.</p></div>
</li>
<li class="entry-summary">
<a href="#-(x:Matrix)-instance-method" class="signature"><strong>#-</strong>(x : Matrix)</a>
<div class="summary"><p>Vector subtraction.</p></div>
</li>
<li class="entry-summary">
<a href="#-(x:Vector)-instance-method" class="signature"><strong>#-</strong>(x : Vector)</a>
<div class="summary"><p>Vector subtraction.</p></div>
</li>
<li class="entry-summary">
<a href="#-(x:Number)-instance-method" class="signature"><strong>#-</strong>(x : Number)</a>
<div class="summary"><p>Vector subtraction.</p></div>
</li>
<li class="entry-summary">
<a href="#/(x:Matrix)-instance-method" class="signature"><strong>#/</strong>(x : Matrix)</a>
<div class="summary"><p>Vector division.</p></div>
</li>
<li class="entry-summary">
<a href="#/(x:Number)-instance-method" class="signature"><strong>#/</strong>(x : Number)</a>
<div class="summary"><p>Vector division.</p></div>
</li>
<li class="entry-summary">
<a href="#/(x:Vector)-instance-method" class="signature"><strong>#/</strong>(x : Vector)</a>
<div class="summary"><p>Vector division.</p></div>
</li>
<li class="entry-summary">
<a href="#-instance-method" class="signature"><strong>#<=></strong></a>
<div class="summary"><p>Take me to your leader</p></div>
</li>
<li class="entry-summary">
<a href="#(other:Vector%7CIndexable)-instance-method" class="signature"><strong>#<=></strong>(other : Vector | Indexable)</a>
<div class="summary"><p>Alien mothership</p></div>
</li>
<li class="entry-summary">
<a href="#==(other)-instance-method" class="signature"><strong>#==</strong>(other)</a>
<div class="summary"><p>Equality operator</p></div>
</li>
<li class="entry-summary">
<a href="#angle_with(v)-instance-method" class="signature"><strong>#angle_with</strong>(v)</a>
<div class="summary"><p>Returns an angle with another vector.</p></div>
</li>
<li class="entry-summary">
<a href="#clone-instance-method" class="signature"><strong>#clone</strong></a>
<div class="summary"><p>Returns a copy of the vector.</p></div>
</li>
<li class="entry-summary">
<a href="#coerce(klass:BigRational.class,denominator:Int)-instance-method" class="signature"><strong>#coerce</strong>(klass : <span class="t">BigRational</span>.<span class="k">class</span>, denominator : Int)</a>
<div class="summary"><p>Attempt to coerce the elements in a vector to BigRational with the given <code>denominator</code>.</p></div>
</li>
<li class="entry-summary">
<a href="#coerce(klass:U.class):Apatite::LinearAlgebra::Vector(U)forallU-instance-method" class="signature"><strong>#coerce</strong>(klass : <span class="t">U</span>.<span class="k">class</span>) : Apatite::LinearAlgebra::Vector(U) forall U</a>
<div class="summary"><p>The coerce method allows you to attempt to coerce the elements in the matrix to another type.</p></div>
</li>
<li class="entry-summary">
<a href="#coerce(klass:BigInt.class,base=10)-instance-method" class="signature"><strong>#coerce</strong>(klass : <span class="t">BigInt</span>.<span class="k">class</span>, base = <span class="n">10</span>)</a>
<div class="summary"><p>Attempt to coerce the elements in a vector to BigInt with an optional <code>base</code> value.</p></div>
</li>
<li class="entry-summary">
<a href="#coerce(klass:Complex.class,imag:Number)-instance-method" class="signature"><strong>#coerce</strong>(klass : <span class="t">Complex</span>.<span class="k">class</span>, imag : Number)</a>
<div class="summary"><p>Attempt to coerce the elements in a vector to Complex with <code>imag</code> as the imaginary number.</p></div>
</li>
<li class="entry-summary">
<a href="#covector-instance-method" class="signature"><strong>#covector</strong></a>
<div class="summary"><p>Creates a single-row matrix from this vector.</p></div>
</li>
<li class="entry-summary">
<a href="#cross(v)-instance-method" class="signature"><strong>#cross</strong>(v)</a>
<div class="summary"><p>Returns the cross product of this vector with the others.</p></div>
</li>
<li class="entry-summary">
<a href="#cross_product(*vs)-instance-method" class="signature"><strong>#cross_product</strong>(*vs)</a>
<div class="summary"><p>Returns the cross product of this vector with the others.</p></div>
</li>
<li class="entry-summary">
<a href="#dot(v)-instance-method" class="signature"><strong>#dot</strong>(v)</a>
<div class="summary"><p>Returns the inner product of this vector with the other.</p></div>
</li>
<li class="entry-summary">
<a href="#each(*args,**options,&block)-instance-method" class="signature"><strong>#each</strong>(*args, **options, &block)</a>
</li>
<li class="entry-summary">
<a href="#each(v,&block)-instance-method" class="signature"><strong>#each</strong>(v, &block)</a>
<div class="summary"><p>Iterate over the elements of this vector and <code>v</code> in conjunction.</p></div>
</li>
<li class="entry-summary">
<a href="#each(*args,**options)-instance-method" class="signature"><strong>#each</strong>(*args, **options)</a>
</li>
<li class="entry-summary">
<a href="#inner_product(v)-instance-method" class="signature"><strong>#inner_product</strong>(v)</a>
<div class="summary"><p>Returns the inner product of this vector with the other.</p></div>
</li>
<li class="entry-summary">
<a href="#inspect-instance-method" class="signature"><strong>#inspect</strong></a>
</li>
<li class="entry-summary">
<a href="#magnitude-instance-method" class="signature"><strong>#magnitude</strong></a>
<div class="summary"><p>Returns the modulus (Pythagorean distance) of the vector.</p></div>
</li>
<li class="entry-summary">
<a href="#map(&block:T-%3EUNDERSCORE)-instance-method" class="signature"><strong>#map</strong>(&block : T -> UNDERSCORE)</a>
<div class="summary"><p>Maps over a vector, passing each element to the block</p></div>
</li>
<li class="entry-summary">
<a href="#map(v,&block:T,T-%3EUNDERSCORE)-instance-method" class="signature"><strong>#map</strong>(v, &block : T, T -> UNDERSCORE)</a>
<div class="summary"><p>Maps over the current vector and <code>v</code> in conjunction, passing each element in each to the block and returning a new vector</p></div>
</li>
<li class="entry-summary">
<a href="#norm-instance-method" class="signature"><strong>#norm</strong></a>
<div class="summary"><p>Returns the modulus (Pythagorean distance) of the vector.</p></div>
</li>
<li class="entry-summary">
<a href="#normalize-instance-method" class="signature"><strong>#normalize</strong></a>
<div class="summary"><p>Returns a new vector with the same direction but with norm 1</p></div>
</li>
<li class="entry-summary">
<a href="#r-instance-method" class="signature"><strong>#r</strong></a>
<div class="summary"><p>Returns a new vector with the same direction but with norm 1</p></div>
</li>
<li class="entry-summary">
<a href="#round(ndigits=0)-instance-method" class="signature"><strong>#round</strong>(ndigits = <span class="n">0</span>)</a>
<div class="summary"><p>Returns a vector with entries rounded to the given precision.</p></div>
</li>
<li class="entry-summary">
<a href="#to_a-instance-method" class="signature"><strong>#to_a</strong></a>
<div class="summary"><p>Returns the elements of the vector in an array.</p></div>
</li>
<li class="entry-summary">
<a href="#to_matrix-instance-method" class="signature"><strong>#to_matrix</strong></a>
<div class="summary"><p>Return a single-column matrix from this vector.</p></div>
</li>
<li class="entry-summary">
<a href="#to_s-instance-method" class="signature"><strong>#to_s</strong></a>
</li>
<li class="entry-summary">
<a href="#unsafe_fetch(i)-instance-method" class="signature"><strong>#unsafe_fetch</strong>(i)</a>
</li>
<li class="entry-summary">
<a href="#zero?-instance-method" class="signature"><strong>#zero?</strong></a>
<div class="summary"><p>Returns <code>true</code> if all elements are zero.</p></div>
</li>
</ul>
<div class="methods-inherited">
</div>
<h2>Class Method Detail</h2>
<div class="entry-detail" id="[](*array)-class-method">
<div class="signature">
def self.<strong>[]</strong>(*array)
<a class="method-permalink" href="#[](*array)-class-method">#</a>
</div>
<div class="doc"><p>Creates a new vector from a list of elements.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L23" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="basis(size,index)-class-method">
<div class="signature">
def self.<strong>basis</strong>(size, index)
<a class="method-permalink" href="#basis(size,index)-class-method">#</a>
</div>
<div class="doc"><p>Returns a standard basis <code>n</code>-vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L35" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="elements(array,copy=true)-class-method">
<div class="signature">
def self.<strong>elements</strong>(array, copy = <span class="n">true</span>)
<a class="method-permalink" href="#elements(array,copy=true)-class-method">#</a>
</div>
<div class="doc"><p>Creates a vector from an Array. The optional second argument specifies
whether the array itself or a copy is used internally.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L29" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="independent?(*vs)-class-method">
<div class="signature">
def self.<strong>independent?</strong>(*vs)
<a class="method-permalink" href="#independent?(*vs)-class-method">#</a>
</div>
<div class="doc"><p>Returns <code>true</code> if all of vectors are linearly independent.</p>
<pre><code><span class="t">Vector</span>.independent?(<span class="t">Vector</span>[<span class="n">1</span>,<span class="n">0</span>], <span class="t">Vector</span>[<span class="n">0</span>,<span class="n">1</span>])
<span class="c"># =&gt; true</span>
<span class="t">Vector</span>.independent?(<span class="t">Vector</span>[<span class="n">1</span>,<span class="n">2</span>], <span class="t">Vector</span>[<span class="n">2</span>,<span class="n">4</span>])
<span class="c"># =&gt; false</span></code></pre></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L52" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="zero(size)-class-method">
<div class="signature">
def self.<strong>zero</strong>(size)
<a class="method-permalink" href="#zero(size)-class-method">#</a>
</div>
<div class="doc"><p>Return a zero vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L62" target="_blank">View source</a>]
</div>
</div>
<h2>Instance Method Detail</h2>
<div class="entry-detail" id="*(x:Number)-instance-method">
<div class="signature">
def <strong>*</strong>(x : Number)
<a class="method-permalink" href="#*(x:Number)-instance-method">#</a>
</div>
<div class="doc"><p>Multiplies the vector by x, where x is a number.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L79" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="*(x:Vector)-instance-method">
<div class="signature">
def <strong>*</strong>(x : <a href="../../Apatite/LinearAlgebra/Vector.html">Vector</a>)
<a class="method-permalink" href="#*(x:Vector)-instance-method">#</a>
</div>
<div class="doc"><p>Multiplies the vector by x, where x is another vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L90" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="*(x:Matrix)-instance-method">
<div class="signature">
def <strong>*</strong>(x : <a href="../../Apatite/LinearAlgebra/Matrix.html">Matrix</a>)
<a class="method-permalink" href="#*(x:Matrix)-instance-method">#</a>
</div>
<div class="doc"><p>Multiplies the vector by x, where x is a matrix.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L85" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="+(x:Matrix)-instance-method">
<div class="signature">
def <strong>+</strong>(x : <a href="../../Apatite/LinearAlgebra/Matrix.html">Matrix</a>)
<a class="method-permalink" href="#+(x:Matrix)-instance-method">#</a>
</div>
<div class="doc"><p>Vector addition.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L102" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="+(x:Number)-instance-method">
<div class="signature">
def <strong>+</strong>(x : Number)
<a class="method-permalink" href="#+(x:Number)-instance-method">#</a>
</div>
<div class="doc"><p>Vector addition.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L96" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="+(x:Vector)-instance-method">
<div class="signature">
def <strong>+</strong>(x : <a href="../../Apatite/LinearAlgebra/Vector.html">Vector</a>)
<a class="method-permalink" href="#+(x:Vector)-instance-method">#</a>
</div>
<div class="doc"><p>Vector addition.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L107" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="-(x:Matrix)-instance-method">
<div class="signature">
def <strong>-</strong>(x : <a href="../../Apatite/LinearAlgebra/Matrix.html">Matrix</a>)
<a class="method-permalink" href="#-(x:Matrix)-instance-method">#</a>
</div>
<div class="doc"><p>Vector subtraction.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L119" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="-(x:Vector)-instance-method">
<div class="signature">
def <strong>-</strong>(x : <a href="../../Apatite/LinearAlgebra/Vector.html">Vector</a>)
<a class="method-permalink" href="#-(x:Vector)-instance-method">#</a>
</div>
<div class="doc"><p>Vector subtraction.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L124" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="-(x:Number)-instance-method">
<div class="signature">
def <strong>-</strong>(x : Number)
<a class="method-permalink" href="#-(x:Number)-instance-method">#</a>
</div>
<div class="doc"><p>Vector subtraction.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L113" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="/(x:Matrix)-instance-method">
<div class="signature">
def <strong>/</strong>(x : <a href="../../Apatite/LinearAlgebra/Matrix.html">Matrix</a>)
<a class="method-permalink" href="#/(x:Matrix)-instance-method">#</a>
</div>
<div class="doc"><p>Vector division.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L136" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="/(x:Number)-instance-method">
<div class="signature">
def <strong>/</strong>(x : Number)
<a class="method-permalink" href="#/(x:Number)-instance-method">#</a>
</div>
<div class="doc"><p>Vector division.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L130" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="/(x:Vector)-instance-method">
<div class="signature">
def <strong>/</strong>(x : <a href="../../Apatite/LinearAlgebra/Vector.html">Vector</a>)
<a class="method-permalink" href="#/(x:Vector)-instance-method">#</a>
</div>
<div class="doc"><p>Vector division.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L141" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="-instance-method">
<div class="signature">
def <strong><=></strong>
<a class="method-permalink" href="#-instance-method">#</a>
</div>
<div class="doc"><p>Take me to your leader</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L156" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="(other:Vector|Indexable)-instance-method">
<div class="signature">
def <strong><=></strong>(other : <a href="../../Apatite/LinearAlgebra/Vector.html">Vector</a> | Indexable)
<a class="method-permalink" href="#(other:Vector%7CIndexable)-instance-method">#</a>
</div>
<div class="doc"><p>Alien mothership</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L69" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="==(other)-instance-method">
<div class="signature">
def <strong>==</strong>(other)
<a class="method-permalink" href="#==(other)-instance-method">#</a>
</div>
<div class="doc"><p>Equality operator</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L147" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="angle_with(v)-instance-method">
<div class="signature">
def <strong>angle_with</strong>(v)
<a class="method-permalink" href="#angle_with(v)-instance-method">#</a>
</div>
<div class="doc"><p>Returns an angle with another vector. Result is within the [0…Math::PI].</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L165" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="clone-instance-method">
<div class="signature">
def <strong>clone</strong>
<a class="method-permalink" href="#clone-instance-method">#</a>
</div>
<div class="doc"><p>Returns a copy of the vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L174" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="coerce(klass:BigRational.class,denominator:Int)-instance-method">
<div class="signature">
def <strong>coerce</strong>(klass : <span class="t">BigRational</span>.<span class="k">class</span>, denominator : Int)
<a class="method-permalink" href="#coerce(klass:BigRational.class,denominator:Int)-instance-method">#</a>
</div>
<div class="doc"><p>Attempt to coerce the elements in a vector to BigRational
with the given <code>denominator</code>.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L290" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="coerce(klass:U.class):Apatite::LinearAlgebra::Vector(U)forallU-instance-method">
<div class="signature">
def <strong>coerce</strong>(klass : <span class="t">U</span>.<span class="k">class</span>) : <a href="../../Apatite/LinearAlgebra/Vector.html">Apatite::LinearAlgebra::Vector</a>(U) forall U
<a class="method-permalink" href="#coerce(klass:U.class):Apatite::LinearAlgebra::Vector(U)forallU-instance-method">#</a>
</div>
<div class="doc"><p>The coerce method allows you to attempt to coerce the elements
in the matrix to another type.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L297" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="coerce(klass:BigInt.class,base=10)-instance-method">
<div class="signature">
def <strong>coerce</strong>(klass : <span class="t">BigInt</span>.<span class="k">class</span>, base = <span class="n">10</span>)
<a class="method-permalink" href="#coerce(klass:BigInt.class,base=10)-instance-method">#</a>
</div>
<div class="doc"><p>Attempt to coerce the elements in a vector to BigInt with
an optional <code>base</code> value.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L283" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="coerce(klass:Complex.class,imag:Number)-instance-method">
<div class="signature">
def <strong>coerce</strong>(klass : <span class="t">Complex</span>.<span class="k">class</span>, imag : Number)
<a class="method-permalink" href="#coerce(klass:Complex.class,imag:Number)-instance-method">#</a>
</div>
<div class="doc"><p>Attempt to coerce the elements in a vector to Complex with
<code>imag</code> as the imaginary number.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L276" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="covector-instance-method">
<div class="signature">
def <strong>covector</strong>
<a class="method-permalink" href="#covector-instance-method">#</a>
</div>
<div class="doc"><p>Creates a single-row matrix from this vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L195" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="cross(v)-instance-method">
<div class="signature">
def <strong>cross</strong>(v)
<a class="method-permalink" href="#cross(v)-instance-method">#</a>
</div>
<div class="doc"><p>Returns the cross product of this vector with the others.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L223" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="cross_product(*vs)-instance-method">
<div class="signature">
def <strong>cross_product</strong>(*vs)
<a class="method-permalink" href="#cross_product(*vs)-instance-method">#</a>
</div>
<div class="doc"><p>Returns the cross product of this vector with the others.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L200" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="dot(v)-instance-method">
<div class="signature">
def <strong>dot</strong>(v)
<a class="method-permalink" href="#dot(v)-instance-method">#</a>
</div>
<div class="doc"><p>Returns the inner product of this vector with the other.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L234" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="each(*args,**options,&amp;block)-instance-method">
<div class="signature">
def <strong>each</strong>(*args, **options, &block)
<a class="method-permalink" href="#each(*args,**options,&block)-instance-method">#</a>
</div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L15" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="each(v,&amp;block)-instance-method">
<div class="signature">
def <strong>each</strong>(v, &block)
<a class="method-permalink" href="#each(v,&block)-instance-method">#</a>
</div>
<div class="doc"><p>Iterate over the elements of this vector and <code>v</code> in conjunction.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L239" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="each(*args,**options)-instance-method">
<div class="signature">
def <strong>each</strong>(*args, **options)
<a class="method-permalink" href="#each(*args,**options)-instance-method">#</a>
</div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L15" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="inner_product(v)-instance-method">
<div class="signature">
def <strong>inner_product</strong>(v)
<a class="method-permalink" href="#inner_product(v)-instance-method">#</a>
</div>
<div class="doc"><p>Returns the inner product of this vector with the other.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L228" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="inspect-instance-method">
<div class="signature">
def <strong>inspect</strong>
<a class="method-permalink" href="#inspect-instance-method">#</a>
</div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L321" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="magnitude-instance-method">
<div class="signature">
def <strong>magnitude</strong>
<a class="method-permalink" href="#magnitude-instance-method">#</a>
</div>
<div class="doc"><p>Returns the modulus (Pythagorean distance) of the vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L248" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="map(&amp;block:T-&gt;UNDERSCORE)-instance-method">
<div class="signature">
def <strong>map</strong>(&block : T -> UNDERSCORE)
<a class="method-permalink" href="#map(&block:T-%3EUNDERSCORE)-instance-method">#</a>
</div>
<div class="doc"><p>Maps over a vector, passing each element to the block</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L179" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="map(v,&amp;block:T,T-&gt;UNDERSCORE)-instance-method">
<div class="signature">
def <strong>map</strong>(v, &block : T, T -> UNDERSCORE)
<a class="method-permalink" href="#map(v,&block:T,T-%3EUNDERSCORE)-instance-method">#</a>
</div>
<div class="doc"><p>Maps over the current vector and <code>v</code> in conjunction, passing each
element in each to the block and returning a new vector</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L186" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="norm-instance-method">
<div class="signature">
def <strong>norm</strong>
<a class="method-permalink" href="#norm-instance-method">#</a>
</div>
<div class="doc"><p>Returns the modulus (Pythagorean distance) of the vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L253" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="normalize-instance-method">
<div class="signature">
def <strong>normalize</strong>
<a class="method-permalink" href="#normalize-instance-method">#</a>
</div>
<div class="doc"><p>Returns a new vector with the same direction but with norm 1</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L258" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="r-instance-method">
<div class="signature">
def <strong>r</strong>
<a class="method-permalink" href="#r-instance-method">#</a>
</div>
<div class="doc"><p>Returns a new vector with the same direction but with norm 1</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L265" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="round(ndigits=0)-instance-method">
<div class="signature">
def <strong>round</strong>(ndigits = <span class="n">0</span>)
<a class="method-permalink" href="#round(ndigits=0)-instance-method">#</a>
</div>
<div class="doc"><p>Returns a vector with entries rounded to the given precision.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L270" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="to_a-instance-method">
<div class="signature">
def <strong>to_a</strong>
<a class="method-permalink" href="#to_a-instance-method">#</a>
</div>
<div class="doc"><p>Returns the elements of the vector in an array.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L303" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="to_matrix-instance-method">
<div class="signature">
def <strong>to_matrix</strong>
<a class="method-permalink" href="#to_matrix-instance-method">#</a>
</div>
<div class="doc"><p>Return a single-column matrix from this vector.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L308" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="to_s-instance-method">
<div class="signature">
def <strong>to_s</strong>
<a class="method-permalink" href="#to_s-instance-method">#</a>
</div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L312" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="unsafe_fetch(i)-instance-method">
<div class="signature">
def <strong>unsafe_fetch</strong>(i)
<a class="method-permalink" href="#unsafe_fetch(i)-instance-method">#</a>
</div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L325" target="_blank">View source</a>]
</div>
</div>
<div class="entry-detail" id="zero?-instance-method">
<div class="signature">
def <strong>zero?</strong>
<a class="method-permalink" href="#zero?-instance-method">#</a>
</div>
<div class="doc"><p>Returns <code>true</code> if all elements are zero.</p></div>
<br/>
<div>
[<a href="https://github.com/watzon/apatite/blob/c7bc6f4f5ec3f4b2725b0b6bdf03d9524007e864/src/apatite/linear_algebra/vector.cr#L317" target="_blank">View source</a>]
</div>
</div>
</div>
</body>
</html>