]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/doc/Synopsis.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / qvm / doc / Synopsis.html
CommitLineData
7c673cae
FG
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>Synopsis</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>Synopsis</h3>
20</div>
21<p><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink"><a href="boost_qvm_all_hpp.html">boost/qvm/all.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"> //*** Type traits ***
27
28 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T&gt;
29 struct <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>
30 {
31 static bool const value=/*unspecified*/;
32 };</span>
33
34 <span class="RenoIncludeSPAN">template &lt;class Q&gt;
35 struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>
36 {
37 /*main template members unspecified*/
38 };
39
40 /*
41 User-defined (possibly partial) specializations:
42
43 template &lt;&gt;
44 struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;Q&gt;
45 {
46 <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span>;</span>
47
48 <span class="RenoIncludeSPAN"> template &lt;int I&gt; static inline <span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="quat_traits_Q_read_element.html">read_element</a></span>( Quaternion const &amp; q );</span>
49 <span class="RenoIncludeSPAN"> template &lt;int I&gt; static inline <span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="quat_traits_Q_write_element.html">write_element</a></span>( Quaternion &amp; q );</span>
50 };
51 */</span></span>
52
53 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T&gt;
54 struct <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>
55 {
56 static bool const value=/*unspecified*/;
57 };</span>
58
59 <span class="RenoIncludeSPAN">template &lt;class V&gt;
60 struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>
61 {
62 /*main template members unspecified*/
63 };
64
65 /*
66 User-defined (possibly partial) specializations:
67
68 template &lt;&gt;
69 struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;V&gt;
70 {
71 <span class="RenoIncludeSPAN"> static int const <span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> = /*user-defined*/;</span>
72 <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span>;</span>
73
74 <span class="RenoIncludeSPAN"> template &lt;int I&gt; static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="vec_traits_V_read_element.html">read_element</a></span>( Vector const &amp; v );</span>
75 <span class="RenoIncludeSPAN"> template &lt;int I&gt; static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="vec_traits_V_write_element.html">write_element</a></span>( Vector &amp; v );</span>
76
77 <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="vec_traits_V_read_element_idx.html">read_element_idx</a></span>( int i, Vector const &amp; v );</span>
78 <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="vec_traits_V_write_element_idx.html">write_element_idx</a></span>( int i, Vector &amp; v );</span>
79 };
80 */</span></span>
81
82 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T&gt;
83 struct <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>
84 {
85 static bool const value=/*unspecified*/;
86 };</span>
87
88 <span class="RenoIncludeSPAN">template &lt;class M&gt;
89 struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>
90 {
91 /*main template members unspecified*/
92 };
93
94 /*
95 User-defined (possibly partial) specializations:
96
97 template &lt;&gt;
98 struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;M&gt;
99 {
100 <span class="RenoIncludeSPAN"> static int const <span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> = /*user-defined*/;</span>
101 <span class="RenoIncludeSPAN"> static int const <span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> = /*user-defined*/;</span>
102 <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span>;</span>
103
104 <span class="RenoIncludeSPAN"> template &lt;int R,int C&gt; static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="mat_traits_M_read_element.html">read_element</a></span>( Matrix const &amp; m );</span>
105 <span class="RenoIncludeSPAN"> template &lt;int R,int C&gt; static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="mat_traits_M_write_element.html">write_element</a></span>( Matrix &amp; m );</span>
106
107 <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="mat_traits_M_read_element_idx.html">read_element_idx</a></span>( int r, int c, Matrix const &amp; m );</span>
108 <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="mat_traits_M_write_element_idx.html">write_element_idx</a></span>( int r, int c, Matrix &amp; m );</span>
109 };
110 */</span></span></span>
111
112
113
114<span class="RenoIncludeSPAN"> //*** Quaternion, vector and matrix types ***
115
116 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T&gt;
117 struct <span class="RenoLink"><a href="quat.html">quat</a></span>
118 {
119 T a[4];
120
121 template &lt;class R&gt;
122 operator R() const
123 {
124 R r;
125 <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>(r,*this);
126 return r;
127 }
128 };
129
130 template &lt;class Quaternion&gt;
131 struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>;
132
133 template &lt;class T&gt;
134 struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt; <span class="RenoLink"><a href="quat.html">quat</a></span>&lt;T&gt; &gt;
135 {
136 typedef T scalar_type;
137
138 template &lt;int I&gt; static scalar_type <span class="RenoLink"><a href="quat_traits_Q_read_element.html">read_element</a></span>( <span class="RenoLink"><a href="quat.html">quat</a></span>&lt;T&gt; const &amp; x ) { return x.a[I]; }
139 template &lt;int I&gt; static scalar_type &amp; <span class="RenoLink"><a href="quat_traits_Q_write_element.html">write_element</a></span>( <span class="RenoLink"><a href="quat.html">quat</a></span>&lt;T&gt; &amp; x ) { return x.a[I]; }
140 };</span></span>
141
142 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T,int Dim&gt;
143 struct <span class="RenoLink"><a href="vec.html">vec</a></span>
144 {
145 T a[Dim];
146
147 template &lt;class R&gt;
148 operator R() const
149 {
150 R r;
151 <span class="RenoLink"><a href="assign_vec_vec_.html">assign</a></span>(r,*this);
152 return r;
153 }
154 };
155
156 template &lt;class Vector&gt;
157 struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>;
158
159 template &lt;class T,int Dim&gt;
160 struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt; <span class="RenoLink"><a href="vec.html">vec</a></span>&lt;T,Dim&gt; &gt;
161 {
162 typedef T scalar_type;
163 static int const dim=Dim;
164
165 template &lt;int I&gt; static scalar_type <span class="RenoLink"><a href="vec_traits_V_read_element.html">read_element</a></span>( <span class="RenoLink"><a href="vec.html">vec</a></span>&lt;T,Dim&gt; const &amp; x ) { return x.a[I]; }
166 template &lt;int I&gt; static scalar_type &amp; <span class="RenoLink"><a href="vec_traits_V_write_element.html">write_element</a></span>( <span class="RenoLink"><a href="vec.html">vec</a></span>&lt;T,Dim&gt; &amp; x ) { return x.a[I]; }
167
168 static scalar_type <span class="RenoLink"><a href="vec_traits_V_read_element_idx.html">read_element_idx</a></span>( int i, <span class="RenoLink"><a href="vec.html">vec</a></span>&lt;T,Dim&gt; const &amp; x ) { return x.a[i]; }
169 static scalar_type &amp; <span class="RenoLink"><a href="vec_traits_V_write_element_idx.html">write_element_idx</a></span>( int i, <span class="RenoLink"><a href="vec.html">vec</a></span>&lt;T,Dim&gt; &amp; x ) { return x.a[i]; }
170 };</span></span>
171
172 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T,int Rows,int Cols&gt;
173 struct <span class="RenoLink"><a href="mat.html">mat</a></span>
174 {
175 T a[Rows][Cols];
176
177 template &lt;class R&gt;
178 operator R() const
179 {
180 R r;
181 <span class="RenoLink"><a href="assign_mat_mat_.html">assign</a></span>(r,*this);
182 return r;
183 }
184 };
185
186 template &lt;class Matrix&gt;
187 struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>;
188
189 template &lt;class T,int Rows,int Cols&gt;
190 struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt; <span class="RenoLink"><a href="mat.html">mat</a></span>&lt;T,Rows,Cols&gt; &gt;
191 {
192 typedef T scalar_type;
193 static int const rows=Rows;
194 static int const cols=Cols;
195
196 template &lt;int Row,int Col&gt; static scalar_type <span class="RenoLink"><a href="mat_traits_M_read_element.html">read_element</a></span>( <span class="RenoLink"><a href="mat.html">mat</a></span>&lt;T,Rows,Cols&gt; const &amp; x ) { return x.a[Row][Col]; }
197 template &lt;int Row,int Col&gt; static scalar_type &amp; <span class="RenoLink"><a href="mat_traits_M_write_element.html">write_element</a></span>( <span class="RenoLink"><a href="mat.html">mat</a></span>&lt;T,Rows,Cols&gt; &amp; x ) { return x.a[Row][Col]; }
198
199 static scalar_type <span class="RenoLink"><a href="mat_traits_M_read_element_idx.html">read_element_idx</a></span>( int row, int col, <span class="RenoLink"><a href="mat.html">mat</a></span>&lt;T,Rows,Cols&gt; const &amp; x ) { return x.a[row][col]; }
200 static scalar_type &amp; <span class="RenoLink"><a href="mat_traits_M_write_element_idx.html">write_element_idx</a></span>( int row, int col, <span class="RenoLink"><a href="mat.html">mat</a></span>&lt;T,Rows,Cols&gt; &amp; x ) { return x.a[row][col]; }
201 };</span></span></span>
202
203
204
205<span class="RenoIncludeSPAN"> //*** Accessing quaternion elements ***
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_quat.html">is_quat</a></span>&lt;Q&gt;::value
209
210 template &lt;class Q&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">S</a></span>( Q &amp; q );
211 template &lt;class Q&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">V</a></span>( Q &amp; q );
212 template &lt;class Q&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">X</a></span>( Q &amp; q );
213 template &lt;class Q&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">Y</a></span>( Q &amp; q );
214 template &lt;class Q&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">Z</a></span>( Q &amp; q );</span></span>
215
216
217
218<span class="RenoIncludeSPAN"> //*** Accessing vector elements ***
219
220 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
221 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;V&gt;::value
222
223 template &lt;int I,class V&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_vector_elements.html">A</a></span>( V &amp; v );
224 template &lt;class V&gt; -unspecified-return-type- A0( V &amp; v );
225 template &lt;class V&gt; -unspecified-return-type- A1( V &amp; v );
226 ...
227 template &lt;class V&gt; -unspecified-return-type- A9( V &amp; v );
228
229 template &lt;class V&gt; -unspecified-return-type- X( V &amp; v );
230 template &lt;class V&gt; -unspecified-return-type- Y( V &amp; v );
231 template &lt;class V&gt; -unspecified-return-type- Z( V &amp; v );
232 template &lt;class V&gt; -unspecified-return-type- W( V &amp; v );</span></span></span>
233
234
235
236<span class="RenoIncludeSPAN"> //*** Accessing vector elements by swizzling ***
237
238 <span class="RenoIncludeSPAN">//2D <span class="RenoLink"><a href="view_proxy.html">view proxies</a></span>, only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
239 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;V&gt;::value
240 template &lt;class V&gt; -unspecified-2D-vector-type- XX( V &amp; v );
241 template &lt;class V&gt; -unspecified-2D-vector-type- XY( V &amp; v );
242 template &lt;class V&gt; -unspecified-2D-vector-type- XZ( V &amp; v );
243 template &lt;class V&gt; -unspecified-2D-vector-type- XW( V &amp; v );
244 template &lt;class V&gt; -unspecified-2D-vector-type- X0( V &amp; v );
245 template &lt;class V&gt; -unspecified-2D-vector-type- X1( V &amp; v );
246 template &lt;class V&gt; -unspecified-2D-vector-type- YX( V &amp; v );
247 template &lt;class V&gt; -unspecified-2D-vector-type- YY( V &amp; v );
248 template &lt;class V&gt; -unspecified-2D-vector-type- YZ( V &amp; v );
249 template &lt;class V&gt; -unspecified-2D-vector-type- YW( V &amp; v );
250 template &lt;class V&gt; -unspecified-2D-vector-type- Y0( V &amp; v );
251 template &lt;class V&gt; -unspecified-2D-vector-type- Y1( V &amp; v );
252 template &lt;class V&gt; -unspecified-2D-vector-type- ZX( V &amp; v );
253 template &lt;class V&gt; -unspecified-2D-vector-type- ZY( V &amp; v );
254 template &lt;class V&gt; -unspecified-2D-vector-type- ZZ( V &amp; v );
255 template &lt;class V&gt; -unspecified-2D-vector-type- ZW( V &amp; v );
256 template &lt;class V&gt; -unspecified-2D-vector-type- Z0( V &amp; v );
257 template &lt;class V&gt; -unspecified-2D-vector-type- Z1( V &amp; v );
258 template &lt;class V&gt; -unspecified-2D-vector-type- WX( V &amp; v );
259 template &lt;class V&gt; -unspecified-2D-vector-type- WY( V &amp; v );
260 template &lt;class V&gt; -unspecified-2D-vector-type- WZ( V &amp; v );
261 template &lt;class V&gt; -unspecified-2D-vector-type- WW( V &amp; v );
262 template &lt;class V&gt; -unspecified-2D-vector-type- W0( V &amp; v );
263 template &lt;class V&gt; -unspecified-2D-vector-type- W1( V &amp; v );
264 ...
265 -unspecified-2D-vector-type- _00();
266 -unspecified-2D-vector-type- _01();
267 -unspecified-2D-vector-type- _10();
268 -unspecified-2D-vector-type- _11();
269
270 //3D <span class="RenoLink"><a href="view_proxy.html">view proxies</a></span>, only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
271 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;V&gt;::value
272 template &lt;class V&gt; -unspecified-3D-vector-type- XXX( V &amp; v );
273 ...
274 template &lt;class V&gt; -unspecified-3D-vector-type- XXW( V &amp; v );
275 template &lt;class V&gt; -unspecified-3D-vector-type- XX0( V &amp; v );
276 template &lt;class V&gt; -unspecified-3D-vector-type- XX1( V &amp; v );
277 template &lt;class V&gt; -unspecified-3D-vector-type- XYX( V &amp; v );
278 ...
279 template &lt;class V&gt; -unspecified-3D-vector-type- XY1( V &amp; v );
280 ...
281 template &lt;class V&gt; -unspecified-3D-vector-type- WW1( V &amp; v );
282 ...
283 -unspecified-3D-vector-type- _000();
284 -unspecified-3D-vector-type- _001();
285 -unspecified-3D-vector-type- _010();
286 ...
287 -unspecified-3D-vector-type- _111();
288
289 //4D <span class="RenoLink"><a href="view_proxy.html">view proxies</a></span>, only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
290 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;V&gt;::value
291 template &lt;class V&gt; -unspecified-4D-vector-type- XXXX( V &amp; v );
292 ...
293 template &lt;class V&gt; -unspecified-4D-vector-type- XXXW( V &amp; v );
294 template &lt;class V&gt; -unspecified-4D-vector-type- XXX0( V &amp; v );
295 template &lt;class V&gt; -unspecified-4D-vector-type- XXX1( V &amp; v );
296 template &lt;class V&gt; -unspecified-4D-vector-type- XXYX( V &amp; v );
297 ...
298 template &lt;class V&gt; -unspecified-4D-vector-type- XXY1( V &amp; v );
299 ...
300 template &lt;class V&gt; -unspecified-4D-vector-type- WWW1( V &amp; v );
301 ...
302 -unspecified-4D-vector-type- _0000();
303 -unspecified-4D-vector-type- _0001();
304 -unspecified-4D-vector-type- _0010();
305 ...
306 -unspecified-4D-vector-type- _1111();</span> </span>
307
308
309
310<span class="RenoIncludeSPAN"> //*** Indexing vector elements ***
311
312 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
313 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
314 template &lt;class A&gt;
315 typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span>
316 <span class="RenoLink"><a href="vec_index_read.html">vec_index_read</a></span>( A const &amp; a, int i );</span>
317
318 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
319 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
320 template &lt;class A&gt;
321 typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> &amp;
322 <span class="RenoLink"><a href="vec_index_write.html">vec_index_write</a></span>( A &amp; a, int i );</span></span></span>
323
324
325
326<span class="RenoIncludeSPAN"> //*** Accessing matrix elements ***
327
328 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
329 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;Q&gt;::value
330
331 template &lt;int R,int C,class M&gt; -unspecified-return-type- <span class="RenoLink"><a href="accessing_matrix_elements.html">A</a></span>( M &amp; m );
332
333 template &lt;class M&gt; -unspecified-return-type- A00( M &amp; m );
334 template &lt;class M&gt; -unspecified-return-type- A01( M &amp; m );
335 ...
336 template &lt;class M&gt; -unspecified-return-type- A09( M &amp; m );
337 template &lt;class M&gt; -unspecified-return-type- A10( M &amp; m );
338 ...
339 template &lt;class M&gt; -unspecified-return-type- A99( M &amp; m );</span> </span>
340
341
342
343<span class="RenoIncludeSPAN"> //*** Indexing matrix elements ***
344
345 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
346 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
347 template &lt;class A&gt;
348 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>
349 <span class="RenoLink"><a href="mat_index_read.html">mat_index_read</a></span>( A const &amp; a, int r, int c );</span>
350
351 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
352 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
353 template &lt;class A&gt;
354 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> &amp;
355 <span class="RenoLink"><a href="mat_index_write.html">mat_index_write</a></span>( A &amp; a, int r, int c );</span></span></span>
356
357
358
359<span class="RenoIncludeSPAN"> //*** Quaternion operations ***
360
361 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
362 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
363 template &lt;class A,class B&gt;
364 A &amp; <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>( A &amp; a, B const &amp; b );</span>
365
366 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
367 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;R&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
368 template &lt;class R,class A&gt;
369 R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const &amp; a );
370
371 //Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
372 // <span class="RenoLink"><a href="is_quat.html">is_quat</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;
373 // <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>==3 &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_cols.html">cols</a></span>==3
374 template &lt;class R,class A&gt;
375 R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const &amp; m );</span>
376
377 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
378 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
379 template &lt;class A,class B&gt;
380 A &amp; <span class="RenoLink"><a href="operator_sub_eq_quat_quat_.html">operator-=</a></span>( A &amp; a, B const &amp; b );</span>
381
382 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
383 template &lt;class A&gt;
384 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
385 <span class="RenoLink"><a href="operator_minus_quat_.html">operator-</a></span>( A const &amp; a );</span>
386
387 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
388 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value &amp;&amp;
389 template &lt;class A,class B&gt;
390 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt;::type
391 <span class="RenoLink"><a href="operator_minus_quat_quat_.html">operator-</a></span>( A const &amp; a, B const &amp; b );</span>
392
393 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
394 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
395 template &lt;class A,class B&gt;
396 A &amp; <span class="RenoLink"><a href="operator_add_quat_quat_.html">operator+=</a></span>( A &amp; a, B const &amp; b );</span>
397
398 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
399 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value &amp;&amp;
400 template &lt;class A,class B&gt;
401 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt;::type
402 <span class="RenoLink"><a href="operator_plus_quat_quat_.html">operator+</a></span>( A const &amp; a, B const &amp; b );</span>
403
404 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
405 template &lt;class A,class B&gt;
406 A &amp; <span class="RenoLink"><a href="operator_div_eq_quat_scalar_.html">operator/=</a></span>( A &amp; a, B b );</span>
407
408 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
409 template &lt;class A,class B&gt;
410 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
411 <span class="RenoLink"><a href="operator_over_quat_scalar_.html">operator/</a></span>( A const &amp; a, B b );</span>
412
413 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
414 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
415 template &lt;class A,class B&gt;
416 A &amp; <span class="RenoLink"><a href="operator_mul_eq_quat_quat_.html">operator*=</a></span>( A &amp; a, B const &amp; b );</span>
417
418 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
419 template &lt;class A,class B&gt;
420 A &amp; <span class="RenoLink"><a href="operator_mul_eq_quat_scalar_.html">operator*=</a></span>( A &amp; a, B b );</span>
421
422 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
423 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
424 template &lt;class A,class B&gt;
425 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt;::type
426 <span class="RenoLink"><a href="operator_times_quat_quat_.html">operator*</a></span>( A const &amp; a, B const &amp; b );</span>
427
428 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
429 template &lt;class A,class B&gt;
430 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
431 <span class="RenoLink"><a href="operator_times_quat_scalar_.html">operator*</a></span>( A const &amp; a, B b );</span>
432
433 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
434 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
435 template &lt;class A,class B&gt;
436 bool <span class="RenoLink"><a href="operator_eq_quat_quat_.html">operator==</a></span>( A const &amp; a, B const &amp; b );</span>
437
438 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
439 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
440 template &lt;class A,class B&gt;
441 bool <span class="RenoLink"><a href="operator_not_eq_quat_quat_.html">operator!=</a></span>( A const &amp; a, B const &amp; b );</span>
442
443 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
444 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
445 template &lt;class A,class B,class Cmp&gt;
446 bool <span class="RenoLink"><a href="cmp_quat_quat_.html">cmp</a></span>( A const &amp; a, B const &amp; b, Cmp pred );</span>
447
448 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
449 template &lt;class A&gt;
450 typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span>
451 <span class="RenoLink"><a href="mag_sqr_quat_.html">mag_sqr</a></span>( A const &amp; a );</span>
452
453 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
454 template &lt;class A&gt;
455 typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span>
456 <span class="RenoLink"><a href="mag_quat_.html">mag</a></span>( A const &amp; a );</span>
457
458 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
459 template &lt;class A&gt;
460 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
461 <span class="RenoLink"><a href="normalized_quat_.html">normalized</a></span>( A const &amp; a );</span>
462
463 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
464 template &lt;class A&gt;
465 void <span class="RenoLink"><a href="normalize_quat_.html">normalize</a></span>( A &amp; a );</span>
466
467 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
468 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
469 template &lt;class A,class B&gt;
470 typename <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span>&lt;A,B&gt;::type
471 <span class="RenoLink"><a href="dot_quat_quat_.html">dot</a></span>( A const &amp; a, B const &amp; b );</span>
472
473 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
474 template &lt;class A&gt;
475 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
476 <span class="RenoLink"><a href="conjugate.html">conjugate</a></span>( A const &amp; a );</span>
477
478 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
479 template &lt;class A&gt;
480 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
481 <span class="RenoLink"><a href="inverse_quat_.html">inverse</a></span>( A const &amp; a );</span>
482
483 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
484 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;C&gt;
485 template &lt;class A,class B,class C&gt;
486 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt; &gt;::type
487 <span class="RenoLink"><a href="slerp.html">slerp</a></span>( A const &amp; a, B const &amp; b, C c );</span>
488
489 <span class="RenoIncludeSPAN">template &lt;class T&gt;
490 -unspecified-return-type- <span class="RenoLink"><a href="zero_quat.html">zero_quat</a></span>();</span>
491
492 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
493 template &lt;class A&gt;
494 void <span class="RenoLink"><a href="set_zero_quat_.html">set_zero</a></span>( A &amp; a );</span>
495
496 <span class="RenoIncludeSPAN">template &lt;class S&gt;
497 -unspecified-return-type- <span class="RenoLink"><a href="identity_quat.html">identity_quat</a></span>();</span>
498
499 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
500 template &lt;class A&gt;
501 void <span class="RenoLink"><a href="set_identity_quat_.html">set_identity</a></span>( A &amp; a );</span>
502
503 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
504 // <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
505 template &lt;class A&gt;
506 -unspecified-return-type- <span class="RenoLink"><a href="rot_quat.html">rot_quat</a></span>( A const &amp; axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> angle );</span>
507
508 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
509 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp;
510 // <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
511 template &lt;class A&gt;
512 void <span class="RenoLink"><a href="set_rot_quat_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>
513
514 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
515 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp;
516 // <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
517 template &lt;class A,class B&gt;
518 void <span class="RenoLink"><a href="rotate_quat_vec_scalar_.html">rotate</a></span>( A &amp; a, B const &amp; axis, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
519
520 <span class="RenoIncludeSPAN">template &lt;class Angle&gt;
521 -unspecified-return-type- <span class="RenoLink"><a href="rotx_quat_scalar_.html">rotx_quat</a></span>( Angle const &amp; angle );</span>
522
523 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
524 template &lt;class A&gt;
525 void <span class="RenoLink"><a href="set_rotx_quat_scalar_.html">set_rotx</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
526
527 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
528 template &lt;class A&gt;
529 void <span class="RenoLink"><a href="rotate_x_quat_scalar_.html">rotate_x</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
530
531 <span class="RenoIncludeSPAN">template &lt;class Angle&gt;
532 -unspecified-return-type- <span class="RenoLink"><a href="roty_quat_scalar_.html">roty_quat</a></span>( Angle const &amp; angle );</span>
533
534 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
535 template &lt;class A&gt;
536 void <span class="RenoLink"><a href="set_rotz_quat_scalar_.html">set_rotz</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
537
538 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
539 template &lt;class A&gt;
540 void <span class="RenoLink"><a href="rotate_y_quat_scalar_.html">rotate_y</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
541
542 <span class="RenoIncludeSPAN">template &lt;class Angle&gt;
543 -unspecified-return-type- <span class="RenoLink"><a href="rotz_quat_scalar_.html">rotz_quat</a></span>( Angle const &amp; angle );</span>
544
545 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
546 template &lt;class A&gt;
547 void <span class="RenoLink"><a href="set_rotz_quat_scalar_.html">set_rotz</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
548
549 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
550 template &lt;class A&gt;
551 void <span class="RenoLink"><a href="rotate_z_quat_scalar_.html">rotate_z</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
552
553 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
554 template &lt;class Scalar,class A&gt;
555 -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_quat_.html">scalar_cast</a></span>( A const &amp; a );</span>
556
557 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
558 template &lt;class A&gt;
559 -unspecified-return-type- <span class="RenoLink"><a href="qref.html">qref</a></span>( A &amp; a );</span></span></span>
560
561
562
563<span class="RenoIncludeSPAN"> //*** Vector operations ***
564
565 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
566 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
567 // <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>==<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>
568 template &lt;class A,class B&gt;
569 A &amp; <span class="RenoLink"><a href="assign_vec_vec_.html">assign</a></span>( A &amp; a, B const &amp; b );</span>
570
571 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
572 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;R&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp;
573 // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;R&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<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>
574 template &lt;class R,class A&gt;
575 R <span class="RenoLink"><a href="convert_to_vec_.html">convert_to</a></span>( A const &amp; a );</span>
576
577 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
578 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
579 // <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>==<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>
580 template &lt;class A,class B&gt;
581 A &amp; <span class="RenoLink"><a href="operator_sub_eq_vec_vec_.html">operator-=</a></span>( A &amp; a, B const &amp; b );</span>
582
583 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
584 template &lt;class A&gt;
585 typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span>&lt;A&gt;::type
586 <span class="RenoLink"><a href="operator_minus_vec_.html">operator-</a></span>( A const &amp; a );</span>
587
588 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
589 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
590 // <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>==<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>
591 template &lt;class A,class B&gt;
592 typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>&lt;A,B,<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>&gt;::type
593 <span class="RenoLink"><a href="operator_minus_vec_vec_.html">operator-</a></span>( A const &amp; a, B const &amp; b );</span>
594
595 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
596 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
597 // <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>==<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>
598 template &lt;class A,class B&gt;
599 A &amp; <span class="RenoLink"><a href="operator_add_vec_vec_.html">operator+=</a></span>( A &amp; a, B const &amp; b );</span>
600
601 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
602 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
603 // <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>==<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>
604 template &lt;class A,class B&gt;
605 typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>&lt;A,B,<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>&gt;::type
606 <span class="RenoLink"><a href="operator_plus_vec_vec_.html">operator+</a></span>( A const &amp; a, B const &amp; b );</span>
607
608 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
609 template &lt;class A,class B&gt;
610 A &amp; <span class="RenoLink"><a href="operator_div_eq_vec_scalar_.html">operator/=</a></span>( A &amp; a, B b );</span>
611
612 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
613 template &lt;class A,class B&gt;
614 typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span>&lt;A&gt;::type
615 <span class="RenoLink"><a href="operator_over_vec_scalar_.html">operator/</a></span>( A const &amp; a, B b );</span>
616
617 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
618 template &lt;class A,class B&gt;
619 A &amp; <span class="RenoLink"><a href="operator_mul_eq_vec_scalar_.html">operator*=</a></span>( A &amp; a, B b );</span>
620
621 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;B&gt;::value
622 template &lt;class A&gt;
623 typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span>&lt;A&gt;::type
624 <span class="RenoLink"><a href="operator_times_vec_scalar_.html">operator*</a></span>( A const &amp; a, B b );</span>
625
626 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
627 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
628 // <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>==<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>
629 template &lt;class A,class B&gt;
630 bool <span class="RenoLink"><a href="operator_eq_vec_vec_.html">operator==</a></span>( A const &amp; a, B const &amp; b );</span>
631
632 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
633 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
634 // <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>==<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>
635 template &lt;class A,class B&gt;
636 bool <span class="RenoLink"><a href="operator_not_eq_vec_vec_.html">operator!=</a></span>( A const &amp; a, B const &amp; b );</span>
637
638 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
639 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
640 // <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>==<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>
641 template &lt;class A,class B,class Cmp&gt;
642 bool <span class="RenoLink"><a href="cmp_mat_mat_.html">cmp</a></span>( A const &amp; a, B const &amp; b, Cmp pred );</span>
643
644 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
645 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
646 template &lt;class A&gt;
647 typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span>
648 <span class="RenoLink"><a href="mag_sqr_vec_.html">mag_sqr</a></span>( A const &amp; a );</span>
649
650 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
651 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
652 template &lt;class A&gt;
653 typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span>
654 <span class="RenoLink"><a href="mag_vec_.html">mag</a></span>( A const &amp; a );</span>
655
656 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
657 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
658 template &lt;class A&gt;
659 typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span>&lt;A&gt;::type
660 <span class="RenoLink"><a href="normalized_vec_.html">normalized</a></span>( A const &amp; a );</span>
661
662 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
663 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
664 template &lt;class A&gt;
665 void <span class="RenoLink"><a href="normalize_vec_.html">normalize</a></span>( A &amp; a );</span>
666
667 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
668 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
669 // <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>==<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>
670 template &lt;class A,class B&gt;
671 typename <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span>&lt;A,B&gt;::type
672 <span class="RenoLink"><a href="dot_vec_vec_.html">dot</a></span>( A const &amp; a, B const &amp; b );</span>
673
674 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
675 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
676 // <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 &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
677 template &lt;class A,class B&gt;
678 typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>&lt;A,B,3&gt;::type
679 <span class="RenoLink"><a href="cross.html">cross</a></span>( A const &amp; a, B const &amp; b );</span>
680
681 <span class="RenoIncludeSPAN">template &lt;class T,int S&gt;
682 -unspecified-return-type- <span class="RenoLink"><a href="zero_vec.html">zero_vec</a></span>();</span>
683
684 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
685 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
686 template &lt;class A&gt;
687 void <span class="RenoLink"><a href="set_zero_vec_.html">set_zero</a></span>( A &amp; a );</span>
688
689 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
690 template &lt;class A&gt;
691 -unspecified-return-type- <span class="RenoLink"><a href="vref.html">vref</a></span>( A &amp; a );</span>
692
693 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
694 template &lt;class Scalar,class A&gt;
695 -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_vec_.html">scalar_cast</a></span>( A const &amp; a );</span></span></span>
696
697
698
699<span class="RenoIncludeSPAN"> //*** Matrix operations ***
700
701 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
702 // <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;
703 // <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;
704 // <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>
705 template &lt;class A,class B&gt;
706 A &amp; <span class="RenoLink"><a href="assign_mat_mat_.html">assign</a></span>( A &amp; a, B const &amp; b );</span>
707
708 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
709 // <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;
710 // <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;
711 // <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>
712 template &lt;class R,class A&gt;
713 R <span class="RenoLink"><a href="convert_to_mat_.html">convert_to</a></span>( A const &amp; a );</span>
714
715 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
716 // <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;
717 // <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;
718 // <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>
719 template &lt;class A,class B&gt;
720 A &amp; <span class="RenoLink"><a href="operator_sub_eq_mat_mat_.html">operator-=</a></span>( A &amp; a, B const &amp; b );</span>
721
722 <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
723 template &lt;class A&gt;
724 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
725 <span class="RenoLink"><a href="operator_minus_mat_.html">operator-</a></span>( A const &amp; a );</span>
726
727 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
728 // <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;
729 // <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;
730 // <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>
731 template &lt;class A,class B&gt;
732 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
733 <span class="RenoLink"><a href="operator_minus_mat_mat_.html">operator-</a></span>( A const &amp; a, B const &amp; b );</span>
734
735 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
736 // <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;
737 // <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;
738 // <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>
739 template &lt;class A,class B&gt;
740 A &amp; <span class="RenoLink"><a href="operator_add_mat_mat_.html">operator+=</a></span>( A &amp; a, B const &amp; b );</span>
741
742 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
743 // <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;
744 // <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;
745 // <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>
746 template &lt;class A,class B&gt;
747 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
748 <span class="RenoLink"><a href="operator_plus_mat_mat_.html">operator+</a></span>( A const &amp; a, B const &amp; b );</span>
749
750 <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
751 template &lt;class A,class B&gt;
752 A &amp; <span class="RenoLink"><a href="operator_div_eq_mat_scalar_.html">operator/=</a></span>( A &amp; a, B b );</span>
753
754 <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
755 template &lt;class A,class B&gt;
756 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
757 <span class="RenoLink"><a href="operator_over_mat_scalar_.html">operator/</a></span>( A const &amp; a, B b );</span>
758
759 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
760 // <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;
761 // <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;
762 // <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;
763 // <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>
764 template &lt;class A,class B&gt;
765 A &amp; <span class="RenoLink"><a href="operator_mul_eq_mat_mat_.html">operator*=</a></span>( A &amp; a, B const &amp; b );</span>
766
767 <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
768 template &lt;class A,class B&gt;
769 A &amp; <span class="RenoLink"><a href="operator_mul_eq_mat_scalar_.html">operator*=</a></span>( A &amp; a, B b );</span>
770
771 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
772 // <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;
773 // <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>
774 template &lt;class A,class B&gt;
775 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
776 <span class="RenoLink"><a href="operator_times_mat_mat_.html">operator*</a></span>( A const &amp; a, B const &amp; b );</span>
777
778 <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
779 template &lt;class A,class B&gt;
780 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
781 <span class="RenoLink"><a href="operator_times_mat_scalar_.html">operator*</a></span>( A const &amp; a, B b );</span>
782
783 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
784 // <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;
785 // <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;
786 // <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>
787 template &lt;class A,class B&gt;
788 bool <span class="RenoLink"><a href="operator_eq_mat_mat_.html">operator==</a></span>( A const &amp; a, B const &amp; b );</span>
789
790 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
791 // <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;
792 // <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;
793 // <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>
794 template &lt;class A,class B&gt;
795 bool <span class="RenoLink"><a href="operator_not_eq_mat_mat_.html">operator!=</a></span>( A const &amp; a, B const &amp; b );</span>
796
797 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
798 // <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;
799 // <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;
800 // <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>
801 template &lt;class A,class B,class Cmp&gt;
802 bool <span class="RenoLink"><a href="cmp_mat_mat_.html">cmp</a></span>( A const &amp; a, B const &amp; b, Cmp pred );</span>
803
804 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
805 // <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
806 // <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>
807
808 template &lt;class A,class B&gt;
809 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
810 <span class="RenoLink"><a href="inverse_mat_.html">inverse</a></span>( A const &amp; a, B det );
811
812 template &lt;class A&gt;
813 typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>&lt;A&gt;::type
814 <span class="RenoLink"><a href="inverse_mat_.html">inverse</a></span>( A const &amp; a );</span>
815
816 <span class="RenoIncludeSPAN">template &lt;class T,int D&gt;
817 -unspecified-return-type- <span class="RenoLink"><a href="zero_mat.html">zero_mat</a></span>();
818
819 template &lt;class T,int R,int C&gt;
820 -unspecified-return-type- <span class="RenoLink"><a href="zero_mat.html">zero_mat</a></span>();</span>
821
822 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
823 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value
824 template &lt;class A&gt;
825 void <span class="RenoLink"><a href="set_zero_mat_.html">set_zero</a></span>( A &amp; a );</span>
826
827 <span class="RenoIncludeSPAN">template &lt;class S,int D&gt;
828 -unspecified-return-type- <span class="RenoLink"><a href="identity_mat.html">identity_mat</a></span>();</span>
829
830 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
831 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp;
832 // <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>
833 template &lt;class A&gt;
834 void <span class="RenoLink"><a href="set_identity_mat_.html">set_identity</a></span>( A &amp; a );</span>
835
836 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
837 // <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
838 template &lt;int Dim,class A,class Angle&gt;
839 -unspecified-return-type
840 <span class="RenoLink"><a href="rot_mat.html">rot_mat</a></span>( A const &amp; axis, Angle angle );</span>
841
842 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
843 // <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;
844 // <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;
845 // <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
846 template &lt;class A&gt;
847 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>
848
849 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
850 // <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;
851 // <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;
852 // <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
853 template &lt;class A,class B&gt;
854 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>
855
856 <span class="RenoIncludeSPAN">template &lt;int Dim,class Angle&gt;
857 -unspecified-return-type- <span class="RenoLink"><a href="rotx_mat_scalar_.html">rotx_mat</a></span>( Angle const &amp; angle );</span>
858
859 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
860 // <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;
861 // <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>
862 template &lt;class A&gt;
863 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>
864
865 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
866 // <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;
867 // <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>
868 template &lt;class A&gt;
869 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>
870
871 <span class="RenoIncludeSPAN">template &lt;int Dim,class Angle&gt;
872 -unspecified-return-type- <span class="RenoLink"><a href="roty_mat_scalar_.html">roty_mat</a></span>( Angle const &amp; angle );</span>
873
874 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
875 // <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;
876 // <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>
877 template &lt;class A&gt;
878 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>
879
880 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
881 // <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;
882 // <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>
883 template &lt;class A&gt;
884 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>
885
886 <span class="RenoIncludeSPAN">template &lt;int Dim,class Angle&gt;
887 -unspecified-return-type- <span class="RenoLink"><a href="rotz_mat_scalar_.html">rotz_mat</a></span>( Angle const &amp; angle );</span>
888
889 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
890 // <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;
891 // <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>
892 template &lt;class A&gt;
893 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>
894
895 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
896 // <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;
897 // <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>
898 template &lt;class A&gt;
899 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>
900
901 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
902 // <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>
903 template &lt;class A&gt;
904 <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>
905 <span class="RenoLink"><a href="determinant.html">determinant</a></span>( A const &amp; a );</span>
906
907 <span class="RenoIncludeSPAN">template &lt;class T&gt;
908 -unspecified-return-type
909 <span class="RenoLink"><a href="perspective_lh.html">perspective_lh</a></span>( T fov_y, T aspect, T zn, T zf );</span>
910
911 <span class="RenoIncludeSPAN">template &lt;class T&gt;
912 -unspecified-return-type
913 <span class="RenoLink"><a href="perspective_rh.html">perspective_rh</a></span>( T fov_y, T aspect, T zn, T zf );</span>
914
915 <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
916 template &lt;class A&gt;
917 -unspecified-return-type- <span class="RenoLink"><a href="mref.html">mref</a></span>( A &amp; a );</span>
918
919 <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
920 template &lt;class Scalar,class A&gt;
921 -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_mat_.html">scalar_cast</a></span>( A const &amp; a );</span></span></span>
922
923
924
925<span class="RenoIncludeSPAN"> //*** Quaternion-Vector operations ***
926
927 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
928 // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value &amp;&amp;
929 // <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
930 template &lt;class A,class B&gt;
931 typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>&lt;A,B,3&gt;::type
932 <span class="RenoLink"><a href="operator_times_mat_vec_.html">operator*</a></span>( A const &amp; a, B const &amp; b );</span></span></span>
933
934
935
936<span class="RenoIncludeSPAN"> //*** Vector-Matrix operations ***
937
938 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
939 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
940 // <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="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>
941 template &lt;class A,class B&gt;
942 typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</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>&gt;::type
943 <span class="RenoLink"><a href="operator_times_mat_vec_.html">operator*</a></span>( A const &amp; a, B const &amp; b );</span>
944
945 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
946 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
947 // <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>==4 &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_cols.html">cols</a></span>==4 &amp;&amp;
948 // <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
949 template &lt;class A,class B&gt;
950 <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>&lt;A,B,3&gt; &gt;::type
951 <span class="RenoLink"><a href="transform_vector.html">transform_vector</a></span>( A const &amp; a, B const &amp; b );</span>
952
953 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
954 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp;
955 // <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>==4 &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_cols.html">cols</a></span>==4 &amp;&amp;
956 // <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
957 template &lt;class A,class B&gt;
958 <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>&lt;A,B,3&gt; &gt;::type
959 <span class="RenoLink"><a href="transform_point.html">transform_point</a></span>( A const &amp; a, B const &amp; b );</span></span></span>
960
961
962
963<span class="RenoIncludeSPAN"> //*** Matrix-to-matrix view proxies ***
964
965 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;int R&gt;
966 -unspecified-return-type- <span class="RenoLink"><a href="del_row.html">del_row</a></span>();</span>
967
968 <span class="RenoIncludeSPAN">template &lt;int C&gt;
969 -unspecified-return-type- <span class="RenoLink"><a href="del_col.html">del_col</a></span>();</span>
970
971 <span class="RenoIncludeSPAN">template &lt;int R,int C&gt;
972 -unspecified-return-type- <span class="RenoLink"><a href="del_row_col.html">del_row_col</a></span>();</span>
973
974 <span class="RenoIncludeSPAN">template &lt;int R&gt;
975 -unspecified-return-type- <span class="RenoLink"><a href="neg_row.html">neg_row</a></span>();</span>
976
977 <span class="RenoIncludeSPAN">template &lt;int C&gt;
978 -unspecified-return-type- <span class="RenoLink"><a href="neg_col.html">neg_col</a></span>();</span>
979
980 <span class="RenoIncludeSPAN">template &lt;int R1,int R2&gt;
981 -unspecified-return-type- <span class="RenoLink"><a href="swap_rows.html">swap_rows</a></span>();</span>
982
983 <span class="RenoIncludeSPAN">template &lt;int C1,int C2&gt;
984 -unspecified-return-type- <span class="RenoLink"><a href="swap_cols.html">swap_cols</a></span>();</span>
985
986 <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink"><a href="transposed.html">transposed</a></span>();</span></span></span>
987
988
989
990<span class="RenoIncludeSPAN"> //*** Vector-to-matrix view proxies ***
991
992 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
993 template &lt;iclass A&gt;
994 -unspecified-return-type- <span class="RenoLink"><a href="col_mat.html">col_mat</a></span>( A &amp; a );</span>
995
996 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
997 template &lt;iclass A&gt;
998 -unspecified-return-type- <span class="RenoLink"><a href="row_mat.html">row_mat</a></span>( A &amp; a );</span>
999
1000 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
1001 template &lt;iclass A&gt;
1002 -unspecified-return-type- <span class="RenoLink"><a href="translation_mat.html">translation_mat</a></span>( A &amp; a );</span>
1003
1004 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;A&gt;::value
1005 template &lt;iclass A&gt;
1006 -unspecified-return-type- <span class="RenoLink"><a href="diag_mat.html">diag_mat</a></span>( A &amp; a );</span></span></span>
1007
1008
1009
1010<span class="RenoIncludeSPAN"> //*** Matrix-to-vector view proxies ***
1011
1012 <span class="RenoIncludeSPAN"><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
1013 template &lt;int C,class A&gt;
1014 -unspecified-return-type- <span class="RenoLink"><a href="col.html">col</a></span>( A &amp; a );</span>
1015
1016 <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
1017 template &lt;int C,class A&gt;
1018 -unspecified-return-type- <span class="RenoLink"><a href="row.html">row</a></span>( A &amp; a );</span>
1019
1020 <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
1021 template &lt;class A&gt;
1022 -unspecified-return-type- <span class="RenoLink"><a href="diag.html">diag</a></span>( A &amp; a );</span>
1023
1024 <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>:
1025 // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp;
1026 // <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; <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
1027 template &lt;class A&gt;
1028 -unspecified-return-type- <span class="RenoLink"><a href="translation.html">translation</a></span>( A &amp; a );</span></span></span>
1029
1030
1031
1032<span class="RenoIncludeSPAN"> //*** Generic programming utilities ***
1033
1034 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class Q&gt;
1035 struct <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>
1036 {
1037 typedef Q type;
1038 };</span>
1039
1040 <span class="RenoIncludeSPAN">template &lt;class A,class B&gt;
1041 struct <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>
1042 {
1043 typedef /*unspecified*/ type;
1044 };</span></span>
1045
1046 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;
1047 class V,
1048 int Dim=<span class="RenoLink"><a href="vec_traits_Vector_dim.html">vec_traits&lt;Vector&gt;::dim</a></span>&gt;
1049 struct <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span>
1050 {
1051 typedef /*unspecified*/ type;
1052 };</span>
1053
1054 <span class="RenoIncludeSPAN">template &lt;class A,class B,int Dim&gt;
1055 struct <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span>
1056 {
1057 typedef /*unspecified*/ type;
1058 };</span></span>
1059
1060 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;
1061 class M,
1062 int Rows=<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">mat_traits&lt;Matrix&gt;::rows</a></span>,
1063 int Cols=<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">mat_traits&lt;Matrix&gt;::cols</a></span>&gt;
1064 struct <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span>
1065 {
1066 typedef /*unspecified*/ type;
1067 };</span>
1068
1069 <span class="RenoIncludeSPAN">template &lt;class A,class B,int Rows,int Cols&gt;
1070 struct <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span>
1071 {
1072 typedef /*unspecified*/ type;
1073 };</span></span>
1074
1075 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class A,class B&gt;
1076 struct <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span>
1077 {
1078 typedef typename impl&lt;A,B&gt;::type type;
1079 };</span></span>
1080
1081 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class Scalar&gt;
1082 struct <span class="RenoLink"><a href="scalar_traits.html">scalar_traits</a></span>
1083 {
1084 <span class="RenoLink"><a href="BOOST_QVM_INLINE_CRITICAL.html">BOOST_QVM_INLINE_CRITICAL</a></span>
1085 static Scalar value( int v )
1086 {
1087 return Scalar(v);
1088 }
1089 };</span>
1090
1091 <span class="RenoIncludeSPAN">template &lt;class T&gt;
1092 struct <span class="RenoLink"><a href="scalar.html">scalar</a></span>
1093 {
1094 typedef /*exact definition unspecified*/ type;
1095 };</span></span></span>
1096
1097
1098
1099<span class="RenoIncludeSPAN"> //*** Exception types ***
1100
1101 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct <span class="RenoLink"><a href="error.html">error</a></span>:
1102 virtual boost::exception,
1103 virtual std::exception
1104 {
1105 };</span>
1106
1107 <span class="RenoIncludeSPAN">struct <span class="RenoLink"><a href="zero_determinant_error.html">zero_determinant_error</a></span>: virtual <span class="RenoLink"><a href="error.html">error</a></span> { };</span>
1108 <span class="RenoIncludeSPAN">struct <span class="RenoLink"><a href="zero_magnitude_error.html">zero_magnitude_error</a></span>: virtual <span class="RenoLink"><a href="error.html">error</a></span> { };</span></span></span>
1109 }
1110
1111}
1112
1113<span class="RenoIncludeSPAN">//*** Macros ***
1114
1115<span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span>
1116#define <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span> /*platform-specific*/
1117#endif</span>
1118
1119<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE.html">BOOST_QVM_INLINE</a></span>
1120#define <span class="RenoLink"><a href="BOOST_QVM_INLINE.html">BOOST_QVM_INLINE</a></span> inline
1121#endif</span>
1122
1123<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_TRIVIAL.html">BOOST_QVM_INLINE_TRIVIAL</a></span>
1124#define <span class="RenoLink"><a href="BOOST_QVM_INLINE_TRIVIAL.html">BOOST_QVM_INLINE_TRIVIAL</a></span> <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span>
1125#endif</span>
1126
1127<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_CRITICAL.html">BOOST_QVM_INLINE_CRITICAL</a></span>
1128#define <span class="RenoLink"><a href="BOOST_QVM_INLINE_CRITICAL.html">BOOST_QVM_INLINE_CRITICAL</a></span> <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span>
1129#endif</span>
1130
1131<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_OPERATIONS.html">BOOST_QVM_INLINE_OPERATIONS</a></span>
1132#define <span class="RenoLink"><a href="BOOST_QVM_INLINE_OPERATIONS.html">BOOST_QVM_INLINE_OPERATIONS</a></span> <span class="RenoLink"><a href="BOOST_QVM_INLINE.html">BOOST_QVM_INLINE</a></span>
1133#endif</span>
1134
1135<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_RECURSION.html">BOOST_QVM_INLINE_RECURSION</a></span>
1136#define <span class="RenoLink"><a href="BOOST_QVM_INLINE_RECURSION.html">BOOST_QVM_INLINE_RECURSION</a></span> <span class="RenoLink"><a href="BOOST_QVM_INLINE_OPERATIONS.html">BOOST_QVM_INLINE_OPERATIONS</a></span>
1137#endif</span></span>
1138
1139<span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_ASSERT.html">BOOST_QVM_ASSERT</a></span>
1140#include &lt;boost/assert.hpp&gt;
1141#define <span class="RenoLink"><a href="BOOST_QVM_ASSERT.html">BOOST_QVM_ASSERT</a></span> BOOST_ASSERT
1142#endif</span></span>
1143
1144<span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_STATIC_ASSERT.html">BOOST_QVM_STATIC_ASSERT</a></span>
1145#include &lt;boost/static_assert.hpp&gt;
1146#define <span class="RenoLink"><a href="BOOST_QVM_STATIC_ASSERT.html">BOOST_QVM_STATIC_ASSERT</a></span> BOOST_STATIC_ASSERT
1147#endif</span></span>
1148
1149<span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_THROW_EXCEPTION.html">BOOST_QVM_THROW_EXCEPTION</a></span>
1150#include <span class="RenoLink"><a href="www.boost.org/doc/libs/release/libs/exception/doc/boost_throw_exception_hpp.html">&lt;boost/throw_exception.hpp&gt;</a></span>
1151#define <span class="RenoLink"><a href="BOOST_QVM_THROW_EXCEPTION.html">BOOST_QVM_THROW_EXCEPTION</a></span> <span class="RenoLink"><a href="http://www.boost.org/doc/libs/release/libs/exception/doc/BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span>
1152#endif</span></span></span>
1153</pre>
1154</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
1155See also: <span class="RenoPageList"><a href="index.html">Boost QVM</a></span>
1156</div>
1157<!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. -->
1158<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->
1159<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
1160<div id="footer">
1161<p>
1162<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>
1163<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>
1164<small>Copyright (c) 2008-2016 by Emil Dotchevski and Reverge Studios, Inc.<br/>
1165Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License, Version 1.0</a>.</small>
1166</p>
1167</div>
1168</div>
1169</div>
1170</div>
1171</body>
1172</html>