]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/doc/matrix_operations_reference.html
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / qvm / doc / matrix_operations_reference.html
1 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
2 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
3 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
4 <head>
5 <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
6 <title>matrix operations</title>
7 <link href='reno.css' type='text/css' rel='stylesheet'/>
8 </head>
9 <body>
10 <div class="body-0">
11 <div class="body-1">
12 <div class="body-2">
13 <div>
14 <h1>QVM: Quaternions, Vectors, Matrices</h1>
15 </div>
16 <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. -->
17 <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->
18 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
19 <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Matrix Operations</h3>
20 </div>
21 <div class="RenoIncludeDIV"><p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink"><a href="boost_qvm_mat_operations_hpp.html">boost/qvm/mat_operations.hpp</a></span>&gt;</p>
22 <pre>namespace boost
23 {
24 namespace <span class="RenoLink"><a href="qvm.html">qvm</a></span>
25 {
26 <span class="RenoIncludeSPAN"> //*** Matrix operations ***
27
28 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
29 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
30 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
31 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
32 template &lt;class A,class B&gt;
33 A &amp; <span class="RenoLink"><a href="assign_mat_mat_.html">assign</a></span>( A &amp; a, B const &amp; b );</span>
34
35 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
36 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;R&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp;
37 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;R&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
38 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;R&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
39 template &lt;class R,class A&gt;
40 R <span class="RenoLink"><a href="convert_to_mat_.html">convert_to</a></span>( A const &amp; a );</span>
41
42 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
43 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
44 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
45 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
46 template &lt;class A,class B&gt;
47 A &amp; <span class="RenoLink"><a href="operator_sub_eq_mat_mat_.html">operator-=</a></span>( A &amp; a, B const &amp; b );</span>
48
49 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
50 template &lt;class A&gt;
51 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
52 <span class="RenoLink"><a href="operator_minus_mat_.html">operator-</a></span>( A const &amp; a );</span>
53
54 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
55 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
56 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
57 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
58 template &lt;class A,class B&gt;
59 typename <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span>&lt;A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>&gt;::type
60 <span class="RenoLink"><a href="operator_minus_mat_mat_.html">operator-</a></span>( A const &amp; a, B const &amp; b );</span>
61
62 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
63 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
64 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
65 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
66 template &lt;class A,class B&gt;
67 A &amp; <span class="RenoLink"><a href="operator_add_mat_mat_.html">operator+=</a></span>( A &amp; a, B const &amp; b );</span>
68
69 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
70 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
71 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
72 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
73 template &lt;class A,class B&gt;
74 typename <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span>&lt;A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>&gt;::type
75 <span class="RenoLink"><a href="operator_plus_mat_mat_.html">operator+</a></span>( A const &amp; a, B const &amp; b );</span>
76
77 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
78 template &lt;class A,class B&gt;
79 A &amp; <span class="RenoLink"><a href="operator_div_eq_mat_scalar_.html">operator/=</a></span>( A &amp; a, B b );</span>
80
81 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
82 template &lt;class A,class B&gt;
83 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
84 <span class="RenoLink"><a href="operator_over_mat_scalar_.html">operator/</a></span>( A const &amp; a, B b );</span>
85
86 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
87 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
88 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> &amp;&amp;
89 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
90 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
91 template &lt;class A,class B&gt;
92 A &amp; <span class="RenoLink"><a href="operator_mul_eq_mat_mat_.html">operator*=</a></span>( A &amp; a, B const &amp; b );</span>
93
94 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
95 template &lt;class A,class B&gt;
96 A &amp; <span class="RenoLink"><a href="operator_mul_eq_mat_scalar_.html">operator*=</a></span>( A &amp; a, B b );</span>
97
98 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
99 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
100 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>
101 template &lt;class A,class B&gt;
102 typename <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span>&lt;A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>&gt;::type
103 <span class="RenoLink"><a href="operator_times_mat_mat_.html">operator*</a></span>( A const &amp; a, B const &amp; b );</span>
104
105 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
106 template &lt;class A,class B&gt;
107 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
108 <span class="RenoLink"><a href="operator_times_mat_scalar_.html">operator*</a></span>( A const &amp; a, B b );</span>
109
110 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
111 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
112 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
113 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
114 template &lt;class A,class B&gt;
115 bool <span class="RenoLink"><a href="operator_eq_mat_mat_.html">operator==</a></span>( A const &amp; a, B const &amp; b );</span>
116
117 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
118 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
119 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
120 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
121 template &lt;class A,class B&gt;
122 bool <span class="RenoLink"><a href="operator_not_eq_mat_mat_.html">operator!=</a></span>( A const &amp; a, B const &amp; b );</span>
123
124 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
125 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;B&gt;::value &amp;&amp;
126 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> &amp;&amp;
127 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
128 template &lt;class A,class B,class Cmp&gt;
129 bool <span class="RenoLink"><a href="cmp_mat_mat_.html">cmp</a></span>( A const &amp; a, B const &amp; b, Cmp pred );</span>
130
131 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
132 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
133 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
134
135 template &lt;class A,class B&gt;
136 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
137 <span class="RenoLink"><a href="inverse_mat_.html">inverse</a></span>( A const &amp; a, B det );
138
139 template &lt;class A&gt;
140 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
141 <span class="RenoLink"><a href="inverse_mat_.html">inverse</a></span>( A const &amp; a );</span>
142
143 <span class="RenoIncludeSPAN">template &lt;class T,int D&gt;
144 -unspecified-return-type- <span class="RenoLink"><a href="zero_mat.html">zero_mat</a></span>();
145
146 template &lt;class T,int R,int C&gt;
147 -unspecified-return-type- <span class="RenoLink"><a href="zero_mat.html">zero_mat</a></span>();</span>
148
149 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
150 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
151 template &lt;class A&gt;
152 void <span class="RenoLink"><a href="set_zero_mat_.html">set_zero</a></span>( A &amp; a );</span>
153
154 <span class="RenoIncludeSPAN">template &lt;class S,int D&gt;
155 -unspecified-return-type- <span class="RenoLink"><a href="identity_mat.html">identity_mat</a></span>();</span>
156
157 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
158 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp;
159 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>
160 template &lt;class A&gt;
161 void <span class="RenoLink"><a href="set_identity_mat_.html">set_identity</a></span>( A &amp; a );</span>
162
163 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
164 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3
165 template &lt;int Dim,class A,class Angle&gt;
166 -unspecified-return-type
167 <span class="RenoLink"><a href="rot_mat.html">rot_mat</a></span>( A const &amp; axis, Angle angle );</span>
168
169 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
170 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
171 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> &amp;&amp;
172 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp; <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3
173 template &lt;class A&gt;
174 void <span class="RenoLink"><a href="set_rot_mat_vec_scalar_.html">set_rot</a></span>( A &amp; a, B const &amp; axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> angle );</span>
175
176 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
177 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
178 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> &amp;&amp;
179 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp; <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3
180 template &lt;class A,class B&gt;
181 void <span class="RenoLink"><a href="rotate_mat_vec_scalar_.html">rotate</a></span>( A &amp; a, B const &amp; axis, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
182
183 <span class="RenoIncludeSPAN">template &lt;int Dim,class Angle&gt;
184 -unspecified-return-type- <span class="RenoLink"><a href="rotx_mat_scalar_.html">rotx_mat</a></span>( Angle const &amp; angle );</span>
185
186 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
187 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
188 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
189 template &lt;class A&gt;
190 void <span class="RenoLink"><a href="set_rotx_mat_scalar_.html">set_rotx</a></span>( A &amp; a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
191
192 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
193 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
194 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
195 template &lt;class A&gt;
196 void <span class="RenoLink"><a href="rotate_x_mat_scalar_.html">rotate_x</a></span>( A &amp; a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
197
198 <span class="RenoIncludeSPAN">template &lt;int Dim,class Angle&gt;
199 -unspecified-return-type- <span class="RenoLink"><a href="roty_mat_scalar_.html">roty_mat</a></span>( Angle const &amp; angle );</span>
200
201 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
202 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
203 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
204 template &lt;class A&gt;
205 void <span class="RenoLink"><a href="set_roty_mat_scalar_.html">set_roty</a></span>( A &amp; a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
206
207 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
208 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
209 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
210 template &lt;class A&gt;
211 void <span class="RenoLink"><a href="rotate_y_mat_scalar_.html">rotate_y</a></span>( A &amp; a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
212
213 <span class="RenoIncludeSPAN">template &lt;int Dim,class Angle&gt;
214 -unspecified-return-type- <span class="RenoLink"><a href="rotz_mat_scalar_.html">rotz_mat</a></span>( Angle const &amp; angle );</span>
215
216 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
217 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
218 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
219 template &lt;class A&gt;
220 void <span class="RenoLink"><a href="set_rotz_mat_scalar_.html">set_rotz</a></span>( A &amp; a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
221
222 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
223 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>&gt;=3 &amp;&amp;
224 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
225 template &lt;class A&gt;
226 void <span class="RenoLink"><a href="rotate_z_mat_scalar_.html">rotate_z</a></span>( A &amp; a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span>
227
228 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
229 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>
230 template &lt;class A&gt;
231 <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span>
232 <span class="RenoLink"><a href="determinant.html">determinant</a></span>( A const &amp; a );</span>
233
234 <span class="RenoIncludeSPAN">template &lt;class T&gt;
235 -unspecified-return-type
236 <span class="RenoLink"><a href="perspective_lh.html">perspective_lh</a></span>( T fov_y, T aspect, T zn, T zf );</span>
237
238 <span class="RenoIncludeSPAN">template &lt;class T&gt;
239 -unspecified-return-type
240 <span class="RenoLink"><a href="perspective_rh.html">perspective_rh</a></span>( T fov_y, T aspect, T zn, T zf );</span>
241
242 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
243 template &lt;class A&gt;
244 -unspecified-return-type- <span class="RenoLink"><a href="mref.html">mref</a></span>( A &amp; a );</span>
245
246 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
247 template &lt;class Scalar,class A&gt;
248 -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_mat_.html">scalar_cast</a></span>( A const &amp; a );</span></span></span>
249 }
250 }</pre>
251 </div><p>This is a list of all matrix operations implemented by Boost QVM -- click on functions for individual documentation. General notes:</p>
252 <div><ul><li> All functions use <span class="RenoLink"><a href="SFINAE_enable_if.html">SFINAE/enable_if</a></span>. They are available for any C++ type but only if it has been registered through the <i><span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span></i> template.</li>
253 <li> When objects are returned by value their type is deduced either by the <i><span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span></i> template (for unary functions) or the <i><span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span></i> template (for binary functions).</li>
254 <li> The type of scalar arguments is deduced independently from the type of the matrix argument, so they are not required to match. Scalar arguments must convert implicitly to the matrix scalar type.</li>
255 </ul></div>
256 </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
257 See also: <span class="RenoPageList"><a href="index.html">Boost QVM</a>&nbsp;| <a href="Synopsis.html">Synopsis</a></span>
258 </div>
259 <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. -->
260 <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->
261 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
262 <div id="footer">
263 <p>
264 <a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
265 <a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
266 <small>Copyright (c) 2008-2016 by Emil Dotchevski and Reverge Studios, Inc.<br/>
267 Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License, Version 1.0</a>.</small>
268 </p>
269 </div>
270 </div>
271 </div>
272 </div>
273 </body>
274 </html>