Current File : //proc/thread-self/root/kunden/usr/share/gtk-doc/html/graphene/graphene-SIMD-matrix.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SIMD matrix: Graphene Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Graphene Reference Manual">
<link rel="up" href="ch01.html" title="Graphene">
<link rel="prev" href="graphene-SIMD-vector.html" title="SIMD vector">
<link rel="next" href="graphene-Vectors.html" title="Vectors">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#graphene-SIMD-matrix.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="graphene-SIMD-vector.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="graphene-Vectors.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="graphene-SIMD-matrix"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="graphene-SIMD-matrix.top_of_page"></a>SIMD matrix</span></h2>
<p>SIMD matrix — Low level floating point 4 by 4 matrix</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="graphene-SIMD-matrix.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="returnvalue">graphene_simd4x4f_t</span></a>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init" title="graphene_simd4x4f_init ()">graphene_simd4x4f_init</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init-identity" title="graphene_simd4x4f_init_identity ()">graphene_simd4x4f_init_identity</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init-from-float" title="graphene_simd4x4f_init_from_float ()">graphene_simd4x4f_init_from_float</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-to-float" title="graphene_simd4x4f_to_float ()">graphene_simd4x4f_to_float</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-transpose-in-place" title="graphene_simd4x4f_transpose_in_place ()">graphene_simd4x4f_transpose_in_place</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-sum" title="graphene_simd4x4f_sum ()">graphene_simd4x4f_sum</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-vec4-mul" title="graphene_simd4x4f_vec4_mul ()">graphene_simd4x4f_vec4_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-vec3-mul" title="graphene_simd4x4f_vec3_mul ()">graphene_simd4x4f_vec3_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-point3-mul" title="graphene_simd4x4f_point3_mul ()">graphene_simd4x4f_point3_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-transpose" title="graphene_simd4x4f_transpose ()">graphene_simd4x4f_transpose</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-inv-ortho-vec3-mul" title="graphene_simd4x4f_inv_ortho_vec3_mul ()">graphene_simd4x4f_inv_ortho_vec3_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-inv-ortho-point3-mul" title="graphene_simd4x4f_inv_ortho_point3_mul ()">graphene_simd4x4f_inv_ortho_point3_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-matrix-mul" title="graphene_simd4x4f_matrix_mul ()">graphene_simd4x4f_matrix_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init-perspective" title="graphene_simd4x4f_init_perspective ()">graphene_simd4x4f_init_perspective</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init-ortho" title="graphene_simd4x4f_init_ortho ()">graphene_simd4x4f_init_ortho</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init-look-at" title="graphene_simd4x4f_init_look_at ()">graphene_simd4x4f_init_look_at</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-init-frustum" title="graphene_simd4x4f_init_frustum ()">graphene_simd4x4f_init_frustum</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-perspective" title="graphene_simd4x4f_perspective ()">graphene_simd4x4f_perspective</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-translation" title="graphene_simd4x4f_translation ()">graphene_simd4x4f_translation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-scale" title="graphene_simd4x4f_scale ()">graphene_simd4x4f_scale</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-rotation" title="graphene_simd4x4f_rotation ()">graphene_simd4x4f_rotation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-add" title="graphene_simd4x4f_add ()">graphene_simd4x4f_add</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-sub" title="graphene_simd4x4f_sub ()">graphene_simd4x4f_sub</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-mul" title="graphene_simd4x4f_mul ()">graphene_simd4x4f_mul</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-div" title="graphene_simd4x4f_div ()">graphene_simd4x4f_div</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">bool</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-inverse" title="graphene_simd4x4f_inverse ()">graphene_simd4x4f_inverse</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-determinant" title="graphene_simd4x4f_determinant ()">graphene_simd4x4f_determinant</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">bool</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-is-identity" title="graphene_simd4x4f_is_identity ()">graphene_simd4x4f_is_identity</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">bool</span>
</td>
<td class="function_name">
<a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-is-2d" title="graphene_simd4x4f_is_2d ()">graphene_simd4x4f_is_2d</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="graphene-SIMD-matrix.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t">graphene_simd4x4f_t</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="graphene-SIMD-matrix.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;graphene.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="graphene-SIMD-matrix.description"></a><h2>Description</h2>
<p>The <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> type wraps a platform specific implementation of
a four by four matrix of floating point values, using four <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>
row vectors.</p>
<p>Like <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>, the <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> type should be treated
as an opaque type; you cannot access its components directly, and you can
only operate on all components at the same time.</p>
</div>
<div class="refsect1">
<a name="graphene-SIMD-matrix.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="graphene-simd4x4f-init"></a><h3>graphene_simd4x4f_init ()</h3>
<pre class="programlisting"><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="returnvalue">graphene_simd4x4f_t</span></a>
graphene_simd4x4f_init (<em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> x</code></em>,
                        <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> y</code></em>,
                        <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> z</code></em>,
                        <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> w</code></em>);</pre>
<p>Creates a new <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> using the given row vectors
to initialize it.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> for the first row</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> for the second row</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> for the third row</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>w</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> for the fourth row</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="graphene-simd4x4f-init.returns"></a><h4>Returns</h4>
<p> the newly created <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-init-identity"></a><h3>graphene_simd4x4f_init_identity ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_init_identity (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>);</pre>
<p>Initializes <em class="parameter"><code>m</code></em>
 to be the identity matrix.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init-identity.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-init-from-float"></a><h3>graphene_simd4x4f_init_from_float ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_init_from_float (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                                   <em class="parameter"><code>const <span class="type">float</span> *f</code></em>);</pre>
<p>Initializes a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> with the given array
of floating point values.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init-from-float.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>f</p></td>
<td class="parameter_description"><p>an array of 16 floating point values. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=16]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-to-float"></a><h3>graphene_simd4x4f_to_float ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_to_float (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                            <em class="parameter"><code><span class="type">float</span> *v</code></em>);</pre>
<p>Copies the content of <em class="parameter"><code>m</code></em>
 in a float array.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-to-float.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <span class="type">graphene_sidm4x4f_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>v</p></td>
<td class="parameter_description"><p>a floating
point values vector capable of holding at least 16 values. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=16]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-transpose-in-place"></a><h3>graphene_simd4x4f_transpose_in_place ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_transpose_in_place (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *s</code></em>);</pre>
<p>Transposes <em class="parameter"><code>s</code></em>
 in place.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-transpose-in-place.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>s</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-sum"></a><h3>graphene_simd4x4f_sum ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_sum (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                       <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *res</code></em>);</pre>
<p>Adds all the row vectors of <em class="parameter"><code>a</code></em>
.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-sum.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for the sum vector. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-vec4-mul"></a><h3>graphene_simd4x4f_vec4_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_vec4_mul (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                            <em class="parameter"><code>const <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *b</code></em>,
                            <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *res</code></em>);</pre>
<p>Left multiplies the given <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> with the given
<a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> row vector using a dot product:</p>
<div class="informalexample"><pre class="screen">
res = b × A

    = ⎡x⎤ ⎛ x.x  x.y  x.z  x.w ⎞
      ⎜y⎟ ⎜ y.x  y.y  y.z  y.w ⎟
      ⎜z⎟ ⎜ z.x  z.y  z.z  z.w ⎟
      ⎣w⎦ ⎝ w.x  w.y  w.z  w.w ⎠

    = [ x.x × x   x.y × x   x.z × x   x.w × x ]
           +         +         +         +
      [ y.x × y   y.y × y   y.z × y   y.w × y ]
           +         +         +         +
      [ z.x × z   z.y × z   z.z × z   z.w × z ]
           +         +         +         +
      [ w.x × w   w.y × w   w.z × w   w.w × w ]

    = ⎡ x.x × x + y.x × y + z.x × z + w.x × w ⎤
      ⎜ x.y × x + y.y × y + z.y × z + w.y × w ⎟
      ⎜ x.z × x + y.z × y + z.z × z + w.z × w ⎟
      ⎣ x.w × x + y.w × y + z.w × z + w.w × w ⎦
</pre></div>
<p></p>
<div class="refsect3">
<a name="graphene-simd4x4f-vec4-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-vec3-mul"></a><h3>graphene_simd4x4f_vec3_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_vec3_mul (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                            <em class="parameter"><code>const <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *v</code></em>,
                            <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *res</code></em>);</pre>
<p>Left multiplies the given <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> with the given
<a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>, using only the first three row vectors
of the matrix, and the first three components of the vector;
the W components of the matrix and vector are ignored:</p>
<div class="informalexample"><pre class="screen">
res = b × A

    = ⎡x⎤ ⎛ x.x  x.y  x.z ⎞
      ⎜y⎟ ⎜ y.x  y.y  y.z ⎟
      ⎣z⎦ ⎝ z.x  z.y  z.z ⎠

    = [ x.x × x   x.y × x   x.z × x ]
           +         +         +
      [ y.x × y   y.y × y   y.z × y ]
           +         +         +
      [ z.x × z   z.y × z   z.z × z ]

    = ⎡ x.x × x + y.x × y + z.x × z ⎤
      ⎜ x.y × x + y.y × y + z.y × z ⎟
      ⎜ x.z × x + y.z × y + z.z × z ⎟
      ⎣               0             ⎦
</pre></div>
<p></p>
<p>See also: <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-vec4-mul" title="graphene_simd4x4f_vec4_mul ()"><code class="function">graphene_simd4x4f_vec4_mul()</code></a>, <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-point3-mul" title="graphene_simd4x4f_point3_mul ()"><code class="function">graphene_simd4x4f_point3_mul()</code></a></p>
<div class="refsect3">
<a name="graphene-simd4x4f-vec3-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>v</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-point3-mul"></a><h3>graphene_simd4x4f_point3_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_point3_mul (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                              <em class="parameter"><code>const <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *p</code></em>,
                              <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *res</code></em>);</pre>
<p>Multiplies the given <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> with the given
<a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>.</p>
<p>Unlike <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-vec3-mul" title="graphene_simd4x4f_vec3_mul ()"><code class="function">graphene_simd4x4f_vec3_mul()</code></a>, this function will
use the W components of the matrix:</p>
<div class="informalexample"><pre class="screen">
res = b × A

    = ⎡x⎤ ⎛ x.x  x.y  x.z  x.w ⎞
      ⎜y⎟ ⎜ y.x  y.y  y.z  y.w ⎟
      ⎜z⎟ ⎜ z.x  z.y  z.z  z.w ⎟
      ⎣w⎦ ⎝ w.x  w.y  w.z  w.w ⎠

    = [ x.x × x   x.y × x   x.z × x   x.w × x ]
           +         +         +         +
      [ y.x × y   y.y × y   y.z × y   y.w × y ]
           +         +         +         +
      [ z.x × z   z.y × z   z.z × z   z.w × z ]
           +         +         +         +
      [   w.x       w.y       w.z       w.w   ]

    = ⎡ x.x × x + y.x × y + z.x × z + w.x ⎤
      ⎜ x.y × x + y.y × y + z.y × z + w.y ⎟
      ⎜ x.z × x + y.z × y + z.z × z + w.z ⎟
      ⎣ x.w × x + y.w × y + z.w × z + w.w ⎦
</pre></div>
<p></p>
<div class="refsect3">
<a name="graphene-simd4x4f-point3-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>p</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-transpose"></a><h3>graphene_simd4x4f_transpose ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_transpose (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *s</code></em>,
                             <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Transposes the given <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a>.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-transpose.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>s</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for the transposed matrix. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-inv-ortho-vec3-mul"></a><h3>graphene_simd4x4f_inv_ortho_vec3_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_inv_ortho_vec3_mul (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                                      <em class="parameter"><code>const <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *b</code></em>,
                                      <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *res</code></em>);</pre>
<p>Performs the inverse orthographic transformation of the first
three components in the given vector, using the first three
row vectors of the given SIMD matrix.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-inv-ortho-vec3-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for the transformed vector. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-inv-ortho-point3-mul"></a><h3>graphene_simd4x4f_inv_ortho_point3_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_inv_ortho_point3_mul
                               (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                                <em class="parameter"><code>const <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *b</code></em>,
                                <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *res</code></em>);</pre>
<p>Performs the inverse orthographic transformation of the first
three components in the given vector, using the given SIMD
matrix.</p>
<p>Unlike <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-inv-ortho-vec3-mul" title="graphene_simd4x4f_inv_ortho_vec3_mul ()"><code class="function">graphene_simd4x4f_inv_ortho_vec3_mul()</code></a>, this function
will also use the fourth row vector of the SIMD matrix.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-inv-ortho-point3-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for the result vector. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-matrix-mul"></a><h3>graphene_simd4x4f_matrix_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_matrix_mul (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                              <em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *b</code></em>,
                              <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Multiplies the two matrices, following the convention:</p>
<div class="informalexample"><pre class="screen">
  res = A × B

      = ⎡ A.x × B ⎤
        ⎜ A.y × B ⎟
        ⎜ A.z × B ⎟
        ⎣ A.w × B ⎦

      = ⎡ res.x ⎤
        ⎜ res.y ⎟
        ⎜ res.z ⎟
        ⎣ res.w ⎦
</pre></div>
<p></p>
<p>See also: <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-vec4-mul" title="graphene_simd4x4f_vec4_mul ()"><code class="function">graphene_simd4x4f_vec4_mul()</code></a></p>
<div class="refsect3">
<a name="graphene-simd4x4f-matrix-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for the result. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-init-perspective"></a><h3>graphene_simd4x4f_init_perspective ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_init_perspective (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                                    <em class="parameter"><code><span class="type">float</span> fovy_rad</code></em>,
                                    <em class="parameter"><code><span class="type">float</span> aspect</code></em>,
                                    <em class="parameter"><code><span class="type">float</span> z_near</code></em>,
                                    <em class="parameter"><code><span class="type">float</span> z_far</code></em>);</pre>
<p>Initializes a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> with a perspective projection.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init-perspective.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>fovy_rad</p></td>
<td class="parameter_description"><p>the angle of the field of vision, in radians</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>aspect</p></td>
<td class="parameter_description"><p>the aspect value</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z_near</p></td>
<td class="parameter_description"><p>the depth of the near clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z_far</p></td>
<td class="parameter_description"><p>the depth of the far clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-init-ortho"></a><h3>graphene_simd4x4f_init_ortho ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_init_ortho (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                              <em class="parameter"><code><span class="type">float</span> left</code></em>,
                              <em class="parameter"><code><span class="type">float</span> right</code></em>,
                              <em class="parameter"><code><span class="type">float</span> bottom</code></em>,
                              <em class="parameter"><code><span class="type">float</span> top</code></em>,
                              <em class="parameter"><code><span class="type">float</span> z_near</code></em>,
                              <em class="parameter"><code><span class="type">float</span> z_far</code></em>);</pre>
<p>Initializes the given SIMD matrix with an orthographic projection.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init-ortho.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>left</p></td>
<td class="parameter_description"><p>edge of the left clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>right</p></td>
<td class="parameter_description"><p>edge of the right clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>bottom</p></td>
<td class="parameter_description"><p>edge of the bottom clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>top</p></td>
<td class="parameter_description"><p>edge of the top clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z_near</p></td>
<td class="parameter_description"><p>depth of the near clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z_far</p></td>
<td class="parameter_description"><p>depth of the far clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-init-look-at"></a><h3>graphene_simd4x4f_init_look_at ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_init_look_at (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                                <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> eye</code></em>,
                                <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> center</code></em>,
                                <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> up</code></em>);</pre>
<p>Initializes a SIMD matrix with the projection necessary for
the camera at the <em class="parameter"><code>eye</code></em>
 coordinates to look at the object at
the <em class="parameter"><code>center</code></em>
 coordinates. The top of the camera is aligned to
the <em class="parameter"><code>up</code></em>
 vector.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init-look-at.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>eye</p></td>
<td class="parameter_description"><p>vector for the camera coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>center</p></td>
<td class="parameter_description"><p>vector for the object coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>up</p></td>
<td class="parameter_description"><p>vector for the upwards direction</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-init-frustum"></a><h3>graphene_simd4x4f_init_frustum ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_init_frustum (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                                <em class="parameter"><code><span class="type">float</span> left</code></em>,
                                <em class="parameter"><code><span class="type">float</span> right</code></em>,
                                <em class="parameter"><code><span class="type">float</span> bottom</code></em>,
                                <em class="parameter"><code><span class="type">float</span> top</code></em>,
                                <em class="parameter"><code><span class="type">float</span> z_near</code></em>,
                                <em class="parameter"><code><span class="type">float</span> z_far</code></em>);</pre>
<p>Initializes a SIMD matrix with a frustum described by the distances
of six clipping planes.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-init-frustum.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>left</p></td>
<td class="parameter_description"><p>distance of the left clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>right</p></td>
<td class="parameter_description"><p>distance of the right clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>bottom</p></td>
<td class="parameter_description"><p>distance of the bottom clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>top</p></td>
<td class="parameter_description"><p>distance of the top clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z_near</p></td>
<td class="parameter_description"><p>distance of the near clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z_far</p></td>
<td class="parameter_description"><p>distance of the far clipping plane</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-perspective"></a><h3>graphene_simd4x4f_perspective ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_perspective (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                               <em class="parameter"><code><span class="type">float</span> depth</code></em>);</pre>
<p>Adds a perspective transformation for the given <em class="parameter"><code>depth</code></em>
.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-perspective.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>depth</p></td>
<td class="parameter_description"><p>depth of the perspective</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-translation"></a><h3>graphene_simd4x4f_translation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_translation (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                               <em class="parameter"><code><span class="type">float</span> x</code></em>,
                               <em class="parameter"><code><span class="type">float</span> y</code></em>,
                               <em class="parameter"><code><span class="type">float</span> z</code></em>);</pre>
<p>Initializes <em class="parameter"><code>m</code></em>
 to contain a translation to the given coordinates.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-translation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>coordinate of the X translation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>coordinate of the Y translation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z</p></td>
<td class="parameter_description"><p>coordinate of the Z translation</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-scale"></a><h3>graphene_simd4x4f_scale ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_scale (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                         <em class="parameter"><code><span class="type">float</span> x</code></em>,
                         <em class="parameter"><code><span class="type">float</span> y</code></em>,
                         <em class="parameter"><code><span class="type">float</span> z</code></em>);</pre>
<p>Initializes <em class="parameter"><code>m</code></em>
 to contain a scaling transformation with the
given factors.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-scale.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>scaling factor on the X axis</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>scaling factor on the Y axis</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>z</p></td>
<td class="parameter_description"><p>scaling factor on the Z axis</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-rotation"></a><h3>graphene_simd4x4f_rotation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_rotation (<em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                            <em class="parameter"><code><span class="type">float</span> rad</code></em>,
                            <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> axis</code></em>);</pre>
<p>Initializes <em class="parameter"><code>m</code></em>
 to contain a rotation of the given angle
along the given axis.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-rotation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>rad</p></td>
<td class="parameter_description"><p>the rotation, in radians</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>axis</p></td>
<td class="parameter_description"><p>the vector of the axis of rotation</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-add"></a><h3>graphene_simd4x4f_add ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_add (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                       <em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *b</code></em>,
                       <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Adds each row vector of <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
 and places the results in <em class="parameter"><code>res</code></em>
.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-add.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-sub"></a><h3>graphene_simd4x4f_sub ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_sub (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                       <em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *b</code></em>,
                       <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Subtracts each row vector of <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
 and places the results in <em class="parameter"><code>res</code></em>
.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-sub.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-mul"></a><h3>graphene_simd4x4f_mul ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_mul (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                       <em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *b</code></em>,
                       <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Multiplies each row vector of <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
 and places the results in <em class="parameter"><code>res</code></em>
.</p>
<p>You most likely want <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-matrix-mul" title="graphene_simd4x4f_matrix_mul ()"><code class="function">graphene_simd4x4f_matrix_mul()</code></a> instead.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-mul.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-div"></a><h3>graphene_simd4x4f_div ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_div (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *a</code></em>,
                       <em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *b</code></em>,
                       <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Divides each row vector of <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
 and places the results in <em class="parameter"><code>res</code></em>
.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-div.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-inverse"></a><h3>graphene_simd4x4f_inverse ()</h3>
<pre class="programlisting"><span class="returnvalue">bool</span>
graphene_simd4x4f_inverse (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                           <em class="parameter"><code><a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *res</code></em>);</pre>
<p>Inverts the given <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a>.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-inverse.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>return location for the inverse matrix. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="graphene-simd4x4f-inverse.returns"></a><h4>Returns</h4>
<p> <code class="literal">true</code> if the matrix was invertible</p>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-determinant"></a><h3>graphene_simd4x4f_determinant ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
graphene_simd4x4f_determinant (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>,
                               <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *det_r</code></em>,
                               <em class="parameter"><code><a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> *invdet_r</code></em>);</pre>
<p>Computes the determinant (and its inverse) of the given matrix</p>
<div class="refsect3">
<a name="graphene-simd4x4f-determinant.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>det_r</p></td>
<td class="parameter_description"><p>return location for the matrix determinant. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>invdet_r</p></td>
<td class="parameter_description"><p>return location for the inverse of the matrix
determinant. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-is-identity"></a><h3>graphene_simd4x4f_is_identity ()</h3>
<pre class="programlisting"><span class="returnvalue">bool</span>
graphene_simd4x4f_is_identity (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>);</pre>
<p>Checks whether the given matrix is the identity matrix.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-is-identity.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="graphene-simd4x4f-is-identity.returns"></a><h4>Returns</h4>
<p> <code class="literal">true</code> if the matrix is the identity matrix</p>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="graphene-simd4x4f-is-2d"></a><h3>graphene_simd4x4f_is_2d ()</h3>
<pre class="programlisting"><span class="returnvalue">bool</span>
graphene_simd4x4f_is_2d (<em class="parameter"><code>const <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> *m</code></em>);</pre>
<p>Checks whether the given matrix is compatible with an affine
transformation matrix.</p>
<div class="refsect3">
<a name="graphene-simd4x4f-is-2d.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>m</p></td>
<td class="parameter_description"><p>a <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="graphene-simd4x4f-is-2d.returns"></a><h4>Returns</h4>
<p> <code class="literal">true</code> if the matrix is compatible with an affine
transformation matrix</p>
</div>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="graphene-SIMD-matrix.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="graphene-simd4x4f-t"></a><h3>graphene_simd4x4f_t</h3>
<pre class="programlisting">typedef struct _graphene_simd4x4f_t graphene_simd4x4f_t;</pre>
<p>A SIMD-based matrix type that uses four <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> vectors.</p>
<p>The matrix is treated as row-major, i.e. the x, y, z, and w vectors
are rows, and elements of each vector are a column:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="n">graphene_simd4x4f_t</span> <span class="o">=</span> <span class="p">{</span>
  <span class="n">x</span><span class="p">.</span><span class="n">x</span><span class="p">,</span> <span class="n">x</span><span class="p">.</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">.</span><span class="n">z</span><span class="p">,</span> <span class="n">x</span><span class="p">.</span><span class="n">w</span><span class="p">,</span>
  <span class="n">y</span><span class="p">.</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">.</span><span class="n">y</span><span class="p">,</span> <span class="n">y</span><span class="p">.</span><span class="n">z</span><span class="p">,</span> <span class="n">y</span><span class="p">.</span><span class="n">w</span><span class="p">,</span>
  <span class="n">z</span><span class="p">.</span><span class="n">x</span><span class="p">,</span> <span class="n">z</span><span class="p">.</span><span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">.</span><span class="n">z</span><span class="p">,</span> <span class="n">z</span><span class="p">.</span><span class="n">w</span><span class="p">,</span>
  <span class="n">w</span><span class="p">.</span><span class="n">x</span><span class="p">,</span> <span class="n">w</span><span class="p">.</span><span class="n">y</span><span class="p">,</span> <span class="n">w</span><span class="p">.</span><span class="n">z</span><span class="p">,</span> <span class="n">w</span><span class="p">.</span><span class="n">w</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>The contents of the <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> type are private and
cannot be accessed directly; use the provided API instead.</p>
<p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>