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'
>
5 <meta http-equiv='Content-Type' content='text/html; charset=utf-
8'
/>
6 <title>boost/qvm/mat_operations.hpp
</title>
7 <link href='reno.css' type='text/css' rel='stylesheet'
/>
14 <h1>QVM: Quaternions, Vectors, Matrices
</h1>
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>boost/qvm/mat_operations.hpp
</h3>
21 <p>This header defines all available function overloads that operate on matrix objects.
</p>
23 <div class=
"RenoIncludeDIV"><p><span class=
"RenoEscape">#<!--<wiki>`#</wiki>--></span>include
<<span class=
"RenoLink">boost/qvm/mat_operations.hpp
</span>></p>
26 namespace
<span class=
"RenoLink"><a href=
"qvm.html">qvm
</a></span>
28 <span class=
"RenoIncludeSPAN"> <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
29 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
30 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
31 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
32 template
<class A,class B
>
33 A
& <span class=
"RenoLink"><a href=
"assign_mat_mat_.html">assign
</a></span>( A
& a, B const
& b );
</span>
35 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
36 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><R
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&&
37 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><R
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
38 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><R
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
39 template
<class R,class A
>
40 R
<span class=
"RenoLink"><a href=
"convert_to_mat_.html">convert_to
</a></span>( A const
& a );
</span>
42 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
43 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
44 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
45 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
46 template
<class A,class B
>
47 A
& <span class=
"RenoLink"><a href=
"operator_sub_eq_mat_mat_.html">operator-=
</a></span>( A
& a, B const
& b );
</span>
49 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
50 template
<class A
>
51 typename
<span class=
"RenoLink"><a href=
"deduce_mat.html">deduce_mat
</a></span><A
>::type
52 <span class=
"RenoLink"><a href=
"operator_minus_mat_.html">operator-
</a></span>( A const
& a );
</span>
54 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
55 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
56 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
57 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
58 template
<class A,class B
>
59 typename
<span class=
"RenoLink"><a href=
"deduce_mat2.html">deduce_mat2
</a></span><A,B,
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>>::type
60 <span class=
"RenoLink"><a href=
"operator_minus_mat_mat_.html">operator-
</a></span>( A const
& a, B const
& b );
</span>
62 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
63 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
64 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
65 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
66 template
<class A,class B
>
67 A
& <span class=
"RenoLink"><a href=
"operator_add_mat_mat_.html">operator+=
</a></span>( A
& a, B const
& b );
</span>
69 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
70 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
71 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
72 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
73 template
<class A,class B
>
74 typename
<span class=
"RenoLink"><a href=
"deduce_mat2.html">deduce_mat2
</a></span><A,B,
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>>::type
75 <span class=
"RenoLink"><a href=
"operator_plus_mat_mat_.html">operator+
</a></span>( A const
& a, B const
& b );
</span>
77 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_scalar.html">is_scalar
</a></span><B
>::value
78 template
<class A,class B
>
79 A
& <span class=
"RenoLink"><a href=
"operator_div_eq_mat_scalar_.html">operator/=
</a></span>( A
& a, B b );
</span>
81 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_scalar.html">is_scalar
</a></span><B
>::value
82 template
<class A,class B
>
83 typename
<span class=
"RenoLink"><a href=
"deduce_mat.html">deduce_mat
</a></span><A
>::type
84 <span class=
"RenoLink"><a href=
"operator_over_mat_scalar_.html">operator/
</a></span>( A const
& a, B b );
</span>
86 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
87 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
88 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span> &&
89 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
90 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
91 template
<class A,class B
>
92 A
& <span class=
"RenoLink"><a href=
"operator_mul_eq_mat_mat_.html">operator*=
</a></span>( A
& a, B const
& b );
</span>
94 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_scalar.html">is_scalar
</a></span><B
>::value
95 template
<class A,class B
>
96 A
& <span class=
"RenoLink"><a href=
"operator_mul_eq_mat_scalar_.html">operator*=
</a></span>( A
& a, B b );
</span>
98 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
99 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
100 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>
101 template
<class A,class B
>
102 typename
<span class=
"RenoLink"><a href=
"deduce_mat2.html">deduce_mat2
</a></span><A,B,
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>>::type
103 <span class=
"RenoLink"><a href=
"operator_times_mat_mat_.html">operator*
</a></span>( A const
& a, B const
& b );
</span>
105 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_scalar.html">is_scalar
</a></span><B
>::value
106 template
<class A,class B
>
107 typename
<span class=
"RenoLink"><a href=
"deduce_mat.html">deduce_mat
</a></span><A
>::type
108 <span class=
"RenoLink"><a href=
"operator_times_mat_scalar_.html">operator*
</a></span>( A const
& a, B b );
</span>
110 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
111 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
112 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
113 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
114 template
<class A,class B
>
115 bool
<span class=
"RenoLink"><a href=
"operator_eq_mat_mat_.html">operator==
</a></span>( A const
& a, B const
& b );
</span>
117 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
118 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
119 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
120 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
121 template
<class A,class B
>
122 bool
<span class=
"RenoLink"><a href=
"operator_not_eq_mat_mat_.html">operator!=
</a></span>( A const
& a, B const
& b );
</span>
124 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
125 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><B
>::value
&&
126 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span> &&
127 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><B
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
128 template
<class A,class B,class Cmp
>
129 bool
<span class=
"RenoLink"><a href=
"cmp_mat_mat_.html">cmp
</a></span>( A const
& a, B const
& b, Cmp pred );
</span>
131 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
132 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"is_scalar.html">is_scalar
</a></span><B
>::value
133 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
135 template
<class A,class B
>
136 typename
<span class=
"RenoLink"><a href=
"deduce_mat.html">deduce_mat
</a></span><A
>::type
137 <span class=
"RenoLink"><a href=
"inverse_mat_.html">inverse
</a></span>( A const
& a, B det );
139 template
<class A
>
140 typename
<span class=
"RenoLink"><a href=
"deduce_mat.html">deduce_mat
</a></span><A
>::type
141 <span class=
"RenoLink"><a href=
"inverse_mat_.html">inverse
</a></span>( A const
& a );
</span>
143 <span class=
"RenoIncludeSPAN">template
<class T,int D
>
144 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"zero_mat.html">zero_mat
</a></span>();
146 template
<class T,int R,int C
>
147 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"zero_mat.html">zero_mat
</a></span>();
</span>
149 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
150 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
151 template
<class A
>
152 void
<span class=
"RenoLink"><a href=
"set_zero_mat_.html">set_zero
</a></span>( A
& a );
</span>
154 <span class=
"RenoIncludeSPAN">template
<class S,int D
>
155 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"identity_mat.html">identity_mat
</a></span>();
</span>
157 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
158 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&&
159 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>
160 template
<class A
>
161 void
<span class=
"RenoLink"><a href=
"set_identity_mat_.html">set_identity
</a></span>( A
& a );
</span>
163 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
164 //
<span class=
"RenoLink"><a href=
"is_vec.html">is_vec
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"vec_traits.html">vec_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"vec_traits_Vector_dim.html">dim
</a></span>==
3
165 template
<int Dim,class A,class Angle
>
166 -unspecified-return-type
167 <span class=
"RenoLink"><a href=
"rot_mat.html">rot_mat
</a></span>( A const
& axis, Angle angle );
</span>
169 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
170 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
171 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span> &&
172 //
<span class=
"RenoLink"><a href=
"is_vec.html">is_vec
</a></span><B
>::value
&& <span class=
"RenoLink"><a href=
"vec_traits.html">vec_traits
</a></span><B
>::
<span class=
"RenoLink"><a href=
"vec_traits_Vector_dim.html">dim
</a></span>==
3
173 template
<class A
>
174 void
<span class=
"RenoLink"><a href=
"set_rot_mat_vec_scalar_.html">set_rot
</a></span>( A
& a, B const
& axis, typename
<span class=
"RenoLink"><a href=
"vec_traits.html">vec_traits
</a></span><B
>::
<span class=
"RenoLink"><a href=
"vec_traits_V_scalar_type.html">scalar_type
</a></span> angle );
</span>
176 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
177 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
178 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span> &&
179 //
<span class=
"RenoLink"><a href=
"is_vec.html">is_vec
</a></span><B
>::value
&& <span class=
"RenoLink"><a href=
"vec_traits.html">vec_traits
</a></span><B
>::
<span class=
"RenoLink"><a href=
"vec_traits_Vector_dim.html">dim
</a></span>==
3
180 template
<class A,class B
>
181 void
<span class=
"RenoLink"><a href=
"rotate_mat_vec_scalar_.html">rotate
</a></span>( A
& a, B const
& axis, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
183 <span class=
"RenoIncludeSPAN">template
<int Dim,class Angle
>
184 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"rotx_mat_scalar_.html">rotx_mat
</a></span>( Angle const
& angle );
</span>
186 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
187 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
188 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
189 template
<class A
>
190 void
<span class=
"RenoLink"><a href=
"set_rotx_mat_scalar_.html">set_rotx
</a></span>( A
& a, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
192 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
193 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
194 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
195 template
<class A
>
196 void
<span class=
"RenoLink"><a href=
"rotate_x_mat_scalar_.html">rotate_x
</a></span>( A
& a, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
198 <span class=
"RenoIncludeSPAN">template
<int Dim,class Angle
>
199 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"roty_mat_scalar_.html">roty_mat
</a></span>( Angle const
& angle );
</span>
201 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
202 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
203 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
204 template
<class A
>
205 void
<span class=
"RenoLink"><a href=
"set_roty_mat_scalar_.html">set_roty
</a></span>( A
& a, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
207 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
208 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
209 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
210 template
<class A
>
211 void
<span class=
"RenoLink"><a href=
"rotate_y_mat_scalar_.html">rotate_y
</a></span>( A
& a, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
213 <span class=
"RenoIncludeSPAN">template
<int Dim,class Angle
>
214 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"rotz_mat_scalar_.html">rotz_mat
</a></span>( Angle const
& angle );
</span>
216 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
217 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
218 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
219 template
<class A
>
220 void
<span class=
"RenoLink"><a href=
"set_rotz_mat_scalar_.html">set_rotz
</a></span>( A
& a, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
222 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
223 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_rows.html">rows
</a></span>>=
3 &&
224 //
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
225 template
<class A
>
226 void
<span class=
"RenoLink"><a href=
"rotate_z_mat_scalar_.html">rotate_z
</a></span>( A
& a, typename
<span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span> angle );
</span>
228 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
229 //
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
&& <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<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><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_Matrix_cols.html">cols
</a></span>
230 template
<class A
>
231 <span class=
"RenoLink"><a href=
"mat_traits.html">mat_traits
</a></span><A
>::
<span class=
"RenoLink"><a href=
"mat_traits_M_scalar_type.html">scalar_type
</a></span>
232 <span class=
"RenoLink"><a href=
"determinant.html">determinant
</a></span>( A const
& a );
</span>
234 <span class=
"RenoIncludeSPAN">template
<class T
>
235 -unspecified-return-type
236 <span class=
"RenoLink"><a href=
"perspective_lh.html">perspective_lh
</a></span>( T fov_y, T aspect, T zn, T zf );
</span>
238 <span class=
"RenoIncludeSPAN">template
<class T
>
239 -unspecified-return-type
240 <span class=
"RenoLink"><a href=
"perspective_rh.html">perspective_rh
</a></span>( T fov_y, T aspect, T zn, T zf );
</span>
242 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
243 template
<class A
>
244 -unspecified-return-type-
<span class=
"RenoLink"><a href=
"mref.html">mref
</a></span>( A
& a );
</span>
246 <span class=
"RenoIncludeSPAN">//Only
<span class=
"RenoLink"><a href=
"SFINAE_enable_if.html">enabled if
</a></span>:
<span class=
"RenoLink"><a href=
"is_mat.html">is_mat
</a></span><A
>::value
247 template
<class Scalar,class A
>
248 -unspecified-return_type-
<span class=
"RenoLink"><a href=
"scalar_cast_mat_.html">scalar_cast
</a></span>( A const
& a );
</span></span>
251 </div></div><div class=
"RenoAutoDIV"><div class=
"RenoHR"><hr/></div>
252 See also:
<span class=
"RenoPageList"><a href=
"assign_mat_mat_.html">assign(mat,mat)
</a> |
<a href=
"boost_qvm_mat_operations2_hpp.html">boost/qvm/mat_operations2.hpp
</a> |
<a href=
"boost_qvm_mat_operations3_hpp.html">boost/qvm/mat_operations3.hpp
</a> |
<a href=
"boost_qvm_mat_operations4_hpp.html">boost/qvm/mat_operations4.hpp
</a> |
<a href=
"boost_qvm_operations_hpp.html">boost/qvm/operations.hpp
</a> |
<a href=
"code_generator.html">Code Generator
</a> |
<a href=
"cmp_mat_mat_.html">cmp(mat,mat)
</a> |
<a href=
"convert_to_mat_.html">convert_to(mat)
</a> |
<a href=
"determinant.html">determinant
</a> |
<a href=
"identity_mat.html">identity_mat
</a> |
<a href=
"inverse_mat_.html">inverse(mat)
</a> |
<a href=
"mref.html">mref
</a> |
<a href=
"operator_not_eq_mat_mat_.html">operator!=(mat,mat)
</a> |
<a href=
"operator_times_mat_mat_.html">operator*(mat,mat)
</a> |
<a href=
"operator_times_mat_scalar_.html">operator*(mat,scalar)
</a> |
<a href=
"operator_mul_eq_mat_mat_.html">operator*=(mat,mat)
</a> |
<a href=
"operator_mul_eq_mat_scalar_.html">operator*=(mat,scalar)
</a> |
<a href=
"operator_plus_mat_mat_.html">operator+(mat,mat)
</a> |
<a href=
"operator_add_mat_mat_.html">operator+=(mat,mat)
</a> |
<a href=
"operator_minus_mat_.html">operator-(mat)
</a> |
<a href=
"operator_minus_mat_mat_.html">operator-(mat,mat)
</a> |
<a href=
"operator_sub_eq_mat_mat_.html">operator-=(mat,mat)
</a> |
<a href=
"operator_over_mat_scalar_.html">operator/(mat,scalar)
</a> |
<a href=
"operator_div_eq_mat_scalar_.html">operator/=(mat,scalar)
</a> |
<a href=
"operator_eq_mat_mat_.html">operator==(mat,mat)
</a> |
<a href=
"perspective_lh.html">perspective_lh
</a> |
<a href=
"perspective_rh.html">perspective_rh
</a> |
<a href=
"rot_mat.html">rot_mat
</a> |
<a href=
"rotate_mat_vec_scalar_.html">rotate(mat,vec,scalar)
</a> |
<a href=
"rotate_x_mat_scalar_.html">rotate_x(mat,scalar)
</a> |
<a href=
"rotate_y_mat_scalar_.html">rotate_y(mat,scalar)
</a> |
<a href=
"rotate_z_mat_scalar_.html">rotate_z(mat,scalar)
</a> |
<a href=
"rotx_mat_scalar_.html">rotx_mat(scalar)
</a> |
<a href=
"roty_mat_scalar_.html">roty_mat(scalar)
</a> |
<a href=
"rotz_mat_scalar_.html">rotz_mat(scalar)
</a> |
<a href=
"scalar_cast_mat_.html">scalar_cast(mat)
</a> |
<a href=
"set_identity_mat_.html">set_identity(mat)
</a> |
<a href=
"set_rot_mat_vec_scalar_.html">set_rot(mat,vec,scalar)
</a> |
<a href=
"set_rotx_mat_scalar_.html">set_rotx(mat,scalar)
</a> |
<a href=
"set_roty_mat_scalar_.html">set_roty(mat,scalar)
</a> |
<a href=
"set_rotz_mat_scalar_.html">set_rotz(mat,scalar)
</a> |
<a href=
"set_zero_mat_.html">set_zero(mat)
</a> |
<a href=
"zero_mat.html">zero_mat
</a></span>
254 <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. -->
255 <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->
256 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
259 <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>
260 <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>
261 <small>Copyright (c)
2008-
2016 by Emil Dotchevski and Reverge Studios, Inc.
<br/>
262 Distributed under the
<a href=
"http://www.boost.org/LICENSE_1_0.txt">Boost Software License, Version
1.0</a>.
</small>