Sophie

Sophie

distrib > Mageia > 6 > i586 > media > core-release > by-pkgid > 3d21bba46faba8ab8bc0569a35594b3e > files > 23

ocaml-gg-devel-0.8.0-6.mga6.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Gg.Quat.html">
<link rel="next" href="Gg.M3.html">
<link rel="Up" href="Gg.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Gg" rel="Chapter" href="Gg.html"><link title="Constructors, accessors and constants" rel="Section" href="#cons">
<link title="Functions" rel="Section" href="#functions">
<link title="2D space transformations" rel="Section" href="#transformations2d">
<link title="Traversal" rel="Section" href="#traversal">
<link title="Predicates and comparisons" rel="Section" href="#1_Predicatesandcomparisons">
<link title="Printers" rel="Section" href="#printers">
<link title="Element accessors" rel="Section" href="#accessors">
<title>Gg.M2</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Gg.Quat.html" title="Gg.Quat">Previous</a>
&nbsp;<a class="up" href="Gg.html" title="Gg">Up</a>
&nbsp;<a class="post" href="Gg.M3.html" title="Gg.M3">Next</a>
</div>
<h1>Module <a href="type_Gg.M2.html">Gg.M2</a></h1>
<pre><span class="keyword">module</span> M2: <code class="code"><span class="keyword">sig</span></code> <a href="Gg.M2.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
<pre><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> = <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a></code> </pre>
<div class="info">
The type for 2D square matrices.<br>
</div>

<pre><span id="VALdim"><span class="keyword">val</span> dim</span> : <code class="type">int</code></pre><div class="info">
<code class="code">dim</code> is the dimension of rows and columns.<br>
</div>
<pre><span id="TYPEv"><span class="keyword">type</span> <code class="type"></code>v</span> = <code class="type"><a href="Gg.html#TYPEv2">Gg.v2</a></code> </pre>
<div class="info">
The type for rows and columns as vectors.<br>
</div>

<br>
<h1 id="cons">Constructors, accessors and constants</h1><br>
<pre><span id="VALv"><span class="keyword">val</span> v</span> : <code class="type">float -> float -> float -> float -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">v e00 e01 e10 e11</code> is a matrix whose components are 
      specified in     
      <a href="http://en.wikipedia.org/wiki/Row-major_order">row-major order</a><br>
</div>
<pre><span id="VALof_rows"><span class="keyword">val</span> of_rows</span> : <code class="type"><a href="Gg.html#TYPEv2">Gg.v2</a> -> <a href="Gg.html#TYPEv2">Gg.v2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">of_rows r0 r1</code> is the matrix whose rows are <code class="code">r0</code> and <code class="code">r1</code>.<br>
</div>
<pre><span id="VALof_cols"><span class="keyword">val</span> of_cols</span> : <code class="type"><a href="Gg.html#TYPEv2">Gg.v2</a> -> <a href="Gg.html#TYPEv2">Gg.v2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">of_cols c0 c1</code> is the matrix whose columns are <code class="code">c0</code> and <code class="code">c1</code>.<br>
</div>
<pre><span id="VALel"><span class="keyword">val</span> el</span> : <code class="type">int -> int -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre><div class="info">
<code class="code">el i j a</code> is the element <code class="code">a</code><sub class="subscript"><code class="code">ij</code></sub>. See also the direct
      <a href="Gg.M2.html#accessors">element accessors</a>.<br>
<b>Raises</b> <code>Invalid_argument</code> if <code class="code">i</code> or <code class="code">j</code> is not in [<code class="code">0;</code><a href="Gg.M2.html#VALdim"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.dim</code></a>[.<br>
</div>
<pre><span id="VALrow"><span class="keyword">val</span> row</span> : <code class="type">int -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEv2">Gg.v2</a></code></pre><div class="info">
<code class="code">row i a</code> is the <code class="code">i</code>th row of <code class="code">a</code>.<br>
<b>Raises</b> <code>Invalid_argument</code> if <code class="code">i</code> is not in [<code class="code">0;</code><a href="Gg.M2.html#VALdim"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.dim</code></a>[.<br>
</div>
<pre><span id="VALcol"><span class="keyword">val</span> col</span> : <code class="type">int -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEv2">Gg.v2</a></code></pre><div class="info">
<code class="code">col j a</code> is the <code class="code">j</code>th column of <code class="code">a</code>.<br>
<b>Raises</b> <code>Invalid_argument</code> if <code class="code">j</code> is not in [<code class="code">0;</code><a href="Gg.M2.html#VALdim"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.dim</code></a>[.<br>
</div>
<pre><span id="VALzero"><span class="keyword">val</span> zero</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">zero</code> is the neutral element for <a href="Gg.M2.html#VALadd"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.add</code></a>.<br>
</div>
<pre><span id="VALid"><span class="keyword">val</span> id</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">id</code> is the identity matrix, the neutral element for <a href="Gg.M2.html#VALmul"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.mul</code></a>.<br>
</div>
<pre><span id="VALof_m3"><span class="keyword">val</span> of_m3</span> : <code class="type"><a href="Gg.html#TYPEm3">Gg.m3</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">of_m3 m</code> extracts the 2D linear part (top-left 2x2 matrix) of <code class="code">m</code>.<br>
</div>
<pre><span id="VALof_m4"><span class="keyword">val</span> of_m4</span> : <code class="type"><a href="Gg.html#TYPEm4">Gg.m4</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">of_m4 m</code> extracts the 2D linear part (top-left 2x2 matrix) of <code class="code">m</code>.<br>
</div>
<br>
<h1 id="functions">Functions</h1><br>
<pre><span id="VALneg"><span class="keyword">val</span> neg</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">neg a</code> is the negated matrix <code class="code">-a</code>.<br>
</div>
<pre><span id="VALadd"><span class="keyword">val</span> add</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">add a b</code> is the matrix addition <code class="code">a + b</code>.<br>
</div>
<pre><span id="VALsub"><span class="keyword">val</span> sub</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">sub a b</code> is the matrix subtraction <code class="code">a - b</code>.<br>
</div>
<pre><span id="VALmul"><span class="keyword">val</span> mul</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">mul a b</code> is the 
      <a href="http://mathworld.wolfram.com/MatrixMultiplication.html">matrix 
      multiplication</a> <code class="code">a * b</code>.<br>
</div>
<pre><span id="VALemul"><span class="keyword">val</span> emul</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">emul a b</code> is the element wise multiplication of <code class="code">a</code> and <code class="code">b</code>.<br>
</div>
<pre><span id="VALediv"><span class="keyword">val</span> ediv</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">ediv a b</code> is the element wise division of <code class="code">a</code> and <code class="code">b</code>.<br>
</div>
<pre><span id="VALsmul"><span class="keyword">val</span> smul</span> : <code class="type">float -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">smul s a</code> is <code class="code">a</code>'s elements multiplied by the scalar <code class="code">s</code>.<br>
</div>
<pre><span id="VALtranspose"><span class="keyword">val</span> transpose</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">transpose a</code> is the 
      <a href="http://mathworld.wolfram.com/Transpose.html">transpose</a> <code class="code">a</code><sup class="superscript">T</sup>.<br>
</div>
<pre><span id="VALtrace"><span class="keyword">val</span> trace</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre><div class="info">
<code class="code">trace a</code> is the 
      <a href="http://mathworld.wolfram.com/MatrixTrace.html">matrix trace</a> 
      <code class="code">trace(a)</code>.<br>
</div>
<pre><span id="VALdet"><span class="keyword">val</span> det</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre><div class="info">
<code class="code">det a</code> is the 
      <a href="http://mathworld.wolfram.com/Determinant.html">determinant</a> <code class="code"><span class="keywordsign">|</span>a<span class="keywordsign">|</span></code>.<br>
</div>
<pre><span id="VALinv"><span class="keyword">val</span> inv</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">inv a</code> is the
      <a href="http://mathworld.wolfram.com/MatrixInverse.html">inverse matrix</a>
      <code class="code">a</code><sup class="superscript">-1</sup>.<br>
</div>
<br>
<h1 id="transformations2d">2D space transformations</h1><br>
<pre><span id="VALrot"><span class="keyword">val</span> rot</span> : <code class="type">float -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">rot theta</code> rotates 2D space around the origin by <code class="code">theta</code>.<br>
</div>
<pre><span id="VALscale"><span class="keyword">val</span> scale</span> : <code class="type"><a href="Gg.html#TYPEv2">Gg.v2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">scale s</code> scales 2D space in the <code class="code">x</code> and <code class="code">y</code> dimensions
      according to <code class="code">s</code>.<br>
</div>
<br>
<h1 id="traversal">Traversal</h1><br>
<pre><span id="VALmap"><span class="keyword">val</span> map</span> : <code class="type">(float -> float) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">map f a</code> is the element wise application of <code class="code">f</code> to <code class="code">a</code>.<br>
</div>
<pre><span id="VALmapi"><span class="keyword">val</span> mapi</span> : <code class="type">(int -> int -> float -> float) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a></code></pre><div class="info">
<code class="code">mapi f a</code> is like <a href="Gg.M2.html#VALmap"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.map</code></a> but the element indices are also given.<br>
</div>
<pre><span id="VALfold"><span class="keyword">val</span> fold</span> : <code class="type">('a -> float -> 'a) -> 'a -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> 'a</code></pre><div class="info">
<code class="code">fold f acc a</code> is <code class="code">f (</code>...<code class="code">(f (f acc a</code><sub class="subscript">00</sub><code class="code">) a</code><sub class="subscript">10</sub><code class="code">)</code>...<code class="code">)</code>.<br>
</div>
<pre><span id="VALfoldi"><span class="keyword">val</span> foldi</span> : <code class="type">('a -> int -> int -> float -> 'a) -> 'a -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> 'a</code></pre><div class="info">
<code class="code">foldi f acc a</code> is 
      <code class="code">f (</code>...<code class="code">(f (f acc 0 0 a</code><sub class="subscript">00</sub><code class="code">) 1 0 a</code><sub class="subscript">10</sub><code class="code">)</code>...<code class="code">)</code>.<br>
</div>
<pre><span id="VALiter"><span class="keyword">val</span> iter</span> : <code class="type">(float -> unit) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> unit</code></pre><div class="info">
<code class="code">iter f a</code> is <code class="code">f a</code><sub class="subscript">00</sub><code class="code">; f a</code><sub class="subscript">10</sub><code class="code">;</code> ...<br>
</div>
<pre><span id="VALiteri"><span class="keyword">val</span> iteri</span> : <code class="type">(int -> int -> float -> unit) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> unit</code></pre><div class="info">
<code class="code">iteri f a</code> is <code class="code">f 0 0 a</code><sub class="subscript">00</sub><code class="code">; f 1 0 a</code><sub class="subscript">10</sub><code class="code">;</code> ...<br>
</div>
<br>
<h1 id="1_Predicatesandcomparisons">Predicates and comparisons</h1><br>
<pre><span id="VALfor_all"><span class="keyword">val</span> for_all</span> : <code class="type">(float -> bool) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> bool</code></pre><div class="info">
<code class="code">for_all p a</code> is <code class="code">p a</code><sub class="subscript">00</sub><code class="code"> <span class="keywordsign">&amp;&amp;</span> p a</code><sub class="subscript">10</sub><code class="code"> <span class="keywordsign">&amp;&amp;</span></code> ...<br>
</div>
<pre><span id="VALexists"><span class="keyword">val</span> exists</span> : <code class="type">(float -> bool) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> bool</code></pre><div class="info">
<code class="code">exists p a</code> is <code class="code">p a</code><sub class="subscript">00</sub><code class="code"> <span class="keywordsign">||</span> p a</code><sub class="subscript">10</sub><code class="code"> <span class="keywordsign">||</span></code> ...<br>
</div>
<pre><span id="VALequal"><span class="keyword">val</span> equal</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> bool</code></pre><div class="info">
<code class="code">equal a b</code> is <code class="code">a = b</code>.<br>
</div>
<pre><span id="VALequal_f"><span class="keyword">val</span> equal_f</span> : <code class="type">(float -> float -> bool) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> bool</code></pre><div class="info">
<code class="code">equal_f eq a b</code> tests <code class="code">a</code> and <code class="code">b</code> like <a href="Gg.M2.html#VALequal"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.equal</code></a> but
      uses <code class="code">eq</code> to test floating point values.<br>
</div>
<pre><span id="VALcompare"><span class="keyword">val</span> compare</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> int</code></pre><div class="info">
<code class="code">compare a b</code> is <code class="code"><span class="constructor">Pervasives</span>.compare a b</code>. That is
      lexicographic comparison in column-major order.<br>
</div>
<pre><span id="VALcompare_f"><span class="keyword">val</span> compare_f</span> : <code class="type">(float -> float -> int) -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> int</code></pre><div class="info">
<code class="code">compare_f cmp a b</code> compares <code class="code">a</code> and <code class="code">b</code> like <a href="Gg.M2.html#VALcompare"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.compare</code></a>
      but uses <code class="code">cmp</code> to compare floating point values.<br>
</div>
<br>
<h1 id="printers">Printers</h1><br>
<pre><span id="VALto_string"><span class="keyword">val</span> to_string</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> string</code></pre><div class="info">
<code class="code">to_string a</code> is a textual representation of <code class="code">a</code>.<br>
</div>
<pre><span id="VALpp"><span class="keyword">val</span> pp</span> : <code class="type">Format.formatter -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> unit</code></pre><div class="info">
<code class="code">pp ppf a</code> prints a textual representation of <code class="code">a</code> on <code class="code">ppf</code>.<br>
</div>
<pre><span id="VALpp_f"><span class="keyword">val</span> pp_f</span> : <code class="type">(Format.formatter -> float -> unit) -> Format.formatter -> <a href="Gg.html#TYPEm2">Gg.m2</a> -> unit</code></pre><div class="info">
<code class="code">pp_f pp_e ppf a</code> prints <code class="code">a</code> like <a href="Gg.M2.html#VALpp"><code class="code"><span class="constructor">Gg</span>.<span class="constructor">M2</span>.pp</code></a> but uses 
      <code class="code">pp_e</code> to print floating point values.<br>
</div>
<br>
<h1 id="accessors">Element accessors</h1><br>
<pre><span id="VALe00"><span class="keyword">val</span> e00</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre><pre><span id="VALe01"><span class="keyword">val</span> e01</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre><pre><span id="VALe10"><span class="keyword">val</span> e10</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre><pre><span id="VALe11"><span class="keyword">val</span> e11</span> : <code class="type"><a href="Gg.html#TYPEm2">Gg.m2</a> -> float</code></pre></body></html>