Selaa lähdekoodia

Updated API doc for 1.0.2

Christophe 2 kuukautta sitten
vanhempi
sitoutus
5913e3f486
100 muutettua tiedostoa jossa 7257 lisäystä ja 6885 poistoa
  1. 82 82
      doc/api/a00002.html
  2. 75 75
      doc/api/a00002_source.html
  3. 2 2
      doc/api/a00005_source.html
  4. 2 2
      doc/api/a00008_source.html
  5. 4 4
      doc/api/a00011_source.html
  6. 736 731
      doc/api/a00014_source.html
  7. 2 2
      doc/api/a00017_source.html
  8. 178 110
      doc/api/a00020_source.html
  9. 2 2
      doc/api/a00023_source.html
  10. 193 33
      doc/api/a00026_source.html
  11. 31 232
      doc/api/a00029_source.html
  12. 297 1150
      doc/api/a00032_source.html
  13. 1159 67
      doc/api/a00035_source.html
  14. 67 14
      doc/api/a00038_source.html
  15. 18 179
      doc/api/a00041_source.html
  16. 6 6
      doc/api/a00044.html
  17. 148 131
      doc/api/a00044_source.html
  18. 6 6
      doc/api/a00047.html
  19. 117 119
      doc/api/a00047_source.html
  20. 6 6
      doc/api/a00050.html
  21. 129 135
      doc/api/a00050_source.html
  22. 6 6
      doc/api/a00053.html
  23. 140 156
      doc/api/a00053_source.html
  24. 6 6
      doc/api/a00056.html
  25. 155 138
      doc/api/a00056_source.html
  26. 6 6
      doc/api/a00059.html
  27. 134 139
      doc/api/a00059_source.html
  28. 6 6
      doc/api/a00062.html
  29. 74 74
      doc/api/a00062_source.html
  30. 6 6
      doc/api/a00065.html
  31. 143 160
      doc/api/a00065_source.html
  32. 6 6
      doc/api/a00068.html
  33. 182 177
      doc/api/a00068_source.html
  34. 6 6
      doc/api/a00071.html
  35. 179 297
      doc/api/a00071_source.html
  36. 6 6
      doc/api/a00074.html
  37. 264 358
      doc/api/a00074_source.html
  38. 6 6
      doc/api/a00077.html
  39. 339 365
      doc/api/a00077_source.html
  40. 6 6
      doc/api/a00080.html
  41. 404 453
      doc/api/a00080_source.html
  42. 7 42
      doc/api/a00083.html
  43. 495 49
      doc/api/a00083_source.html
  44. 125 0
      doc/api/a00086.html
  45. 49 130
      doc/api/a00086_source.html
  46. 0 264
      doc/api/a00089.html
  47. 126 225
      doc/api/a00089_source.html
  48. 196 6
      doc/api/a00092.html
  49. 246 26
      doc/api/a00092_source.html
  50. 6 18
      doc/api/a00095.html
  51. 28 15
      doc/api/a00095_source.html
  52. 12 24
      doc/api/a00098.html
  53. 10 22
      doc/api/a00098_source.html
  54. 24 9
      doc/api/a00101.html
  55. 23 8
      doc/api/a00101_source.html
  56. 9 15
      doc/api/a00104.html
  57. 7 13
      doc/api/a00104_source.html
  58. 15 9
      doc/api/a00107.html
  59. 14 8
      doc/api/a00107_source.html
  60. 9 15
      doc/api/a00110.html
  61. 7 13
      doc/api/a00110_source.html
  62. 15 9
      doc/api/a00113.html
  63. 14 8
      doc/api/a00113_source.html
  64. 9 15
      doc/api/a00116.html
  65. 7 13
      doc/api/a00116_source.html
  66. 15 12
      doc/api/a00119.html
  67. 14 11
      doc/api/a00119_source.html
  68. 12 24
      doc/api/a00122.html
  69. 10 22
      doc/api/a00122_source.html
  70. 24 9
      doc/api/a00125.html
  71. 23 8
      doc/api/a00125_source.html
  72. 9 15
      doc/api/a00128.html
  73. 7 13
      doc/api/a00128_source.html
  74. 15 9
      doc/api/a00131.html
  75. 14 8
      doc/api/a00131_source.html
  76. 9 15
      doc/api/a00134.html
  77. 7 13
      doc/api/a00134_source.html
  78. 15 9
      doc/api/a00137.html
  79. 14 8
      doc/api/a00137_source.html
  80. 9 15
      doc/api/a00140.html
  81. 7 13
      doc/api/a00140_source.html
  82. 15 12
      doc/api/a00143.html
  83. 14 11
      doc/api/a00143_source.html
  84. 12 24
      doc/api/a00146.html
  85. 10 22
      doc/api/a00146_source.html
  86. 24 12
      doc/api/a00149.html
  87. 23 11
      doc/api/a00149_source.html
  88. 12 24
      doc/api/a00152.html
  89. 10 22
      doc/api/a00152_source.html
  90. 24 9
      doc/api/a00155.html
  91. 23 8
      doc/api/a00155_source.html
  92. 9 15
      doc/api/a00158.html
  93. 7 13
      doc/api/a00158_source.html
  94. 15 9
      doc/api/a00161.html
  95. 14 8
      doc/api/a00161_source.html
  96. 9 15
      doc/api/a00164.html
  97. 7 13
      doc/api/a00164_source.html
  98. 15 9
      doc/api/a00167.html
  99. 14 8
      doc/api/a00167_source.html
  100. 9 15
      doc/api/a00170.html

+ 82 - 82
doc/api/a00002.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: common.hpp File Reference</title>
+<title>1.0.2 API documentation: common.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -73,7 +73,7 @@ $(function() {
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00002_source.html">Go to the source code of this file.</a></p>
@@ -81,160 +81,160 @@ $(function() {
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga439e60a72eadecfeda2df5449c613a64">abs</a> (genType x)</td></tr>
-<tr class="memdesc:ga439e60a72eadecfeda2df5449c613a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x.  <a href="a00803.html#ga439e60a72eadecfeda2df5449c613a64">More...</a><br /></td></tr>
+<tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">abs</a> (genType x)</td></tr>
+<tr class="memdesc:ga439e60a72eadecfeda2df5449c613a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x.  <a href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">More...</a><br /></td></tr>
 <tr class="separator:ga439e60a72eadecfeda2df5449c613a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x.  <a href="a00803.html#ga81d3abddd0ef0c8de579bc541ecadab6">More...</a><br /></td></tr>
+<tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x.  <a href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">More...</a><br /></td></tr>
 <tr class="separator:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:gafb9d2a645a23aca12d4d6de0104b7657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is greater than or equal to x.  <a href="a00803.html#gafb9d2a645a23aca12d4d6de0104b7657">More...</a><br /></td></tr>
+<tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gafb9d2a645a23aca12d4d6de0104b7657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is greater than or equal to x.  <a href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">More...</a><br /></td></tr>
 <tr class="separator:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga7cd77683da6361e297c56443fc70806d">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
-<tr class="memdesc:ga7cd77683da6361e297c56443fc70806d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.  <a href="a00803.html#ga7cd77683da6361e297c56443fc70806d">More...</a><br /></td></tr>
+<tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga7cd77683da6361e297c56443fc70806d">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
+<tr class="memdesc:ga7cd77683da6361e297c56443fc70806d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.  <a href="a00812.html#ga7cd77683da6361e297c56443fc70806d">More...</a><br /></td></tr>
 <tr class="separator:ga7cd77683da6361e297c56443fc70806d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gafba2e0674deb5953878d89483cd6323d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, T minVal, T maxVal)</td></tr>
-<tr class="memdesc:gafba2e0674deb5953878d89483cd6323d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.  <a href="a00803.html#gafba2e0674deb5953878d89483cd6323d">More...</a><br /></td></tr>
+<tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gafba2e0674deb5953878d89483cd6323d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, T minVal, T maxVal)</td></tr>
+<tr class="memdesc:gafba2e0674deb5953878d89483cd6323d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.  <a href="a00812.html#gafba2e0674deb5953878d89483cd6323d">More...</a><br /></td></tr>
 <tr class="separator:gafba2e0674deb5953878d89483cd6323d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</td></tr>
-<tr class="memdesc:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.  <a href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">More...</a><br /></td></tr>
+<tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</td></tr>
+<tr class="memdesc:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.  <a href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">More...</a><br /></td></tr>
 <tr class="separator:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00803.html#ga8a23e454d8ae48b8f6dfdaea4b756072">floatBitsToInt</a> (float v)</td></tr>
-<tr class="memdesc:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value.  <a href="a00803.html#ga8a23e454d8ae48b8f6dfdaea4b756072">More...</a><br /></td></tr>
+<tr class="memitem:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#ga8a23e454d8ae48b8f6dfdaea4b756072">floatBitsToInt</a> (float v)</td></tr>
+<tr class="memdesc:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value.  <a href="a00812.html#ga8a23e454d8ae48b8f6dfdaea4b756072">More...</a><br /></td></tr>
 <tr class="separator:ga8a23e454d8ae48b8f6dfdaea4b756072"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
-<tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, int, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value.  <a href="a00803.html#ga99f7d62f78ac5ea3b49bae715c9488ed">More...</a><br /></td></tr>
+<tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, int, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value.  <a href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">More...</a><br /></td></tr>
 <tr class="separator:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00803.html#ga1bbdafd513ece71856e66a8ab0ea10d1">floatBitsToUint</a> (float v)</td></tr>
-<tr class="memdesc:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value.  <a href="a00803.html#ga1bbdafd513ece71856e66a8ab0ea10d1">More...</a><br /></td></tr>
+<tr class="memitem:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#ga1bbdafd513ece71856e66a8ab0ea10d1">floatBitsToUint</a> (float v)</td></tr>
+<tr class="memdesc:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value.  <a href="a00812.html#ga1bbdafd513ece71856e66a8ab0ea10d1">More...</a><br /></td></tr>
 <tr class="separator:ga1bbdafd513ece71856e66a8ab0ea10d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
-<tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, uint, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value.  <a href="a00803.html#ga49418ba4c8a60fbbb5d57b705f3e26db">More...</a><br /></td></tr>
+<tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, uint, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value.  <a href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">More...</a><br /></td></tr>
 <tr class="separator:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is less then or equal to x.  <a href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">More...</a><br /></td></tr>
+<tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is less then or equal to x.  <a href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">More...</a><br /></td></tr>
 <tr class="separator:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
-<tr class="memdesc:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns a * b + c.  <a href="a00803.html#gad0f444d4b81cc53c3b6edf5aa25078c2">More...</a><br /></td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
+<tr class="memdesc:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns a * b + c.  <a href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">More...</a><br /></td></tr>
 <tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
-<tr class="memdesc:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x).  <a href="a00803.html#ga8ba89e40e55ae5cdf228548f9b7639c7">More...</a><br /></td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
+<tr class="memdesc:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x).  <a href="a00812.html#ga8ba89e40e55ae5cdf228548f9b7639c7">More...</a><br /></td></tr>
 <tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga2df623004f634b440d61e018d62c751b">fract</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga2df623004f634b440d61e018d62c751b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x).  <a href="a00803.html#ga2df623004f634b440d61e018d62c751b">More...</a><br /></td></tr>
+<tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga2df623004f634b440d61e018d62c751b">fract</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2df623004f634b440d61e018d62c751b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x).  <a href="a00812.html#ga2df623004f634b440d61e018d62c751b">More...</a><br /></td></tr>
 <tr class="separator:ga2df623004f634b440d61e018d62c751b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a> (genType x, int &amp;exp)</td></tr>
-<tr class="memdesc:gaddf5ef73283c171730e0bcc11833fa81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent)  <a href="a00803.html#gaddf5ef73283c171730e0bcc11833fa81">More...</a><br /></td></tr>
+<tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a> (genType x, int &amp;exp)</td></tr>
+<tr class="memdesc:gaddf5ef73283c171730e0bcc11833fa81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent)  <a href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">More...</a><br /></td></tr>
 <tr class="separator:gaddf5ef73283c171730e0bcc11833fa81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad780bbd088b64d823ad7049c42b157da"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00803.html#gad780bbd088b64d823ad7049c42b157da">intBitsToFloat</a> (int v)</td></tr>
-<tr class="memdesc:gad780bbd088b64d823ad7049c42b157da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.  <a href="a00803.html#gad780bbd088b64d823ad7049c42b157da">More...</a><br /></td></tr>
+<tr class="memitem:gad780bbd088b64d823ad7049c42b157da"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#gad780bbd088b64d823ad7049c42b157da">intBitsToFloat</a> (int v)</td></tr>
+<tr class="memdesc:gad780bbd088b64d823ad7049c42b157da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.  <a href="a00812.html#gad780bbd088b64d823ad7049c42b157da">More...</a><br /></td></tr>
 <tr class="separator:gad780bbd088b64d823ad7049c42b157da"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
-<tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a> (vec&lt; L, int, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.  <a href="a00803.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">More...</a><br /></td></tr>
+<tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a> (vec&lt; L, int, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.  <a href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">More...</a><br /></td></tr>
 <tr class="separator:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga2885587c23a106301f20443896365b62">isinf</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga2885587c23a106301f20443896365b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.  <a href="a00803.html#ga2885587c23a106301f20443896365b62">More...</a><br /></td></tr>
+<tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga2885587c23a106301f20443896365b62">isinf</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2885587c23a106301f20443896365b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.  <a href="a00812.html#ga2885587c23a106301f20443896365b62">More...</a><br /></td></tr>
 <tr class="separator:ga2885587c23a106301f20443896365b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga29ef934c00306490de837b4746b4e14d">isnan</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga29ef934c00306490de837b4746b4e14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.  <a href="a00803.html#ga29ef934c00306490de837b4746b4e14d">More...</a><br /></td></tr>
+<tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga29ef934c00306490de837b4746b4e14d">isnan</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga29ef934c00306490de837b4746b4e14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.  <a href="a00812.html#ga29ef934c00306490de837b4746b4e14d">More...</a><br /></td></tr>
 <tr class="separator:ga29ef934c00306490de837b4746b4e14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a> (genType const &amp;x, int const &amp;exp)</td></tr>
-<tr class="memdesc:gac3010e0a0c35a1b514540f2fb579c58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)  <a href="a00803.html#gac3010e0a0c35a1b514540f2fb579c58c">More...</a><br /></td></tr>
+<tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a> (genType const &amp;x, int const &amp;exp)</td></tr>
+<tr class="memdesc:gac3010e0a0c35a1b514540f2fb579c58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)  <a href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">More...</a><br /></td></tr>
 <tr class="separator:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gae02d42887fc5570451f880e3c624b9ac">max</a> (genType x, genType y)</td></tr>
-<tr class="memdesc:gae02d42887fc5570451f880e3c624b9ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x.  <a href="a00803.html#gae02d42887fc5570451f880e3c624b9ac">More...</a><br /></td></tr>
+<tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gae02d42887fc5570451f880e3c624b9ac">max</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:gae02d42887fc5570451f880e3c624b9ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x.  <a href="a00812.html#gae02d42887fc5570451f880e3c624b9ac">More...</a><br /></td></tr>
 <tr class="separator:gae02d42887fc5570451f880e3c624b9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga03e45d6e60d1c36edb00c52edeea0f31">max</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
-<tr class="memdesc:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x.  <a href="a00803.html#ga03e45d6e60d1c36edb00c52edeea0f31">More...</a><br /></td></tr>
+<tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga03e45d6e60d1c36edb00c52edeea0f31">max</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
+<tr class="memdesc:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x.  <a href="a00812.html#ga03e45d6e60d1c36edb00c52edeea0f31">More...</a><br /></td></tr>
 <tr class="separator:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gac1fec0c3303b572a6d4697a637213870">max</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
-<tr class="memdesc:gac1fec0c3303b572a6d4697a637213870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x.  <a href="a00803.html#gac1fec0c3303b572a6d4697a637213870">More...</a><br /></td></tr>
+<tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gac1fec0c3303b572a6d4697a637213870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x.  <a href="a00812.html#gac1fec0c3303b572a6d4697a637213870">More...</a><br /></td></tr>
 <tr class="separator:gac1fec0c3303b572a6d4697a637213870"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga6cf8098827054a270ee36b18e30d471d">min</a> (genType x, genType y)</td></tr>
-<tr class="memdesc:ga6cf8098827054a270ee36b18e30d471d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x.  <a href="a00803.html#ga6cf8098827054a270ee36b18e30d471d">More...</a><br /></td></tr>
+<tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga6cf8098827054a270ee36b18e30d471d">min</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga6cf8098827054a270ee36b18e30d471d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x.  <a href="a00812.html#ga6cf8098827054a270ee36b18e30d471d">More...</a><br /></td></tr>
 <tr class="separator:ga6cf8098827054a270ee36b18e30d471d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gaa7d015eba1f9f48519251f4abe69b14d">min</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
-<tr class="memdesc:gaa7d015eba1f9f48519251f4abe69b14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x.  <a href="a00803.html#gaa7d015eba1f9f48519251f4abe69b14d">More...</a><br /></td></tr>
+<tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaa7d015eba1f9f48519251f4abe69b14d">min</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
+<tr class="memdesc:gaa7d015eba1f9f48519251f4abe69b14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x.  <a href="a00812.html#gaa7d015eba1f9f48519251f4abe69b14d">More...</a><br /></td></tr>
 <tr class="separator:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
-<tr class="memdesc:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x.  <a href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">More...</a><br /></td></tr>
+<tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x.  <a href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">More...</a><br /></td></tr>
 <tr class="separator:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr class="memitem:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a> (genTypeT x, genTypeT y, genTypeU a)</td></tr>
-<tr class="memdesc:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="mdescLeft">&#160;</td><td class="mdescRight">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a.  <a href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">More...</a><br /></td></tr>
+<tr class="memitem:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a> (genTypeT x, genTypeT y, genTypeU a)</td></tr>
+<tr class="memdesc:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="mdescLeft">&#160;</td><td class="mdescRight">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a.  <a href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">More...</a><br /></td></tr>
 <tr class="separator:ga6b6e0c7ecb4a5b78f929566355bb7416"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
-<tr class="memdesc:ga9b197a452cd52db3c5c18bac72bd7798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus.  <a href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">More...</a><br /></td></tr>
+<tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga9b197a452cd52db3c5c18bac72bd7798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus.  <a href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">More...</a><br /></td></tr>
 <tr class="separator:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
-<tr class="memdesc:ga85e33f139b8db1b39b590a5713b9e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).  <a href="a00803.html#ga85e33f139b8db1b39b590a5713b9e679">More...</a><br /></td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
+<tr class="memdesc:ga85e33f139b8db1b39b590a5713b9e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).  <a href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">More...</a><br /></td></tr>
 <tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x.  <a href="a00803.html#gafa03aca8c4713e1cc892aa92ca135a7e">More...</a><br /></td></tr>
+<tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x.  <a href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">More...</a><br /></td></tr>
 <tr class="separator:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga76b81785045a057989a84d99aeeb1578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x.  <a href="a00803.html#ga76b81785045a057989a84d99aeeb1578">More...</a><br /></td></tr>
+<tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga76b81785045a057989a84d99aeeb1578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x.  <a href="a00812.html#ga76b81785045a057989a84d99aeeb1578">More...</a><br /></td></tr>
 <tr class="separator:ga76b81785045a057989a84d99aeeb1578"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga589807f35ad0a1d173762bfac3288929"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga589807f35ad0a1d173762bfac3288929"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga589807f35ad0a1d173762bfac3288929">sign</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga589807f35ad0a1d173762bfac3288929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.  <a href="a00803.html#ga589807f35ad0a1d173762bfac3288929">More...</a><br /></td></tr>
+<tr class="memitem:ga589807f35ad0a1d173762bfac3288929"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga589807f35ad0a1d173762bfac3288929">sign</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga589807f35ad0a1d173762bfac3288929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.  <a href="a00812.html#ga589807f35ad0a1d173762bfac3288929">More...</a><br /></td></tr>
 <tr class="separator:ga589807f35ad0a1d173762bfac3288929"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
-<tr class="memdesc:ga562edf7eca082cc5b7a0aaf180436daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1.  <a href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">More...</a><br /></td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
+<tr class="memdesc:ga562edf7eca082cc5b7a0aaf180436daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1.  <a href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">More...</a><br /></td></tr>
 <tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
-<tr class="memdesc:ga015a1261ff23e12650211aa872863cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType.  <a href="a00803.html#ga015a1261ff23e12650211aa872863cce">More...</a><br /></td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
+<tr class="memdesc:ga015a1261ff23e12650211aa872863cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType.  <a href="a00812.html#ga015a1261ff23e12650211aa872863cce">More...</a><br /></td></tr>
 <tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga8f9a911a48ef244b51654eaefc81c551">step</a> (T edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:ga8f9a911a48ef244b51654eaefc81c551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.  <a href="a00803.html#ga8f9a911a48ef244b51654eaefc81c551">More...</a><br /></td></tr>
+<tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga8f9a911a48ef244b51654eaefc81c551">step</a> (T edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga8f9a911a48ef244b51654eaefc81c551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.  <a href="a00812.html#ga8f9a911a48ef244b51654eaefc81c551">More...</a><br /></td></tr>
 <tr class="separator:ga8f9a911a48ef244b51654eaefc81c551"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a> (vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.  <a href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">More...</a><br /></td></tr>
+<tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a> (vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.  <a href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">More...</a><br /></td></tr>
 <tr class="separator:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
-<tr class="memdesc:gaf9375e3e06173271d49e6ffa3a334259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.  <a href="a00803.html#gaf9375e3e06173271d49e6ffa3a334259">More...</a><br /></td></tr>
+<tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaf9375e3e06173271d49e6ffa3a334259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.  <a href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">More...</a><br /></td></tr>
 <tr class="separator:gaf9375e3e06173271d49e6ffa3a334259"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac427a0b389f2c585269c36ccaee9c5ed"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00803.html#gac427a0b389f2c585269c36ccaee9c5ed">uintBitsToFloat</a> (uint v)</td></tr>
-<tr class="memdesc:gac427a0b389f2c585269c36ccaee9c5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.  <a href="a00803.html#gac427a0b389f2c585269c36ccaee9c5ed">More...</a><br /></td></tr>
+<tr class="memitem:gac427a0b389f2c585269c36ccaee9c5ed"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00812.html#gac427a0b389f2c585269c36ccaee9c5ed">uintBitsToFloat</a> (uint v)</td></tr>
+<tr class="memdesc:gac427a0b389f2c585269c36ccaee9c5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.  <a href="a00812.html#gac427a0b389f2c585269c36ccaee9c5ed">More...</a><br /></td></tr>
 <tr class="separator:gac427a0b389f2c585269c36ccaee9c5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
-<tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00803.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a> (vec&lt; L, uint, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga97f46b5f7b42fe44482e13356eb394ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.  <a href="a00803.html#ga97f46b5f7b42fe44482e13356eb394ae">More...</a><br /></td></tr>
+<tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a> (vec&lt; L, uint, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga97f46b5f7b42fe44482e13356eb394ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.  <a href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">More...</a><br /></td></tr>
 <tr class="separator:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 <dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
 
 <p class="definition">Definition in file <a class="el" href="a00002_source.html">common.hpp</a>.</p>

+ 75 - 75
doc/api/a00002_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: common.hpp Source File</title>
+<title>1.0.2 API documentation: common.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -80,173 +80,173 @@ $(function() {
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="a00803.html#ga439e60a72eadecfeda2df5449c613a64">   32</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00803.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(genType x);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">   32</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(genType x);</div>
 <div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
 <div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00803.html#ga81d3abddd0ef0c8de579bc541ecadab6">   43</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">   43</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
 <div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00803.html#ga589807f35ad0a1d173762bfac3288929">   54</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga589807f35ad0a1d173762bfac3288929">sign</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00812.html#ga589807f35ad0a1d173762bfac3288929">   54</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga589807f35ad0a1d173762bfac3288929">sign</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
 <div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">   65</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">   65</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
 <div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00803.html#gaf9375e3e06173271d49e6ffa3a334259">   77</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">   77</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
 <div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00803.html#gafa03aca8c4713e1cc892aa92ca135a7e">   92</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">   92</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
 <div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00803.html#ga76b81785045a057989a84d99aeeb1578">  106</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00812.html#ga76b81785045a057989a84d99aeeb1578">  106</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
 <div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00803.html#gafb9d2a645a23aca12d4d6de0104b7657">  118</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">  118</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
 <div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00803.html#ga8ba89e40e55ae5cdf228548f9b7639c7">  127</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#ga2df623004f634b440d61e018d62c751b">fract</a>(genType x);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00812.html#ga8ba89e40e55ae5cdf228548f9b7639c7">  127</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga2df623004f634b440d61e018d62c751b">fract</a>(genType x);</div>
 <div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
 <div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00803.html#ga2df623004f634b440d61e018d62c751b">  138</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga2df623004f634b440d61e018d62c751b">fract</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00812.html#ga2df623004f634b440d61e018d62c751b">  138</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga2df623004f634b440d61e018d62c751b">fract</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
 <div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(genType x, genType y);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(genType x, genType y);</div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
 <div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
 <div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">  156</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">  156</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
 <div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
 <div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00803.html#ga85e33f139b8db1b39b590a5713b9e679">  168</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType&amp; i);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">  168</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType&amp; i);</div>
 <div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
 <div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00803.html#ga6cf8098827054a270ee36b18e30d471d">  177</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(genType x, genType y);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00812.html#ga6cf8098827054a270ee36b18e30d471d">  177</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(genType x, genType y);</div>
 <div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
 <div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00803.html#gaa7d015eba1f9f48519251f4abe69b14d">  188</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00812.html#gaa7d015eba1f9f48519251f4abe69b14d">  188</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
 <div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
 <div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">  199</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">  199</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
 <div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
 <div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00803.html#gae02d42887fc5570451f880e3c624b9ac">  208</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00803.html#gac1fec0c3303b572a6d4697a637213870">max</a>(genType x, genType y);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00812.html#gae02d42887fc5570451f880e3c624b9ac">  208</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a>(genType x, genType y);</div>
 <div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
 <div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="a00803.html#ga03e45d6e60d1c36edb00c52edeea0f31">  219</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="a00812.html#ga03e45d6e60d1c36edb00c52edeea0f31">  219</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
 <div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
 <div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00803.html#gac1fec0c3303b572a6d4697a637213870">  230</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">  230</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
 <div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
 <div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="a00803.html#ga7cd77683da6361e297c56443fc70806d">  240</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(genType x, genType minVal, genType maxVal);</div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="a00812.html#ga7cd77683da6361e297c56443fc70806d">  240</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(genType x, genType minVal, genType maxVal);</div>
 <div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
 <div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00803.html#gafba2e0674deb5953878d89483cd6323d">  252</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T minVal, T maxVal);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00812.html#gafba2e0674deb5953878d89483cd6323d">  252</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T minVal, T maxVal);</div>
 <div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
 <div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">  264</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; minVal, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; maxVal);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">  264</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; minVal, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; maxVal);</div>
 <div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160; </div>
 <div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">  309</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genTypeT <a class="code" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">  309</a></span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR genTypeT <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
 <div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160; </div>
 <div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a);</div>
 <div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; </div>
 <div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U a);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U a);</div>
 <div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
 <div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="a00803.html#ga015a1261ff23e12650211aa872863cce">  322</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(genType edge, genType x);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="a00812.html#ga015a1261ff23e12650211aa872863cce">  322</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(genType edge, genType x);</div>
 <div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
 <div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="a00803.html#ga8f9a911a48ef244b51654eaefc81c551">  333</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(T edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="a00812.html#ga8f9a911a48ef244b51654eaefc81c551">  333</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(T edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160; </div>
 <div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">  344</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">  344</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
 <div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">  361</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">  361</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
 <div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div>
 <div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160; </div>
 <div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge0, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge0, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
 <div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="a00803.html#ga29ef934c00306490de837b4746b4e14d">  384</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00803.html#ga29ef934c00306490de837b4746b4e14d">isnan</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="a00812.html#ga29ef934c00306490de837b4746b4e14d">  384</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00812.html#ga29ef934c00306490de837b4746b4e14d">isnan</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
 <div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a00803.html#ga2885587c23a106301f20443896365b62">  399</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00803.html#ga2885587c23a106301f20443896365b62">isinf</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a00812.html#ga2885587c23a106301f20443896365b62">  399</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00812.html#ga2885587c23a106301f20443896365b62">isinf</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
 <div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
-<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="a00803.html#ga8a23e454d8ae48b8f6dfdaea4b756072">  407</a></span>&#160;        GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00803.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="a00812.html#ga8a23e454d8ae48b8f6dfdaea4b756072">  407</a></span>&#160;        GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(<span class="keywordtype">float</span> v);</div>
 <div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160; </div>
 <div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="a00803.html#ga99f7d62f78ac5ea3b49bae715c9488ed">  419</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, int, Q&gt; <a class="code" href="a00803.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">  419</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, int, Q&gt; <a class="code" href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160; </div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="a00803.html#ga1bbdafd513ece71856e66a8ab0ea10d1">  427</a></span>&#160;        GLM_FUNC_DECL uint <a class="code" href="a00803.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="a00812.html#ga1bbdafd513ece71856e66a8ab0ea10d1">  427</a></span>&#160;        GLM_FUNC_DECL uint <a class="code" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(<span class="keywordtype">float</span> v);</div>
 <div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; </div>
 <div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="a00803.html#ga49418ba4c8a60fbbb5d57b705f3e26db">  439</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, uint, Q&gt; <a class="code" href="a00803.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">  439</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, uint, Q&gt; <a class="code" href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
-<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="a00803.html#gad780bbd088b64d823ad7049c42b157da">  449</a></span>&#160;        GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00803.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(<span class="keywordtype">int</span> v);</div>
+<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="a00812.html#gad780bbd088b64d823ad7049c42b157da">  449</a></span>&#160;        GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(<span class="keywordtype">int</span> v);</div>
 <div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160; </div>
 <div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="a00803.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">  463</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00803.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">  463</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160; </div>
-<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="a00803.html#gac427a0b389f2c585269c36ccaee9c5ed">  473</a></span>&#160;        GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00803.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(uint v);</div>
+<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="a00812.html#gac427a0b389f2c585269c36ccaee9c5ed">  473</a></span>&#160;        GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(uint v);</div>
 <div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160; </div>
 <div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="a00803.html#ga97f46b5f7b42fe44482e13356eb394ae">  487</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00803.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(vec&lt;L, uint, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">  487</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(vec&lt;L, uint, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160; </div>
 <div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="a00803.html#gad0f444d4b81cc53c3b6edf5aa25078c2">  496</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span>&amp; a, genType <span class="keyword">const</span>&amp; b, genType <span class="keyword">const</span>&amp; c);</div>
+<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">  496</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span>&amp; a, genType <span class="keyword">const</span>&amp; b, genType <span class="keyword">const</span>&amp; c);</div>
 <div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160; </div>
 <div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="a00803.html#gaddf5ef73283c171730e0bcc11833fa81">  513</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(genType x, <span class="keywordtype">int</span>&amp; <a class="code" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">  513</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(genType x, <span class="keywordtype">int</span>&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
 <div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        </div>
 <div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt;&amp; <a class="code" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt;&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
 <div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160; </div>
 <div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="a00803.html#gac3010e0a0c35a1b514540f2fb579c58c">  530</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00803.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(genType <span class="keyword">const</span>&amp; x, <span class="keywordtype">int</span> <span class="keyword">const</span>&amp; <a class="code" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
+<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">  530</a></span>&#160;        GLM_FUNC_DECL genType <a class="code" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(genType <span class="keyword">const</span>&amp; x, <span class="keywordtype">int</span> <span class="keyword">const</span>&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
 <div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        </div>
 <div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00803.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
 <div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160; </div>
 <div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;}<span class="comment">//namespace glm</span></div>
 <div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160; </div>
 <div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="preprocessor">#include &quot;detail/func_common.inl&quot;</span></div>
 <div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160; </div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00803_html_ga6b6e0c7ecb4a5b78f929566355bb7416"><div class="ttname"><a href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="aa00803_html_ga29ef934c00306490de837b4746b4e14d"><div class="ttname"><a href="a00803.html#ga29ef934c00306490de837b4746b4e14d">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isnan(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
-<div class="ttc" id="aa00803_html_ga99f7d62f78ac5ea3b49bae715c9488ed"><div class="ttname"><a href="a00803.html#ga99f7d62f78ac5ea3b49bae715c9488ed">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, int, Q &gt; floatBitsToInt(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value.</div></div>
-<div class="ttc" id="aa00803_html_gaddf5ef73283c171730e0bcc11833fa81"><div class="ttname"><a href="a00803.html#gaddf5ef73283c171730e0bcc11833fa81">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType x, int &amp;exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two,...</div></div>
-<div class="ttc" id="aa00803_html_gafb9d2a645a23aca12d4d6de0104b7657"><div class="ttname"><a href="a00803.html#gafb9d2a645a23aca12d4d6de0104b7657">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; ceil(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x.</div></div>
-<div class="ttc" id="aa00803_html_ga9b197a452cd52db3c5c18bac72bd7798"><div class="ttname"><a href="a00803.html#ga9b197a452cd52db3c5c18bac72bd7798">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; mod(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Modulus.</div></div>
-<div class="ttc" id="aa00803_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00803.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &amp;i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
-<div class="ttc" id="aa00803_html_gaf4a5fc81619c7d3e8b22f53d4a098c7f"><div class="ttname"><a href="a00803.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; step(vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.</div></div>
-<div class="ttc" id="aa00803_html_ga81d3abddd0ef0c8de579bc541ecadab6"><div class="ttname"><a href="a00803.html#ga81d3abddd0ef0c8de579bc541ecadab6">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; abs(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns x if x &gt;= 0; otherwise, it returns -x.</div></div>
-<div class="ttc" id="aa00803_html_gac3010e0a0c35a1b514540f2fb579c58c"><div class="ttname"><a href="a00803.html#gac3010e0a0c35a1b514540f2fb579c58c">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &amp;x, int const &amp;exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp,...</div></div>
-<div class="ttc" id="aa00803_html_gaa0f2f12e9108b09e22a3f0b2008a0b5d"><div class="ttname"><a href="a00803.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; clamp(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="aa00803_html_ga97f46b5f7b42fe44482e13356eb394ae"><div class="ttname"><a href="a00803.html#ga97f46b5f7b42fe44482e13356eb394ae">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; uintBitsToFloat(vec&lt; L, uint, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
-<div class="ttc" id="aa00803_html_gac1fec0c3303b572a6d4697a637213870"><div class="ttname"><a href="a00803.html#gac1fec0c3303b572a6d4697a637213870">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; max(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if x &lt; y; otherwise, it returns x.</div></div>
-<div class="ttc" id="aa00803_html_ga31f49ef9e7d1beb003160c5e009b0c48"><div class="ttname"><a href="a00803.html#ga31f49ef9e7d1beb003160c5e009b0c48">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; min(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if y &lt; x; otherwise, it returns x.</div></div>
-<div class="ttc" id="aa00803_html_ga589807f35ad0a1d173762bfac3288929"><div class="ttname"><a href="a00803.html#ga589807f35ad0a1d173762bfac3288929">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; sign(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.</div></div>
-<div class="ttc" id="aa00803_html_ga2885587c23a106301f20443896365b62"><div class="ttname"><a href="a00803.html#ga2885587c23a106301f20443896365b62">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isinf(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
-<div class="ttc" id="aa00803_html_ga49418ba4c8a60fbbb5d57b705f3e26db"><div class="ttname"><a href="a00803.html#ga49418ba4c8a60fbbb5d57b705f3e26db">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, uint, Q &gt; floatBitsToUint(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value.</div></div>
-<div class="ttc" id="aa00803_html_ga2df623004f634b440d61e018d62c751b"><div class="ttname"><a href="a00803.html#ga2df623004f634b440d61e018d62c751b">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; fract(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Return x - floor(x).</div></div>
-<div class="ttc" id="aa00803_html_ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><div class="ttname"><a href="a00803.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; intBitsToFloat(vec&lt; L, int, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.</div></div>
-<div class="ttc" id="aa00803_html_ga76b81785045a057989a84d99aeeb1578"><div class="ttname"><a href="a00803.html#ga76b81785045a057989a84d99aeeb1578">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; roundEven(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x.</div></div>
-<div class="ttc" id="aa00803_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x.</div></div>
-<div class="ttc" id="aa00803_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00803.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c.</div></div>
-<div class="ttc" id="aa00803_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00803.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
-<div class="ttc" id="aa00803_html_gafa03aca8c4713e1cc892aa92ca135a7e"><div class="ttname"><a href="a00803.html#gafa03aca8c4713e1cc892aa92ca135a7e">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; round(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x.</div></div>
-<div class="ttc" id="aa00804_html_ga071566cadc7505455e611f2a0353f4d4"><div class="ttname"><a href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of v, i.e., e^v.</div></div>
-<div class="ttc" id="aa00803_html_gaf9375e3e06173271d49e6ffa3a334259"><div class="ttname"><a href="a00803.html#gaf9375e3e06173271d49e6ffa3a334259">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; trunc(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
+<div class="ttc" id="aa00812_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00812.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
+<div class="ttc" id="aa00812_html_ga81d3abddd0ef0c8de579bc541ecadab6"><div class="ttname"><a href="a00812.html#ga81d3abddd0ef0c8de579bc541ecadab6">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; abs(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns x if x &gt;= 0; otherwise, it returns -x.</div></div>
+<div class="ttc" id="aa00812_html_gac3010e0a0c35a1b514540f2fb579c58c"><div class="ttname"><a href="a00812.html#gac3010e0a0c35a1b514540f2fb579c58c">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &amp;x, int const &amp;exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp,...</div></div>
+<div class="ttc" id="aa00812_html_gaa0f2f12e9108b09e22a3f0b2008a0b5d"><div class="ttname"><a href="a00812.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; clamp(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="aa00812_html_gaf4a5fc81619c7d3e8b22f53d4a098c7f"><div class="ttname"><a href="a00812.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; step(vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 0.0 if x &lt; edge, otherwise it returns 1.0.</div></div>
+<div class="ttc" id="aa00812_html_ga31f49ef9e7d1beb003160c5e009b0c48"><div class="ttname"><a href="a00812.html#ga31f49ef9e7d1beb003160c5e009b0c48">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; min(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if y &lt; x; otherwise, it returns x.</div></div>
+<div class="ttc" id="aa00812_html_gaddf5ef73283c171730e0bcc11833fa81"><div class="ttname"><a href="a00812.html#gaddf5ef73283c171730e0bcc11833fa81">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType x, int &amp;exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two,...</div></div>
+<div class="ttc" id="aa00812_html_gafb9d2a645a23aca12d4d6de0104b7657"><div class="ttname"><a href="a00812.html#gafb9d2a645a23aca12d4d6de0104b7657">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; ceil(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x.</div></div>
+<div class="ttc" id="aa00812_html_ga589807f35ad0a1d173762bfac3288929"><div class="ttname"><a href="a00812.html#ga589807f35ad0a1d173762bfac3288929">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; sign(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0.</div></div>
+<div class="ttc" id="aa00812_html_gafa03aca8c4713e1cc892aa92ca135a7e"><div class="ttname"><a href="a00812.html#gafa03aca8c4713e1cc892aa92ca135a7e">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; round(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x.</div></div>
+<div class="ttc" id="aa00812_html_ga49418ba4c8a60fbbb5d57b705f3e26db"><div class="ttname"><a href="a00812.html#ga49418ba4c8a60fbbb5d57b705f3e26db">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, uint, Q &gt; floatBitsToUint(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value.</div></div>
+<div class="ttc" id="aa00812_html_ga76b81785045a057989a84d99aeeb1578"><div class="ttname"><a href="a00812.html#ga76b81785045a057989a84d99aeeb1578">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; roundEven(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x.</div></div>
+<div class="ttc" id="aa00812_html_ga2885587c23a106301f20443896365b62"><div class="ttname"><a href="a00812.html#ga2885587c23a106301f20443896365b62">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isinf(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
+<div class="ttc" id="aa00812_html_gac1fec0c3303b572a6d4697a637213870"><div class="ttname"><a href="a00812.html#gac1fec0c3303b572a6d4697a637213870">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; max(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if x &lt; y; otherwise, it returns x.</div></div>
+<div class="ttc" id="aa00813_html_ga071566cadc7505455e611f2a0353f4d4"><div class="ttname"><a href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of v, i.e., e^v.</div></div>
+<div class="ttc" id="aa00812_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00812.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &amp;i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
+<div class="ttc" id="aa00812_html_ga6b6e0c7ecb4a5b78f929566355bb7416"><div class="ttname"><a href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="aa00812_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x.</div></div>
+<div class="ttc" id="aa00812_html_ga29ef934c00306490de837b4746b4e14d"><div class="ttname"><a href="a00812.html#ga29ef934c00306490de837b4746b4e14d">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isnan(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
+<div class="ttc" id="aa00812_html_ga2df623004f634b440d61e018d62c751b"><div class="ttname"><a href="a00812.html#ga2df623004f634b440d61e018d62c751b">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; fract(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Return x - floor(x).</div></div>
+<div class="ttc" id="aa00812_html_ga99f7d62f78ac5ea3b49bae715c9488ed"><div class="ttname"><a href="a00812.html#ga99f7d62f78ac5ea3b49bae715c9488ed">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, int, Q &gt; floatBitsToInt(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value.</div></div>
+<div class="ttc" id="aa00812_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00812.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c.</div></div>
+<div class="ttc" id="aa00812_html_ga97f46b5f7b42fe44482e13356eb394ae"><div class="ttname"><a href="a00812.html#ga97f46b5f7b42fe44482e13356eb394ae">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; uintBitsToFloat(vec&lt; L, uint, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="aa00812_html_ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><div class="ttname"><a href="a00812.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; intBitsToFloat(vec&lt; L, int, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.</div></div>
+<div class="ttc" id="aa00812_html_ga9b197a452cd52db3c5c18bac72bd7798"><div class="ttname"><a href="a00812.html#ga9b197a452cd52db3c5c18bac72bd7798">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; mod(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Modulus.</div></div>
+<div class="ttc" id="aa00812_html_gaf9375e3e06173271d49e6ffa3a334259"><div class="ttname"><a href="a00812.html#gaf9375e3e06173271d49e6ffa3a334259">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; trunc(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 2 - 2
doc/api/a00005_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _features.hpp Source File</title>
+<title>1.0.2 API documentation: _features.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>

+ 2 - 2
doc/api/a00008_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _fixes.hpp Source File</title>
+<title>1.0.2 API documentation: _fixes.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>

+ 4 - 4
doc/api/a00011_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _noise.hpp Source File</title>
+<title>1.0.2 API documentation: _noise.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -80,7 +80,7 @@ $(function() {
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span>&amp; x)</div>
 <div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        {</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;                <span class="keywordflow">return</span> x - <a class="code" href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(x * (<span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.0) / <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0))) * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0);</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;                <span class="keywordflow">return</span> x - <a class="code" href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(x * (<span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.0) / <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0))) * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0);</div>
 <div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        }</div>
 <div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
 <div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
@@ -152,7 +152,7 @@ $(function() {
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}<span class="comment">//namespace glm</span></div>
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00803_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00803.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x.</div></div>
+<div class="ttc" id="aa00812_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00812.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 736 - 731
doc/api/a00014_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _swizzle.hpp Source File</title>
+<title>1.0.2 API documentation: _swizzle.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -89,793 +89,798 @@ $(function() {
 <div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keywordtype">char</span>    _buffer[1];</div>
 <div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        };</div>
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> Aligned&gt;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> UseSimd&gt;</div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0&lt;T, N&gt;</div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        {</div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        };</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">bool</span> Aligned&gt;</div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;2, T, Q, E0,E1,-1,-2, Aligned&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 2&gt;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;N, T, Q, E0, E1, E2, E3, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, N&gt;</div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        {</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1)); }</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        };</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">bool</span> Aligned&gt;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;3, T, Q, E0,E1,E2,-1, Aligned&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 3&gt;</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        {</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        };</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> Aligned&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;4, T, Q, E0,E1,E2,E3, Aligned&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 4&gt;</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        {</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        };</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <span class="comment">// Internal class for implementing swizzle operators</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="comment">/*</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">                Template parameters:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">                T                       = type of scalar values (e.g. float, double)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">                N                       = number of components in the vector (e.g. 3)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">                E0...3          = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">                DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">                        containing duplicate elements so that they cannot be used as r-values).</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">        */</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;N, T, Q, E0,E1,E2,E3, detail::is_aligned&lt;Q&gt;::value&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        {</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                <span class="keyword">struct </span>op_equal</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                {</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> = t; }</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                };</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="keyword">struct </span>op_minus</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        };</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;2, T, Q, E0,E1,-1,-2, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 2&gt;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1)); }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        };</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;3, T, Q, E0,E1,E2,3, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 3&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        };</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <span class="keyword">struct </span>_swizzle_base1&lt;4, T, Q, E0,E1,E2,E3, false&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 4&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; operator ()()<span class="keyword">  const </span>{ <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        };</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="comment">/*</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">                Template parameters:</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">                T                       = type of scalar values (e.g. float, double)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">                N                       = number of components in the vector (e.g. 3)</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">                E0...3          = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">                DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">                        containing duplicate elements so that they cannot be used as r-values).</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">        */</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;N, T, Q, E0,E1,E2,E3, detail::is_aligned&lt;Q&gt;::value&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="keyword">struct </span>op_equal</div>
 <div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                {</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> -= t; }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> = t; }</div>
 <div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                };</div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="keyword">struct </span>op_plus</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="keyword">struct </span>op_minus</div>
 <div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                {</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> += t; }</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> -= t; }</div>
 <div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                };</div>
 <div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">struct </span>op_mul</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">struct </span>op_plus</div>
 <div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                {</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> *= t; }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> += t; }</div>
 <div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                };</div>
 <div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                <span class="keyword">struct </span>op_div</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                <span class="keyword">struct </span>op_mul</div>
 <div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                {</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> /= t; }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> *= t; }</div>
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                };</div>
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (<span class="keyword">const</span> T&amp; t)</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                {</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                                (*<span class="keyword">this</span>)[i] = t;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                }</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                {</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                        _apply_op(that, op_equal());</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                }</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                {</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        _apply_op(that, op_minus());</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                <span class="keyword">struct </span>op_div</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                        GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t)<span class="keyword"> const</span>{ <a class="code" href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> /= t; }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                };</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (<span class="keyword">const</span> T&amp; t)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                                (*<span class="keyword">this</span>)[i] = t;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                        _apply_op(that, op_equal());</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
 <div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                }</div>
 <div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
 <div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                {</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                        _apply_op(that, op_plus());</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                        _apply_op(that, op_minus());</div>
 <div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                }</div>
 <div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
 <div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                {</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                        _apply_op(that, op_mul());</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                        _apply_op(that, op_plus());</div>
 <div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                }</div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
 <div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                {</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                        _apply_op(that, op_div());</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                        _apply_op(that, op_mul());</div>
 <div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                }</div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                GLM_FUNC_QUALIFIER T&amp; operator[](<span class="keywordtype">int</span> i)</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that)</div>
 <div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                {</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                        <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                }</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                GLM_FUNC_QUALIFIER T operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keyword">                </span>{</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                        _apply_op(that, op_div());</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                }</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                GLM_FUNC_QUALIFIER T&amp; operator[](<span class="keywordtype">int</span> i)</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                {</div>
 <div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                        <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
 <div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                }</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that, <span class="keyword">const</span> U&amp; op)</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                {</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                        <span class="comment">// Make a copy of the data in this == &amp;that.</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                        <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                        <span class="comment">// properly inlined and the copy is not necessary.</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                        T t[N];</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                                t[i] = that[i];</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                                op( (*<span class="keyword">this</span>)[i], t[i] );</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                }</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        };</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="comment">// Specialization for swizzles containing duplicate elements.  These cannot be modified.</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keyword">struct </span>_swizzle_base2&lt;N, T, Q, E0,E1,E2,E3, 1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;N, T, Q, E0,E1,E2,E3, detail::is_aligned&lt;Q&gt;::value&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        {</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                <span class="keyword">struct </span>Stub {};</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (Stub <span class="keyword">const</span>&amp;) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                GLM_FUNC_QUALIFIER T operator[]  (<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="keyword">                </span>{</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                        <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                }</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        };</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2&lt;N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        {</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                <span class="keyword">typedef</span> _swizzle_base2&lt;N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt; base_type;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                GLM_FUNC_QUALIFIER T operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="keyword">                </span>{</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                        <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                }</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(vec&lt;N, T, Q&gt; <span class="keyword">const</span>&amp; that, <span class="keyword">const</span> U&amp; op)</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                {</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                        <span class="comment">// Make a copy of the data in this == &amp;that.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                        <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                        <span class="comment">// properly inlined and the copy is not necessary.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                        T t[N];</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                                t[i] = that[i];</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                                op( (*<span class="keyword">this</span>)[i], t[i] );</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                }</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        };</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="comment">// Specialization for swizzles containing duplicate elements.  These cannot be modified.</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <span class="keyword">struct </span>_swizzle_base2&lt;N, T, Q, E0,E1,E2,E3, 1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;N, T, Q, E0,E1,E2,E3, detail::is_aligned&lt;Q&gt;::value&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        {</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                <span class="keyword">struct </span>Stub {};</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (Stub <span class="keyword">const</span>&amp;) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                GLM_FUNC_QUALIFIER T operator[]  (<span class="keywordtype">int</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keyword">                </span>{</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                        <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                }</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        };</div>
 <div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keyword">using</span> base_type::operator=;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">operator</span> vec&lt;N, T, Q&gt; ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        };</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2&lt;N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        {</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                <span class="keyword">typedef</span> _swizzle_base2&lt;N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt; base_type;</div>
 <div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TEMPLATE1   template&lt;int N, typename T, qualifier Q, int E0, int E1, int E2, int E3&gt;</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TEMPLATE2   template&lt;int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TYPE1       _swizzle&lt;N, T, Q, E0, E1, E2, E3&gt;</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TYPE2       _swizzle&lt;N, T, Q, F0, F1, F2, F3&gt;</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE2                                                          \</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b)  \</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">        {                                                                               \</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">                return a() OPERAND b();                                                     \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">        }                                                                               \</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                          \</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const vec&lt;N, T, Q&gt;&amp; b)                   \</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                <span class="keyword">using</span> base_type::operator=;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">operator</span> vec&lt;N, T, Q&gt; ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        };</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TEMPLATE1   template&lt;int N, typename T, qualifier Q, int E0, int E1, int E2, int E3&gt;</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TEMPLATE2   template&lt;int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TYPE1       _swizzle&lt;N, T, Q, E0, E1, E2, E3&gt;</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_TYPE2       _swizzle&lt;N, T, Q, F0, F1, F2, F3&gt;</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                 \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE2                                                          \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b)  \</span></div>
 <div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">        {                                                                               \</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">                return a() OPERAND b;                                                       \</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">                return a() OPERAND b();                                                     \</span></div>
 <div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">        }                                                                               \</span></div>
 <div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                          \</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const vec&lt;N, T, Q&gt;&amp; a, const GLM_SWIZZLE_TYPE1&amp; b)                   \</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const vec&lt;N, T, Q&gt;&amp; b)                   \</span></div>
 <div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">        {                                                                               \</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">                return a OPERAND b();                                                       \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">        }</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160; </div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                                                              \</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                                                           \</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b)      \</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">        {                                                                                                                                                                                       \</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor">                return a() OPERAND b;                                                                                                                                   \</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">        }                                                                                                                                                                                       \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">                return a() OPERAND b;                                                       \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">        }                                                                               \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                          \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const vec&lt;N, T, Q&gt;&amp; a, const GLM_SWIZZLE_TYPE1&amp; b)                   \</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">        {                                                                               \</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor">                return a OPERAND b();                                                       \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">        }</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160; </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND)                                                              \</span></div>
 <div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                                                           \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const T&amp; a, const GLM_SWIZZLE_TYPE1&amp; b)      \</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b)      \</span></div>
 <div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">        {                                                                                                                                                                                       \</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">                return a OPERAND b();                                                                                                                                   \</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">        }</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION)                                                                                               \</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                                                                           \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a)         \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">        {                                                                                                                                                                                                       \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">                return FUNCTION(a());                                                                                                                                                   \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">        }</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION)                                                       \</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE2                                                                                       \</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">        {                                                                                                           \</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">        }                                                                                                           \</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                       \</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">                return a() OPERAND b;                                                                                                                                   \</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">        }                                                                                                                                                                                       \</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                                                           \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER vec&lt;N, T, Q&gt; operator OPERAND ( const T&amp; a, const GLM_SWIZZLE_TYPE1&amp; b)      \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">        {                                                                                                                                                                                       \</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">                return a OPERAND b();                                                                                                                                   \</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">        }</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION)                                                                                               \</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                                                                           \</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a)         \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="preprocessor">        {                                                                                                                                                                                                       \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor">                return FUNCTION(a());                                                                                                                                                   \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">        }</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION)                                                       \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE2                                                                                       \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
 <div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="preprocessor">        {                                                                                                           \</span></div>
 <div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span></div>
 <div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor">        }                                                                                                           \</span></div>
 <div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                       \</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b)         \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
 <div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">        {                                                                                                           \</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b);                                                                                \</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b());                                                                              \</span></div>
 <div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="preprocessor">        }                                                                                                           \</span></div>
 <div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                       \</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const GLM_SWIZZLE_TYPE1&amp; b)                  \</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b)         \</span></div>
 <div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">        {                                                                                                           \</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">                return FUNCTION(a, b());                                                                                \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">        }</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION)                                                             \</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE2                                                                                                    \</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c)   \</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="preprocessor">        {                                                                                                                         \</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">        }                                                                                                                         \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)   \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b);                                                                                \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">        }                                                                                                           \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                       \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const GLM_SWIZZLE_TYPE1&amp; b)                  \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">        {                                                                                                           \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="preprocessor">                return FUNCTION(a, b());                                                                                \</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">        }</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160; </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION)                                                             \</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE2                                                                                                    \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c)   \</span></div>
 <div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="preprocessor">        {                                                                                                                         \</span></div>
 <div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span></div>
 <div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="preprocessor">        }                                                                                                                         \</span></div>
 <div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)   \</span></div>
 <div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="preprocessor">        {                                                                                                                         \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b, c);                                                                                           \</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b(), c);                                                                                         \</span></div>
 <div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="preprocessor">        }                                                                                                                         \</span></div>
 <div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)           \</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span></div>
 <div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="preprocessor">        {                                                                                                                         \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor">                return FUNCTION(a, b(), c);                                                                                           \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="preprocessor">        }</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;{</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        {</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        }</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <span class="comment">//</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="comment">// Swizzles are distinct types from the unswizzled type.  The below macros will</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="comment">// the function.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor">                return FUNCTION(a(), b, c);                                                                                           \</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="preprocessor">        }                                                                                                                         \</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="preprocessor">        GLM_SWIZZLE_TEMPLATE1                                                                                                    \</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="preprocessor">        GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c)           \</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="preprocessor">        {                                                                                                                         \</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="preprocessor">                return FUNCTION(a, b(), c);                                                                                           \</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="preprocessor">        }</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;{</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        }</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160; </div>
 <div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        <span class="comment">//</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="comment">//</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    abs);</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acos);</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acosh);</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    all);</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    any);</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160; </div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(value_type,  dot);</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    cross);</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    step);</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;}</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_2_MEMBERS(T, Q, E0,E1) \</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 1,1,-1,-2&gt; E1 ## E1; };</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_3_MEMBERS(T, Q, E0,E1) \</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,1,1,-1&gt; E1 ## E1 ## E1; };</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_4_MEMBERS(T, Q, E0,E1) \</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; };</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160; </div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_2_MEMBERS(T, Q, E0,E1,E2) \</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,2,-1,-2&gt; E2 ## E2; };</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_3_MEMBERS(T, Q ,E0,E1,E2) \</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,2,-1&gt; E2 ## E2 ## E2; };</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160; </div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_4_MEMBERS(T, Q, E0,E1,E2) \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; };</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_2_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,3,-1,-2&gt; E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,3,-1,-2&gt; E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,2,-1,-2&gt; E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,3,-1,-2&gt; E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,0,-1,-2&gt; E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,1,-1,-2&gt; E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,2,-1,-2&gt; E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,3,-1,-2&gt; E3 ## E3; };</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_3_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,3,-1&gt; E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,3,-1&gt; E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,3,-1&gt; E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,0,-1&gt; E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,1,-1&gt; E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,2,-1&gt; E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,3,-1&gt; E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,3,-1&gt; E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,3,-1&gt; E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,3,-1&gt; E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,0,-1&gt; E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,1,-1&gt; E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,2,-1&gt; E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,3,-1&gt; E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,3,-1&gt; E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,3,-1&gt; E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,2,-1&gt; E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,3,-1&gt; E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,0,-1&gt; E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,1,-1&gt; E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,2,-1&gt; E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,3,-1&gt; E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,0,-1&gt; E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,1,-1&gt; E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,2,-1&gt; E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,3,-1&gt; E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,0,-1&gt; E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,1,-1&gt; E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,2,-1&gt; E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,3,-1&gt; E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,0,-1&gt; E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,1,-1&gt; E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,2,-1&gt; E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,3,-1&gt; E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,0,-1&gt; E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,1,-1&gt; E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,2,-1&gt; E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,3,-1&gt; E3 ## E3 ## E3; };</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160; </div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_4_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,0&gt; E0 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,1&gt; E0 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,2&gt; E0 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,3&gt; E0 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,0&gt; E0 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,1&gt; E0 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,2&gt; E0 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,3&gt; E0 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,0&gt; E0 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,1&gt; E0 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,2&gt; E0 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,3&gt; E0 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,0&gt; E0 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,1&gt; E0 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,2&gt; E0 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,3&gt; E0 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,3&gt; E3 ## E3 ## E3 ## E3; };</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="comment">// Swizzles are distinct types from the unswizzled type.  The below macros will</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        <span class="comment">// the function.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="comment">//</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="comment">//</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    abs);</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acos);</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    acosh);</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    all);</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type,    any);</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(value_type,  dot);</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    cross);</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type,    step);</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <span class="comment">//GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;}</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160; </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_2_MEMBERS(T, Q, E0,E1) \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2, T, Q, 1,1,-1,-2&gt; E1 ## E1; };</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160; </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_3_MEMBERS(T, Q, E0,E1) \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3,T, Q, 1,1,1,-1&gt; E1 ## E1 ## E1; };</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE2_4_MEMBERS(T, Q, E0,E1) \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; };</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_2_MEMBERS(T, Q, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,2,-1,-2&gt; E2 ## E2; };</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160; </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_3_MEMBERS(T, Q ,E0,E1,E2) \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2; };</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE3_4_MEMBERS(T, Q, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4,T, Q, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; };</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160; </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_2_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 0,3,-1,-2&gt; E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 1,3,-1,-2&gt; E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,2,-1,-2&gt; E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 2,3,-1,-2&gt; E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,0,-1,-2&gt; E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,1,-1,-2&gt; E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,2,-1,-2&gt; E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;2,T, Q, 3,3,-1,-2&gt; E3 ## E3; };</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_3_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,0,3,3&gt; E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,1,3,3&gt; E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,2,3,3&gt; E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,0,3&gt; E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,1,3&gt; E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,2,3&gt; E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 0,3,3,3&gt; E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,0,3,3&gt; E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,1,3,3&gt; E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,2,3,3&gt; E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,0,3&gt; E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,1,3&gt; E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,2,3&gt; E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 1,3,3,3&gt; E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,0,3,3&gt; E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,1,3,3&gt; E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,2,3,3&gt; E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,0,3&gt; E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,1,3&gt; E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,2,3&gt; E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 2,3,3,3&gt; E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,0,3&gt; E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,1,3&gt; E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,2,3&gt; E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,0,3,3&gt; E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,0,3&gt; E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,1,3&gt; E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,2,3&gt; E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,1,3,3&gt; E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,0,3&gt; E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,1,3&gt; E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,2,3&gt; E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,2,3,3&gt; E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,0,3&gt; E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,1,3&gt; E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,2,3&gt; E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;3, T, Q, 3,3,3,3&gt; E3 ## E3 ## E3; };</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160; </div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE4_4_MEMBERS(T, Q, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,0&gt; E0 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,1&gt; E0 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,2&gt; E0 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,0,3&gt; E0 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,0&gt; E0 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,1&gt; E0 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,2&gt; E0 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,1,3&gt; E0 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,0&gt; E0 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,1&gt; E0 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,2&gt; E0 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,2,3&gt; E0 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,0&gt; E0 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,1&gt; E0 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,2&gt; E0 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 0,3,3,3&gt; E0 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;<span class="preprocessor">        struct { detail::_swizzle&lt;4, T, Q, 3,3,3,3&gt; E3 ## E3 ## E3 ## E3; };</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00899_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00899.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant.</div></div>
+<div class="ttc" id="aa00908_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00908.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 2 - 2
doc/api/a00017_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _swizzle_func.hpp Source File</title>
+<title>1.0.2 API documentation: _swizzle_func.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>

+ 178 - 110
doc/api/a00020_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _vectorize.hpp Source File</title>
+<title>1.0.2 API documentation: _vectorize.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -124,114 +124,182 @@ $(function() {
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                {</div>
 <div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b.x));</div>
 <div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                }</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        };</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keyword">struct </span>functor2&lt;vec, 2, T, Q&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        {</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                {</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                }</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        };</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keyword">struct </span>functor2&lt;vec, 3, T, Q&gt;</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        {</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                {</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                }</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        };</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keyword">struct </span>functor2&lt;vec, 4, T, Q&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        {</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                {</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                }</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        };</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca{};</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 1, T, Q&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        {</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                {</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b));</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                }</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        };</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 2, T, Q&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        {</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                {</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b), Func(a.y, b));</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                }</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        };</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 3, T, Q&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        {</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                {</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                }</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        };</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 4, T, Q&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        {</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                {</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                }</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        };</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">struct </span>functor2_vec_int {};</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;1, T, Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        {</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                {</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, int, Q&gt;(Func(a.x, b.x));</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                }</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        };</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;2, T, Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        {</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                {</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                }</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        };</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;3, T, Q&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        {</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                {</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                }</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        };</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;4, T, Q&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        {</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                {</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                }</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        };</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Fct&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(Fct Func, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                {</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b.x));</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        };</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keyword">struct </span>functor2&lt;vec, 2, T, Q&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        {</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                }</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Fct&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(Fct Func, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        };</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keyword">struct </span>functor2&lt;vec, 3, T, Q&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(Fct Func, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                {</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                }</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        };</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <span class="keyword">struct </span>functor2&lt;vec, 4, T, Q&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                }</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(Fct Func, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                {</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                }</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        };</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca{};</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 1, T, Q&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b));</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                }</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(Fct Func, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b));</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        };</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 2, T, Q&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        {</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                {</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b), Func(a.y, b));</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                }</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(Fct Func, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                {</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b), Func(a.y, b));</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                }</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        };</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 3, T, Q&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        {</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                {</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(Fct Func, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                {</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                }</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        };</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 4, T, Q&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        {</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                {</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(Fct Func, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                {</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                }</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        };</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="keyword">struct </span>functor2_vec_int {};</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;1, T, Q&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        {</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                {</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, int, Q&gt;(Func(a.x, b.x));</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                }</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, int, Q&gt; call(Fct Func, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                {</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                        <span class="keywordflow">return</span> vec&lt;1, int, Q&gt;(Func(a.x, b.x));</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                }</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        };</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;2, T, Q&gt;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        {</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                {</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                }</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, int, Q&gt; call(Fct Func, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                        <span class="keywordflow">return</span> vec&lt;2, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                }</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        };</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;3, T, Q&gt;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                {</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                }</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, int, Q&gt; call(Fct Func, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                        <span class="keywordflow">return</span> vec&lt;3, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                }</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        };</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <span class="keyword">struct </span>functor2_vec_int&lt;4, T, Q&gt;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        {</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                {</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                }</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">class</span> Fct&gt;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, int, Q&gt; call(Fct Func, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                        <span class="keywordflow">return</span> vec&lt;4, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                }</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        };</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 2 - 2
doc/api/a00023_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: compute_common.hpp Source File</title>
+<title>1.0.2 API documentation: compute_common.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>

+ 193 - 33
doc/api/a00026_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: compute_vector_relational.hpp Source File</title>
+<title>1.0.2 API documentation: compute_vector_decl.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,39 +67,199 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">compute_vector_relational.hpp</div>  </div>
+<div class="title">compute_vector_decl.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">//#include &quot;compute_common.hpp&quot;</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">bool</span> isFloat&gt;</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keyword">struct </span>compute_equal</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        {</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(T a, T b)</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;                {</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                        <span class="keywordflow">return</span> a == b;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                }</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        };</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">        template &lt;typename T&gt;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">        struct compute_equal&lt;T, true&gt;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">        {</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">                GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">                {</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">                        return detail::compute_abs&lt;T, std::numeric_limits&lt;T&gt;::is_signed&gt;::call(b - a) &lt;= static_cast&lt;T&gt;(0);</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">                        //return std::memcmp(&amp;a, &amp;b, sizeof(T)) == 0;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">                }</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">        };</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;_vectorize.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span>glm {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;                <span class="keyword">struct </span>compute_vec_add {};</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;                <span class="keyword">struct </span>compute_vec_sub {};</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">struct </span>compute_vec_mul {};</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">struct </span>compute_vec_div {};</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">struct </span>compute_vec_mod {};</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="keyword">struct </span>compute_splat {};</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">struct </span>compute_vec_and {};</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                <span class="keyword">struct </span>compute_vec_or {};</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="keyword">struct </span>compute_vec_xor {};</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                <span class="keyword">struct </span>compute_vec_shift_left {};</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                <span class="keyword">struct </span>compute_vec_shift_right {};</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                <span class="keyword">struct </span>compute_vec_equal {};</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                <span class="keyword">struct </span>compute_vec_nequal {};</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size, <span class="keywordtype">bool</span> UseSimd&gt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="keyword">struct </span>compute_vec_bitwise_not {};</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                <span class="keyword">struct </span>compute_vec_add&lt;L, T, Q, false&gt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                                <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::plus&lt;T&gt;(), a, b);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                };</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="keyword">struct </span>compute_vec_sub&lt;L, T, Q, false&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        {</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::minus&lt;T&gt;(), a, b);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        }</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                };</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                <span class="keyword">struct </span>compute_vec_mul&lt;L, T, Q, false&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                        {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                                <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::multiplies&lt;T&gt;(), a, b);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                        }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                };</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                <span class="keyword">struct </span>compute_vec_div&lt;L, T, Q, false&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                        {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                                <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::divides&lt;T&gt;(), a, b);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                        }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                };</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                <span class="keyword">struct </span>compute_vec_mod&lt;L, T, Q, false&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                        {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                                <span class="keywordflow">return</span> detail::functor2&lt;vec, L, T, Q&gt;::call(std::modulus&lt;T&gt;(), a, b);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                        }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                };</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                <span class="keyword">struct </span>compute_vec_and&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                {</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                        {</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                                vec&lt;L, T, Q&gt; v(a);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                                        v[i] &amp;= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                                <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                        }</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                };</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                <span class="keyword">struct </span>compute_vec_or&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                {</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                        {</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                                vec&lt;L, T, Q&gt; v(a);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                                        v[i] |= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                                <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                        }</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                };</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                <span class="keyword">struct </span>compute_vec_xor&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                        {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                                vec&lt;L, T, Q&gt; v(a);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                                        v[i] ^= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                                <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                        }</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                };</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                <span class="keyword">struct </span>compute_vec_shift_left&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                {</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                        {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                                vec&lt;L, T, Q&gt; v(a);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                                        v[i] &lt;&lt;= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                                <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                        }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                };</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                <span class="keyword">struct </span>compute_vec_shift_right&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                        {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                                vec&lt;L, T, Q&gt; v(a);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                                        v[i] &gt;&gt;= <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(b[i]);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                                <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                        }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                };</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                <span class="keyword">struct </span>compute_vec_equal&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                {</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v2)</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                        {</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                                <span class="keywordtype">bool</span> b = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; b &amp;&amp; i &lt; L; ++i)</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                                        b = detail::compute_equal&lt;T, std::numeric_limits&lt;T&gt;::is_iec559&gt;::call(v1[i], v2[i]);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                                <span class="keywordflow">return</span> b;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                        }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                };</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                <span class="keyword">struct </span>compute_vec_nequal&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                {</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2)</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                        {</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                                <span class="keywordflow">return</span> !compute_vec_equal&lt;L, T, Q, detail::is_int&lt;T&gt;::value, <span class="keyword">sizeof</span>(T) * 8, detail::is_aligned&lt;Q&gt;::value&gt;::call(v1, v2);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                        }</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                };</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q, <span class="keywordtype">int</span> IsInt, std::<span class="keywordtype">size_t</span> Size&gt;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                <span class="keyword">struct </span>compute_vec_bitwise_not&lt;L, T, Q, IsInt, Size, false&gt;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                {</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;L, T, Q&gt; call(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; a)</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                        {</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                                vec&lt;L, T, Q&gt; v(a);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                                <span class="keywordflow">for</span> (length_t i = 0; i &lt; L; ++i)</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                                        v[i] = ~v[i];</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                                <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                        }</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                };</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        }</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;}</div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 31 - 232
doc/api/a00029_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: qualifier.hpp Source File</title>
+<title>1.0.2 API documentation: compute_vector_relational.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,241 +67,40 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">qualifier.hpp</div>  </div>
+<div class="title">compute_vector_relational.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">enum</span> qualifier</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        {</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;                packed_highp, </div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;                packed_mediump, </div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;                packed_lowp, </div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                        aligned_highp, </div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                        aligned_mediump, </div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                        aligned_lowp, <span class="comment">// ///&lt; Typed data is aligned in memory allowing SIMD optimizations and operations are executed with high precision in term of ULPs to maximize performance</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                        aligned = aligned_highp, </div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                highp = packed_highp, </div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                mediump = packed_mediump, </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                lowp = packed_lowp, </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                packed = packed_highp, </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE &amp;&amp; defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                        defaultp = aligned_highp</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        defaultp = highp</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        };</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">typedef</span> qualifier precision;</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>vec;</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>mat;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>qua;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#       if GLM_HAS_TEMPLATE_ALIASES</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec1 = vec&lt;1, T, Q&gt;;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec2 = vec&lt;2, T, Q&gt;;</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec3 = vec&lt;3, T, Q&gt;;</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec4 = vec&lt;4, T, Q&gt;;</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x2 = mat&lt;2, 2, T, Q&gt;;</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x3 = mat&lt;2, 3, T, Q&gt;;</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x4 = mat&lt;2, 4, T, Q&gt;;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x2 = mat&lt;3, 2, T, Q&gt;;</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x3 = mat&lt;3, 3, T, Q&gt;;</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x4 = mat&lt;3, 4, T, Q&gt;;</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x2 = mat&lt;4, 2, T, Q&gt;;</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x3 = mat&lt;4, 3, T, Q&gt;;</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x4 = mat&lt;4, 4, T, Q&gt;;</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tquat = qua&lt;T, Q&gt;;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keyword">template</span>&lt;glm::qualifier P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">struct </span>is_aligned</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        {</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        };</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                <span class="keyword">struct </span>is_aligned&lt;glm::aligned_lowp&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                {</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                };</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">struct </span>is_aligned&lt;glm::aligned_mediump&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                {</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                };</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="keyword">struct </span>is_aligned&lt;glm::aligned_highp&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                {</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                };</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keywordtype">bool</span> is_aligned&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">struct </span>storage</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        {</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                <span class="keyword">typedef</span> <span class="keyword">struct </span>type {</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                        T data[L];</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                } type;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        };</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#       if GLM_HAS_ALIGNOF</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                <span class="keyword">struct </span>storage&lt;L, T, true&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                {</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                        <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(L * sizeof(T)) type {</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                                T data[L];</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        } type;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                };</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                <span class="keyword">struct </span>storage&lt;3, T, true&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                {</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                        <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(4 * sizeof(T)) type {</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                T data[4];</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                        } type;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                };</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#       if GLM_ARCH &amp; GLM_ARCH_SSE2_BIT</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keyword">struct </span>storage&lt;4, float, true&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        {</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                <span class="keyword">typedef</span> glm_f32vec4 type;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        };</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keyword">struct </span>storage&lt;4, int, true&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        {</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="keyword">typedef</span> glm_i32vec4 type;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        };</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">struct </span>storage&lt;4, unsigned int, true&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        {</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                <span class="keyword">typedef</span> glm_u32vec4 type;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        };</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <span class="keyword">struct </span>storage&lt;2, double, true&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        {</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                <span class="keyword">typedef</span> glm_f64vec2 type;</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        };</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keyword">struct </span>storage&lt;2, detail::<a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>, true&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        {</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                <span class="keyword">typedef</span> glm_i64vec2 type;</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        };</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keyword">struct </span>storage&lt;2, detail::<a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        {</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                <span class="keyword">typedef</span> glm_u64vec2 type;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        };</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="preprocessor">#       if (GLM_ARCH &amp; GLM_ARCH_AVX_BIT)</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <span class="keyword">struct </span>storage&lt;4, double, true&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        {</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                <span class="keyword">typedef</span> glm_f64vec4 type;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        };</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor">#       if (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT)</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keyword">struct </span>storage&lt;4, detail::<a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>, true&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        {</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                <span class="keyword">typedef</span> glm_i64vec4 type;</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        };</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="keyword">struct </span>storage&lt;4, detail::<a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        {</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                <span class="keyword">typedef</span> glm_u64vec4 type;</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        };</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">#       if GLM_ARCH &amp; GLM_ARCH_NEON_BIT</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keyword">struct </span>storage&lt;4, float, true&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        {</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                <span class="keyword">typedef</span> glm_f32vec4 type;</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        };</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keyword">struct </span>storage&lt;4, int, true&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        {</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                <span class="keyword">typedef</span> glm_i32vec4 type;</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        };</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keyword">struct </span>storage&lt;4, unsigned int, true&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        {</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <span class="keyword">typedef</span> glm_u32vec4 type;</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        };</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keyword">enum</span> genTypeEnum</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        {</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                GENTYPE_VEC,</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                GENTYPE_MAT,</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                GENTYPE_QUAT</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        };</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keyword">struct </span>genTypeTrait</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        {};</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160; </div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keyword">template</span> &lt;length_t C, length_t R, <span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keyword">struct </span>genTypeTrait&lt;mat&lt;C, R, T&gt; &gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        {</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                <span class="keyword">static</span> <span class="keyword">const</span> genTypeEnum GENTYPE = GENTYPE_MAT;</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        };</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType, genTypeEnum type&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keyword">struct </span>init_gentype</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        {</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        };</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160; </div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keyword">struct </span>init_gentype&lt;genType, GENTYPE_QUAT&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        {</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genType <a class="code" href="a00828.html#ga81696f2b8d1db02ea1aff8da8f269314">identity</a>()</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                {</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                        <span class="keywordflow">return</span> genType(1, 0, 0, 0);</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                }</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        };</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keyword">struct </span>init_gentype&lt;genType, GENTYPE_MAT&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        {</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genType <a class="code" href="a00828.html#ga81696f2b8d1db02ea1aff8da8f269314">identity</a>()</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                {</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                        <span class="keywordflow">return</span> genType(1);</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                }</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        };</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">//#include &quot;compute_common.hpp&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">bool</span> isFloat&gt;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keyword">struct </span>compute_equal</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> <span class="keywordtype">bool</span> call(T a, T b)</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;                {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                        <span class="keywordflow">return</span> a == b;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                }</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        };</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">        template &lt;typename T&gt;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">        struct compute_equal&lt;T, true&gt;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">        {</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">                GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">                {</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">                        return detail::compute_abs&lt;T, std::numeric_limits&lt;T&gt;::is_signed&gt;::call(b - a) &lt;= static_cast&lt;T&gt;(0);</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">                        //return std::memcmp(&amp;a, &amp;b, sizeof(T)) == 0;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">                }</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">        };</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00828_html_ga81696f2b8d1db02ea1aff8da8f269314"><div class="ttname"><a href="a00828.html#ga81696f2b8d1db02ea1aff8da8f269314">glm::identity</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType identity()</div><div class="ttdoc">Builds an identity matrix.</div></div>
-<div class="ttc" id="aa00864_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00864.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00374_source.html#l00067">scalar_uint_sized.hpp:67</a></div></div>
-<div class="ttc" id="aa00859_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00359_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 297 - 1150
doc/api/a00032_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: setup.hpp Source File</title>
+<title>1.0.2 API documentation: qualifier.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,1160 +67,307 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">setup.hpp</div>  </div>
+<div class="title">qualifier.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef GLM_SETUP_INCLUDED</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#define GLM_VERSION_MAJOR 1</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#define GLM_VERSION_MINOR 0</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define GLM_VERSION_PATCH 0</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define GLM_VERSION_REVISION 0 // Deprecated</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define GLM_VERSION 1000 // Deprecated</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define GLM_VERSION_MESSAGE &quot;GLM: version 1.0.0&quot;</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#define GLM_MAKE_API_VERSION(variant, major, minor, patch) \</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">    ((((uint32_t)(variant)) &lt;&lt; 29U) | (((uint32_t)(major)) &lt;&lt; 22U) | (((uint32_t)(minor)) &lt;&lt; 12U) | ((uint32_t)(patch)))</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define GLM_VERSION_COMPLETE GLM_MAKE_API_VERSION(0, GLM_VERSION_MAJOR, GLM_VERSION_MINOR, GLM_VERSION_PATCH)</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define GLM_SETUP_INCLUDED GLM_VERSION</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_VARIANT(version) ((uint32_t)(version) &gt;&gt; 29U)</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_MAJOR(version) (((uint32_t)(version) &gt;&gt; 22U) &amp; 0x7FU)</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_MINOR(version) (((uint32_t)(version) &gt;&gt; 12U) &amp; 0x3FFU)</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_PATCH(version) ((uint32_t)(version) &amp; 0xFFFU)</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">// Active states</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define GLM_DISABLE             0</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#define GLM_ENABLE              1</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">// Messages</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_MESSAGES)</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#       define GLM_MESSAGES GLM_ENABLE</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#       define GLM_MESSAGES GLM_DISABLE</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">// Detect the platform</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;../simd/platform.h&quot;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">// Build model</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#if defined(_M_ARM64) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#       define GLM_MODEL        GLM_MODEL_64</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#elif defined(__i386__) || defined(__ppc__) || defined(__ILP32__) || defined(_M_ARM)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#       define GLM_MODEL        GLM_MODEL_32</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#       define GLM_MODEL        GLM_MODEL_32</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#endif//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">enum</span> qualifier</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;                packed_highp, </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;                packed_mediump, </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;                packed_lowp, </div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                        aligned_highp, </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                        aligned_mediump, </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                        aligned_lowp, <span class="comment">// ///&lt; Typed data is aligned in memory allowing SIMD optimizations and operations are executed with high precision in term of ULPs to maximize performance</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                        aligned = aligned_highp, </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                highp = packed_highp, </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                mediump = packed_mediump, </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                lowp = packed_lowp, </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                packed = packed_highp, </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE &amp;&amp; defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                        defaultp = aligned_highp</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        defaultp = highp</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        };</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">typedef</span> qualifier precision;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>vec;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>mat;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">struct </span>qua;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#       if GLM_HAS_TEMPLATE_ALIASES</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec1 = vec&lt;1, T, Q&gt;;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec2 = vec&lt;2, T, Q&gt;;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec3 = vec&lt;3, T, Q&gt;;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tvec4 = vec&lt;4, T, Q&gt;;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x2 = mat&lt;2, 2, T, Q&gt;;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x3 = mat&lt;2, 3, T, Q&gt;;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat2x4 = mat&lt;2, 4, T, Q&gt;;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x2 = mat&lt;3, 2, T, Q&gt;;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x3 = mat&lt;3, 3, T, Q&gt;;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat3x4 = mat&lt;3, 4, T, Q&gt;;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x2 = mat&lt;4, 2, T, Q&gt;;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x3 = mat&lt;4, 3, T, Q&gt;;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tmat4x4 = mat&lt;4, 4, T, Q&gt;;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, qualifier Q = defaultp&gt; <span class="keyword">using</span> tquat = qua&lt;T, Q&gt;;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#       endif</span></div>
 <div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#if !defined(GLM_MODEL) &amp;&amp; GLM_COMPILER != 0</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#       error &quot;GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message.&quot;</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif//GLM_MODEL</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">// C++ Version</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">// User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14, GLM_FORCE_CXX17, GLM_FORCE_CXX2A</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98_FLAG                     (1 &lt;&lt; 1)</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03_FLAG                     (1 &lt;&lt; 2)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X_FLAG                     (1 &lt;&lt; 3)</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11_FLAG                     (1 &lt;&lt; 4)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14_FLAG                     (1 &lt;&lt; 5)</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX17_FLAG                     (1 &lt;&lt; 6)</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX20_FLAG                     (1 &lt;&lt; 7)</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS_FLAG                     (1 &lt;&lt; 8)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU_FLAG            (1 &lt;&lt; 9)</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98                  GLM_LANG_CXX98_FLAG</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03                  (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X                  (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11                  (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14                  (GLM_LANG_CXX11 | GLM_LANG_CXX14_FLAG)</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX17                  (GLM_LANG_CXX14 | GLM_LANG_CXX17_FLAG)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX20                  (GLM_LANG_CXX17 | GLM_LANG_CXX20_FLAG)</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS                  GLM_LANG_CXXMS_FLAG</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU                 GLM_LANG_CXXGNU_FLAG</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#if (defined(_MSC_EXTENSIONS))</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#       define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#elif ((GLM_COMPILER &amp; (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_SIMD_BIT))</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#       define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#       define GLM_LANG_EXT 0</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#if (defined(GLM_FORCE_CXX_UNKNOWN))</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#       define GLM_LANG 0</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX20)</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX20 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX17)</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX14)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX11)</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX03)</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX03 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX98)</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_VC &amp;&amp; defined(_MSVC_LANG)</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_VC15_7</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor">#                       define GLM_LANG_PLATFORM _MSVC_LANG</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#               elif GLM_COMPILER &gt;= GLM_COMPILER_VC15</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#                       if _MSVC_LANG &gt; 201402L</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#                               define GLM_LANG_PLATFORM 201402L</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#                       else</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#                               define GLM_LANG_PLATFORM _MSVC_LANG</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#                       define GLM_LANG_PLATFORM 0</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#               define GLM_LANG_PLATFORM 0</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#       if __cplusplus &gt; 201703L || GLM_LANG_PLATFORM &gt; 201703L</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX20 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">#       elif __cplusplus == 201703L || GLM_LANG_PLATFORM == 201703L</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#       elif __cplusplus == 201402L || __cplusplus == 201406L || __cplusplus == 201500L || GLM_LANG_PLATFORM == 201402L</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#       elif __cplusplus == 201103L || GLM_LANG_PLATFORM == 201103L</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#       elif defined(__INTEL_CXX11_MODE__) || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor">#       elif __cplusplus == 199711L</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#               define GLM_LANG (0 | GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">// Has of C++ features</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">// http://clang.llvm.org/cxx_status.html</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">// http://gcc.gnu.org/projects/cxx0x.html</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">// Android has multiple STLs but C++11 STL detection doesn&#39;t always work #284 #564</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#if GLM_PLATFORM == GLM_PLATFORM_ANDROID &amp;&amp; !defined(GLM_LANG_STL11_FORCED)</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_CUDA_RTC) == GLM_COMPILER_CUDA_RTC</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#       if (defined(_LIBCPP_VERSION) || (GLM_LANG &amp; GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED))</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#               define GLM_HAS_CXX11_STL 1</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#               define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 1</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC48)) || \</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">                ((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15))))</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">// N1720</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#       define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#       define GLM_HAS_STATIC_ASSERT 1</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor">#       define GLM_HAS_STATIC_ASSERT ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; </div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment">// N1988</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXTENDED_INTEGER_TYPE 1</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXTENDED_INTEGER_TYPE (\</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">                ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">                ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">                ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_CLANG)) || \</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP)))</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment">// N2672 Initializer lists http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">#       define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#       define GLM_HAS_INITIALIZER_LISTS 1</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#       define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15)) || \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL14)) || \</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">#       define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor">#       define GLM_HAS_UNRESTRICTED_UNIONS 1</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">#       define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">                (GLM_COMPILER &amp; GLM_COMPILER_VC) || \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP)))</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">// N2346</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor">#       define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">#       define GLM_HAS_DEFAULTED_FUNCTIONS 1</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#       define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="preprocessor">                (GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP)))</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">// N2118</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="preprocessor">#       define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="preprocessor">#       define GLM_HAS_RVALUE_REFERENCES 1</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">#       define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL14)) || \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="comment">// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="preprocessor">#       define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="preprocessor">#       define GLM_HAS_TEMPLATE_ALIASES 1</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="preprocessor">#       define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment">// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="preprocessor">#       define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="preprocessor">#       define GLM_HAS_RANGE_FOR 1</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="preprocessor">#       define GLM_HAS_RANGE_FOR ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;{</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keyword">template</span>&lt;glm::qualifier P&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">struct </span>is_aligned</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        {</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        };</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                <span class="keyword">struct </span>is_aligned&lt;glm::aligned_lowp&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                };</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">struct </span>is_aligned&lt;glm::aligned_mediump&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                };</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="keyword">struct </span>is_aligned&lt;glm::aligned_highp&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                };</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keywordtype">bool</span> is_aligned&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">struct </span>storage</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        {</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                <span class="keyword">typedef</span> <span class="keyword">struct </span>type {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                        T data[L];</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                } type;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        };</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#       if GLM_HAS_ALIGNOF</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                <span class="keyword">struct </span>storage&lt;L, T, true&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                        <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(L * sizeof(T)) type {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                                T data[L];</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        } type;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                };</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                <span class="keyword">struct </span>storage&lt;3, T, true&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                {</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                        <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(4 * sizeof(T)) type {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                T data[4];</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                        } type;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                };</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#       if GLM_ARCH &amp; GLM_ARCH_SSE2_BIT</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keyword">struct </span>storage&lt;4, float, true&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                <span class="keyword">typedef</span> glm_f32vec4 type;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        };</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keyword">struct </span>storage&lt;4, int, true&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="keyword">typedef</span> glm_i32vec4 type;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        };</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">struct </span>storage&lt;4, unsigned int, true&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        {</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                <span class="keyword">typedef</span> glm_u32vec4 type;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        };</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <span class="keyword">struct </span>storage&lt;3, float, true&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                <span class="keyword">typedef</span> glm_f32vec4 type;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        };</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keyword">struct </span>storage&lt;3, int, true&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                <span class="keyword">typedef</span> glm_i32vec4 type;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        };</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keyword">struct </span>storage&lt;3, unsigned int, true&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                <span class="keyword">typedef</span> glm_u32vec4 type;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        };</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keyword">struct </span>storage&lt;2, double, true&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keyword">typedef</span> glm_f64vec2 type;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        };</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keyword">struct </span>storage&lt;2, detail::<a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>, true&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keyword">typedef</span> glm_i64vec2 type;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        };</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keyword">struct </span>storage&lt;2, detail::<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        {</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keyword">typedef</span> glm_u64vec2 type;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        };</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">struct </span>storage&lt;3, detail::<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                <span class="keyword">typedef</span> glm_u64vec2 type;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        };</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keyword">struct </span>storage&lt;4, double, true&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        {</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#       if (GLM_ARCH &amp; GLM_ARCH_AVX_BIT)</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                <span class="keyword">typedef</span> glm_f64vec4 type;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                <span class="keyword">struct </span>type</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                {</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                        glm_f64vec2 data[2];</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                        GLM_CONSTEXPR glm_f64vec2 getv(<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                                <span class="keywordflow">return</span> data[i];</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                        }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                        GLM_CONSTEXPR <span class="keywordtype">void</span> setv(<span class="keywordtype">int</span> i, <span class="keyword">const</span> glm_f64vec2&amp; v) {</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                                data[i] = v;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                        }</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                };</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        };</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="keyword">struct </span>storage&lt;3, double, true&gt; : <span class="keyword">public</span> storage&lt;4, double, true&gt;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        {};</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#       if (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT)</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keyword">struct </span>storage&lt;4, detail::<a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>, true&gt;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                <span class="keyword">typedef</span> glm_i64vec4 type;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        };</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keyword">struct </span>storage&lt;4, detail::<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>, true&gt;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        {</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keyword">typedef</span> glm_u64vec4 type;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        };</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">#       if GLM_ARCH &amp; GLM_ARCH_NEON_BIT</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <span class="keyword">struct </span>storage&lt;4, float, true&gt;</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        {</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <span class="keyword">typedef</span> glm_f32vec4 type;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        };</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keyword">struct </span>storage&lt;3, float, true&gt; : <span class="keyword">public</span> storage&lt;4, float, true&gt;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        {};</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keyword">struct </span>storage&lt;4, int, true&gt;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                <span class="keyword">typedef</span> glm_i32vec4 type;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        };</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keyword">struct </span>storage&lt;3, int, true&gt; : <span class="keyword">public</span> storage&lt;4, int, true&gt;</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        {};</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <span class="keyword">struct </span>storage&lt;4, unsigned int, true&gt;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        {</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                <span class="keyword">typedef</span> glm_u32vec4 type;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        };</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="keyword">struct </span>storage&lt;3, unsigned int, true&gt; : <span class="keyword">public</span> storage&lt;4, unsigned int, true&gt;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        {};</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">#       if GLM_HAS_ALIGNOF</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="keyword">struct </span>storage&lt;3, double, true&gt;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        {</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                <span class="keyword">typedef</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(4 * sizeof(double)) type {</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                        <span class="keywordtype">double</span> data[4];</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                } type;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        };</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="preprocessor">#       endif//GLM_HAS_ALIGNOF</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keyword">enum</span> genTypeEnum</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        {</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                GENTYPE_VEC,</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;                GENTYPE_MAT,</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                GENTYPE_QUAT</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        };</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keyword">struct </span>genTypeTrait</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        {};</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160; </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keyword">template</span> &lt;length_t C, length_t R, <span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="keyword">struct </span>genTypeTrait&lt;mat&lt;C, R, T&gt; &gt;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        {</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                <span class="keyword">static</span> <span class="keyword">const</span> genTypeEnum GENTYPE = GENTYPE_MAT;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        };</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160; </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType, genTypeEnum type&gt;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="keyword">struct </span>init_gentype</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        };</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="keyword">struct </span>init_gentype&lt;genType, GENTYPE_QUAT&gt;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        {</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genType <a class="code" href="a00837.html#ga81696f2b8d1db02ea1aff8da8f269314">identity</a>()</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                        <span class="keywordflow">return</span> genType(1, 0, 0, 0);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                }</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        };</div>
 <div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment">// N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="preprocessor">#       define GLM_HAS_ALIGNOF __has_feature(cxx_alignas)</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="preprocessor">#       define GLM_HAS_ALIGNOF 1</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="preprocessor">#       define GLM_HAS_ALIGNOF ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15)) || \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14)) || \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment">// N2235 Generalized Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">// N3652 Extended Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="preprocessor">#if (GLM_ARCH &amp; GLM_ARCH_SIMD_BIT) // Compiler SIMD intrinsics don&#39;t support constexpr...</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR 0</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR __has_feature(cxx_relaxed_constexpr)</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="preprocessor">#elif (GLM_LANG &amp; GLM_LANG_CXX14_FLAG)</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR 1</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; GLM_HAS_INITIALIZER_LISTS &amp;&amp; (\</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL17)) || \</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15))))</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="preprocessor">#       define GLM_CONSTEXPR constexpr</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor">#       define GLM_CONSTEXPR</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor"># if (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#       if __has_feature(cxx_if_constexpr)</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor">#               define GLM_HAS_IF_CONSTEXPR 1</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">#               define GLM_HAS_IF_CONSTEXPR 0</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor"># elif (GLM_LANG &amp; GLM_LANG_CXX17_FLAG)</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">#       define GLM_HAS_IF_CONSTEXPR 1</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">#       define GLM_HAS_IF_CONSTEXPR 0</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#       define GLM_HAS_IF_CONSTEXPR 0</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160; </div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="preprocessor">#if GLM_HAS_IF_CONSTEXPR</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="preprocessor">#       define GLM_IF_CONSTEXPR if constexpr</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="preprocessor">#       define GLM_IF_CONSTEXPR if</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#       define GLM_HAS_ASSIGNABLE 1</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#       define GLM_HAS_ASSIGNABLE ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15)) || \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC49))))</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160; </div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="preprocessor">#define GLM_HAS_TRIVIAL_QUERIES 0</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="preprocessor">#       define GLM_HAS_MAKE_SIGNED 1</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">#       define GLM_HAS_MAKE_SIGNED ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160; </div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INTRINSICS)</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="preprocessor">#       define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_X86_BIT))))</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="preprocessor">#       define GLM_HAS_BITSCAN_WINDOWS 0</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#       define GLM_HAS_NOEXCEPT 1</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">#       define GLM_HAS_NOEXCEPT 0</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160; </div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">#if GLM_HAS_NOEXCEPT</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor">#       define GLM_NOEXCEPT noexcept</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor">#       define GLM_NOEXCEPT</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment">// OpenMP</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_GCC61</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 45</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="preprocessor">#               elif GLM_COMPILER &gt;= GLM_COMPILER_GCC49</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 40</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#               elif GLM_COMPILER &gt;= GLM_COMPILER_GCC47</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 31</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 0</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_CLANG38</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 31</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 0</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">#               define GLM_HAS_OPENMP 20</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_INTEL16</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 40</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 0</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">#               define GLM_HAS_OPENMP 0</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="preprocessor">#       define GLM_HAS_OPENMP 0</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="comment">// nullptr</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX0X_FLAG</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_NULLPTR GLM_ENABLE</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_NULLPTR GLM_DISABLE</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160; </div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="preprocessor">#if GLM_CONFIG_NULLPTR == GLM_ENABLE</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="preprocessor">#       define GLM_NULLPTR nullptr</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">#       define GLM_NULLPTR 0</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="comment">// Static assert</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="preprocessor">#       define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#       define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">#       define GLM_STATIC_ASSERT(x, message) assert(x)</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">#endif//GLM_LANG</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="comment">// Qualifiers</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160; </div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="comment">// User defines: GLM_CUDA_FORCE_DEVICE_FUNC, GLM_CUDA_FORCE_HOST_FUNC</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160; </div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="preprocessor">#       if defined(GLM_CUDA_FORCE_DEVICE_FUNC) &amp;&amp; defined(GLM_CUDA_FORCE_HOST_FUNC)</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<span class="preprocessor">#               error &quot;GLM error: GLM_CUDA_FORCE_DEVICE_FUNC and GLM_CUDA_FORCE_HOST_FUNC should not be defined at the same time, GLM by default generates both device and host code for CUDA compiler.&quot;</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">#       endif//defined(GLM_CUDA_FORCE_DEVICE_FUNC) &amp;&amp; defined(GLM_CUDA_FORCE_HOST_FUNC)</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">#       if defined(GLM_CUDA_FORCE_DEVICE_FUNC)</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DEF __device__</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DECL __device__</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="preprocessor">#       elif defined(GLM_CUDA_FORCE_HOST_FUNC)</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DEF __host__</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DECL __host__</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="preprocessor">#       endif//defined(GLM_CUDA_FORCE_XXXX_FUNC)</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="preprocessor">#       define GLM_CUDA_FUNC_DEF</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="preprocessor">#       define GLM_CUDA_FUNC_DECL</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="preprocessor">#               define GLM_INLINE __forceinline</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE __declspec(noinline)</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="preprocessor">#               define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">#       elif (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">#               define GLM_INLINE __forceinline__</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE __noinline__</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="preprocessor">#               define GLM_INLINE inline</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="preprocessor">#       endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="preprocessor">#       define GLM_INLINE inline</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">#       define GLM_NEVER_INLINE</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160; </div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160; </div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="comment">// Do not use CUDA function qualifiers on CUDA compiler when functions are made default</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_DECL</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_QUALIFIER GLM_INLINE</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_DECL GLM_FUNC_DECL</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_QUALIFIER GLM_FUNC_QUALIFIER</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="preprocessor">#endif//GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="preprocessor">#if !defined(GLM_FORCE_CTOR_INIT)</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_DEFAULTED_FUNC_DECL</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_DEFAULTED_FUNC_QUALIFIER</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_FUNC_DECL</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_FUNC_QUALIFIER</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">#endif//GLM_FORCE_CTOR_INIT</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; </div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="comment">// Swizzle operators</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="comment">// User defines: GLM_FORCE_SWIZZLE</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160; </div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_DISABLED            0</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_OPERATOR            1</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION            2</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160; </div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;<span class="preprocessor">#if defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="preprocessor">#       pragma message(&quot;GLM: GLM_SWIZZLE is deprecated, use GLM_FORCE_SWIZZLE instead.&quot;)</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="preprocessor">#       define GLM_FORCE_SWIZZLE</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160; </div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE) &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG) &amp;&amp; !defined(GLM_FORCE_XYZW_ONLY)</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_SWIZZLE)</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_DISABLED</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160; </div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;<span class="comment">// Allows using not basic types as genType</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160; </div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160; </div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_ENABLE</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_DISABLE</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160; </div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="comment">// Allows using any scaler as float</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160; </div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_FLOAT</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160; </div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_FLOAT</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_FLOAT GLM_ENABLE</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_FLOAT GLM_DISABLE</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160; </div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="comment">// Clip control, define GLM_FORCE_DEPTH_ZERO_TO_ONE before including GLM</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="comment">// to use a clip space between 0 to 1.</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="comment">// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="comment">// to use left handed coordinate system by default.</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160; </div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_ZO_BIT         (1 &lt;&lt; 0) // ZERO_TO_ONE</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_NO_BIT         (1 &lt;&lt; 1) // NEGATIVE_ONE_TO_ONE</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_LH_BIT         (1 &lt;&lt; 2) // LEFT_HANDED, For DirectX, Metal, Vulkan</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_RH_BIT         (1 &lt;&lt; 3) // RIGHT_HANDED, For OpenGL, default in GLM</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160; </div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_LH_ZO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_ZO_BIT)</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_LH_NO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_NO_BIT)</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_RH_ZO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_ZO_BIT)</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_RH_NO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_NO_BIT)</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160; </div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="preprocessor">#       ifdef GLM_FORCE_LEFT_HANDED</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_ZO</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_ZO</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="preprocessor">#       ifdef GLM_FORCE_LEFT_HANDED</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_NO</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_NO</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160; </div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="comment">// Qualifiers</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160; </div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED __declspec(deprecated)</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160; </div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160; </div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="preprocessor">#       define GLM_EXPLICIT explicit</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="preprocessor">#       define GLM_EXPLICIT</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160; </div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="comment">// Length type: all length functions returns a length_t type.</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;<span class="comment">// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="comment">// length_t is a typedef of int like GLSL defines it.</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="preprocessor">#define GLM_LENGTH_INT          1</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="preprocessor">#define GLM_LENGTH_SIZE_T       2</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160; </div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_SIZE_T_LENGTH</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_LENGTH_TYPE           GLM_LENGTH_SIZE_T</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_LENGTH_TYPE           GLM_LENGTH_INT</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160; </div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;{</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;        <span class="keyword">using</span> std::size_t;</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160; </div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="comment">// constexpr</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; </div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CONSTEXP GLM_ENABLE</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160; </div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;        <span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        {</div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N&gt;</div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;                constexpr std::size_t countof(T <span class="keyword">const</span> (&amp;)[N])</div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;                {</div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;                        <span class="keywordflow">return</span> N;</div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;                }</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;<span class="preprocessor">#       define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CONSTEXP GLM_DISABLE</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160; </div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;<span class="preprocessor">#       define GLM_COUNTOF(arr) _countof(arr)</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CONSTEXP GLM_DISABLE</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160; </div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="preprocessor">#       define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160; </div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="comment">// uint</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160; </div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;{</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <span class="keyword">struct </span>is_int</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        {</div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;                <span class="keyword">enum</span> test {value = 0};</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;        };</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160; </div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        <span class="keyword">struct </span>is_int&lt;unsigned int&gt;</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;        {</div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;                <span class="keyword">enum</span> test {value = ~0};</div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;        };</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160; </div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <span class="keyword">struct </span>is_int&lt;signed int&gt;</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        {</div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;                <span class="keyword">enum</span> test {value = ~0};</div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        };</div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160; </div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    uint;</div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160; </div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;<span class="comment">// 64-bit int</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160; </div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<span class="preprocessor">#       include &lt;cstdint&gt;</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160; </div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;{</div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;<span class="preprocessor">#       if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00913.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>                                           <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00913.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>                                            <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;<span class="preprocessor">#       elif (defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00913.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>                                                        <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00913.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>                                                         <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64                                        <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64                                          <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="preprocessor">#               pragma GCC diagnostic ignored &quot;-Wlong-long&quot;</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;                __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>        <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>          <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="preprocessor">#       elif (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="preprocessor">#               pragma clang diagnostic ignored &quot;-Wc++11-long-long&quot;</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                      <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                        <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="preprocessor">#       else//unknown compiler</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                      <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                        <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; </div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;<span class="comment">// make_unsigned</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160; </div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="preprocessor">#if GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="preprocessor">#       include &lt;type_traits&gt;</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160; </div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;{</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        <span class="keyword">using</span> std::make_unsigned;</div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160; </div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160; </div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;{</div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;        <span class="keyword">struct </span>make_unsigned</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;        {};</div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160; </div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;char&gt;</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;        {</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;        };</div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160; </div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;signed char&gt;</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;        {</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;        };</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160; </div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;short&gt;</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        {</div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        };</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160; </div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;int&gt;</div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;        {</div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        };</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160; </div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;long&gt;</div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;        {</div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        };</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; </div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;<a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>&gt;</div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        {</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> type;</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        };</div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160; </div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned char&gt;</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;        {</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;        };</div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160; </div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned short&gt;</div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;        {</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;        };</div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned int&gt;</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;        {</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        };</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; </div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned long&gt;</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        {</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;        };</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; </div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;<a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&gt;</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        {</div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00864.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> type;</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        };</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160; </div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;<span class="comment">// Only use x, y, z, w as vector type components</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; </div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_XYZW_ONLY</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_XYZW_ONLY GLM_ENABLE</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_XYZW_ONLY GLM_DISABLE</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160; </div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;<span class="comment">// Configure the use of defaulted initialized types</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160; </div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="preprocessor">#define GLM_CTOR_INIT_DISABLE           0</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="preprocessor">#define GLM_CTOR_INITIALIZER_LIST       1</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;<span class="preprocessor">#define GLM_CTOR_INITIALISATION         2</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160; </div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_CTOR_INIT) &amp;&amp; GLM_HAS_INITIALIZER_LISTS</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALIZER_LIST</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CTOR_INIT) &amp;&amp; !GLM_HAS_INITIALIZER_LISTS</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALISATION</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CTOR_INIT GLM_CTOR_INIT_DISABLE</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160; </div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;<span class="comment">// Use SIMD instruction sets</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160; </div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;<span class="preprocessor">#if GLM_HAS_ALIGNOF &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_SIMD_BIT)</span></div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SIMD GLM_ENABLE</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SIMD GLM_DISABLE</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160; </div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;<span class="comment">// Configure the use of defaulted function</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160; </div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_ENABLE</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT = default</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_DISABLE</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160; </div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;<span class="preprocessor">#if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INIT_DISABLE &amp;&amp; GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_DEFAULT_CTOR GLM_ENABLE</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT_CTOR GLM_DEFAULT</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_DEFAULT_CTOR GLM_DISABLE</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT_CTOR</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;<span class="comment">// Configure the use of aligned gentypes</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160; </div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_ALIGNED // Legacy define</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;<span class="preprocessor">#       define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160; </div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;<span class="preprocessor">#       define GLM_FORCE_ALIGNED_GENTYPES</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160; </div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;<span class="preprocessor">#if GLM_HAS_ALIGNOF &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG) &amp;&amp; (defined(GLM_FORCE_ALIGNED_GENTYPES) || (GLM_CONFIG_SIMD == GLM_ENABLE))</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ALIGNED_GENTYPES GLM_ENABLE</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ALIGNED_GENTYPES GLM_DISABLE</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160; </div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;<span class="comment">// Configure the use of anonymous structure as implementation detail</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160; </div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="preprocessor">#if ((GLM_CONFIG_SIMD == GLM_ENABLE) || (GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR) || (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE))</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ANONYMOUS_STRUCT GLM_ENABLE</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ANONYMOUS_STRUCT GLM_DISABLE</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160; </div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;<span class="comment">// Silent warnings</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160; </div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_WARNINGS</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;<span class="preprocessor">#       define GLM_SILENT_WARNINGS GLM_DISABLE</span></div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;<span class="preprocessor">#       define GLM_SILENT_WARNINGS GLM_ENABLE</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160; </div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;<span class="comment">// Precision</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160; </div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;<span class="preprocessor">#define GLM_HIGHP               1</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;<span class="preprocessor">#define GLM_MEDIUMP             2</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;<span class="preprocessor">#define GLM_LOWP                3</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160; </div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_BOOL) || defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_HIGHP</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_BOOL) || defined(GLM_PRECISION_MEDIUMP_BOOL)</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_MEDIUMP</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_BOOL) || defined(GLM_PRECISION_LOWP_BOOL)</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_LOWP</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_HIGHP</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160; </div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_INT) || defined(GLM_PRECISION_HIGHP_INT)</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_HIGHP</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_INT) || defined(GLM_PRECISION_MEDIUMP_INT)</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_MEDIUMP</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_INT) || defined(GLM_PRECISION_LOWP_INT)</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_LOWP</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_HIGHP</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160; </div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_UINT) || defined(GLM_PRECISION_HIGHP_UINT)</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_HIGHP</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_UINT) || defined(GLM_PRECISION_MEDIUMP_UINT)</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_MEDIUMP</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_UINT) || defined(GLM_PRECISION_LOWP_UINT)</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_LOWP</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_HIGHP</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160; </div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_FLOAT) || defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_HIGHP</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_FLOAT) || defined(GLM_PRECISION_MEDIUMP_FLOAT)</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_MEDIUMP</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_FLOAT) || defined(GLM_PRECISION_LOWP_FLOAT)</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_LOWP</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_HIGHP</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160; </div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_DOUBLE) || defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_HIGHP</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_DOUBLE) || defined(GLM_PRECISION_MEDIUMP_DOUBLE)</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_MEDIUMP</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_DOUBLE) || defined(GLM_PRECISION_LOWP_DOUBLE)</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_LOWP</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_HIGHP</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160; </div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;<span class="comment">// Check inclusions of different versions of GLM</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160; </div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;<span class="preprocessor">#elif ((GLM_SETUP_INCLUDED != GLM_VERSION) &amp;&amp; !defined(GLM_FORCE_IGNORE_VERSION))</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;<span class="preprocessor">#       error &quot;GLM error: A different version of GLM is already included. Define GLM_FORCE_IGNORE_VERSION before including GLM headers to ignore this error.&quot;</span></div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;<span class="preprocessor">#elif GLM_SETUP_INCLUDED == GLM_VERSION</span></div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160; </div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;<span class="comment">// Messages</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160; </div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_MESSAGE_DISPLAYED)</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;<span class="preprocessor">#       define GLM_MESSAGE_DISPLAYED</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;<span class="preprocessor">#               define GLM_STR_HELPER(x) #x</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;<span class="preprocessor">#               define GLM_STR(x) GLM_STR_HELPER(x)</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160; </div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        <span class="comment">// Report GLM version</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;<span class="preprocessor">#               pragma message (GLM_STR(GLM_VERSION_MESSAGE))</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        <span class="comment">// Report C++ language</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;<span class="preprocessor">#       if (GLM_LANG &amp; GLM_LANG_CXX20_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 20 with extensions&quot;)</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX20_FLAG)</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 2A&quot;)</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX17_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 17 with extensions&quot;)</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX17_FLAG)</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 17&quot;)</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX14_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 14 with extensions&quot;)</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX14_FLAG)</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 14&quot;)</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX11_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 11 with extensions&quot;)</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX11_FLAG)</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 11&quot;)</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 0x with extensions&quot;)</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG)</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 0x&quot;)</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX03_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 03 with extensions&quot;)</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX03_FLAG)</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 03&quot;)</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX98_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 98 with extensions&quot;)</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX98_FLAG)</span></div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 98&quot;)</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ language undetected&quot;)</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">#       endif//GLM_LANG</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;        <span class="comment">// Report compiler detection</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: CUDA compiler detected&quot;)</span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_HIP</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: HIP compiler detected&quot;)</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Visual C++ compiler detected&quot;)</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Clang compiler detected&quot;)</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Intel Compiler detected&quot;)</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GCC compiler detected&quot;)</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Compiler not detected&quot;)</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        <span class="comment">// Report build target</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="preprocessor">#       if (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with AVX2 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with AVX2 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_AVX_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with AVX instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_AVX_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with AVX instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; </div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE42_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE4.2 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE42_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE4.2 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; </div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE41_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE4.1 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE41_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE4.1 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; </div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSSE3 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSSE3 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; </div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE3 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE3 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; </div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE2 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE2 instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; </div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_X86_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits build target&quot;)</span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_X86_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits build target&quot;)</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; </div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_NEON_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 64 bits with Neon instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_NEON_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 32 bits with Neon instruction set build target&quot;)</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; </div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_ARM_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 64 bits build target&quot;)</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_ARM_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 32 bits build target&quot;)</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; </div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_MIPS_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: MIPS 64 bits build target&quot;)</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_MIPS_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: MIPS 32 bits build target&quot;)</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; </div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_PPC_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: PowerPC 64 bits build target&quot;)</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_PPC_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: PowerPC 32 bits build target&quot;)</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Unknown build target&quot;)</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="preprocessor">#       endif//GLM_ARCH</span></div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; </div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;        <span class="comment">// Report platform name</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="preprocessor">#       if(GLM_PLATFORM &amp; GLM_PLATFORM_QNXNTO)</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: QNX platform detected&quot;)</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="comment">//#     elif(GLM_PLATFORM &amp; GLM_PLATFORM_IOS)</span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="comment">//#             pragma message(&quot;GLM: iOS platform detected&quot;)</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_APPLE)</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Apple platform detected&quot;)</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_WINCE)</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: WinCE platform detected&quot;)</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS)</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Windows platform detected&quot;)</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_CHROME_NACL)</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Native Client detected&quot;)</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_ANDROID)</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Android platform detected&quot;)</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_LINUX)</span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Linux platform detected&quot;)</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_UNIX)</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: UNIX platform detected&quot;)</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_UNKNOWN)</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: platform unknown&quot;)</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: platform not detected&quot;)</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; </div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;        <span class="comment">// Report whether only xyzw component are used</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="preprocessor">#       if defined GLM_FORCE_XYZW_ONLY</span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_XYZW_ONLY is defined. Only x, y, z and w component are available in vector type. This define disables swizzle operators and SIMD instruction sets.&quot;)</span></div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; </div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;        <span class="comment">// Report swizzle operator support</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SWIZZLE is defined, swizzling operators enabled.&quot;)</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="preprocessor">#       elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SWIZZLE is defined, swizzling functions enabled. Enable compiler C++ language extensions to enable swizzle operators.&quot;)</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SWIZZLE is undefined. swizzling functions or operators are disabled.&quot;)</span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; </div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;        <span class="comment">// Report .length() type</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T</span></div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SIZE_T_LENGTH is defined. .length() returns a glm::length_t, a typedef of std::size_t.&quot;)</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SIZE_T_LENGTH is undefined. .length() returns a glm::length_t, a typedef of int following GLSL.&quot;)</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; </div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_UNRESTRICTED_GENTYPE == GLM_ENABLE</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is defined. Removes GLSL restrictions on valid function genTypes.&quot;)</span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is undefined. Follows strictly GLSL on valid function genTypes.&quot;)</span></div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; </div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="preprocessor">#       if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SILENT_WARNINGS is defined. Ignores C++ warnings from using C++ language extensions.&quot;)</span></div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SILENT_WARNINGS is undefined. Shows C++ warnings from using C++ language extensions.&quot;)</span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; </div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="preprocessor">#       ifdef GLM_FORCE_SINGLE_ONLY</span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SINGLE_ONLY is defined. Using only single precision floating-point types.&quot;)</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; </div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="preprocessor">#       if defined(GLM_FORCE_ALIGNED_GENTYPES) &amp;&amp; (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE)</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="preprocessor">#               undef GLM_FORCE_ALIGNED_GENTYPES</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_ALIGNED_GENTYPES is defined, allowing aligned types. This prevents the use of C++ constexpr.&quot;)</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="preprocessor">#       elif defined(GLM_FORCE_ALIGNED_GENTYPES) &amp;&amp; (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)</span></div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="preprocessor">#               undef GLM_FORCE_ALIGNED_GENTYPES</span></div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.&quot;)</span></div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; </div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="preprocessor">#       if defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)</span></div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE</span></div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="preprocessor">#                       undef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES</span></div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="preprocessor">#                       pragma message(&quot;GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.&quot;)</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="preprocessor">#                       pragma message(&quot;GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined. All gentypes (e.g. vec3) will be aligned and padded by default.&quot;)</span></div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; </div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_CLIP_CONTROL &amp; GLM_CLIP_CONTROL_ZO_BIT</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is defined. Using zero to one depth clip space.&quot;)</span></div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is undefined. Using negative one to one depth clip space.&quot;)</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; </div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_CLIP_CONTROL &amp; GLM_CLIP_CONTROL_LH_BIT</span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_LEFT_HANDED is defined. Using left handed coordinate system.&quot;)</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="preprocessor">#       else</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_LEFT_HANDED is undefined. Using right handed coordinate system.&quot;)</span></div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="preprocessor">#       endif</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; </div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="preprocessor">#endif//GLM_SETUP_INCLUDED</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keyword">struct </span>init_gentype&lt;genType, GENTYPE_MAT&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        {</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> genType <a class="code" href="a00837.html#ga81696f2b8d1db02ea1aff8da8f269314">identity</a>()</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;                {</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                        <span class="keywordflow">return</span> genType(1);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                }</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        };</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00864_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00864.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00374_source.html#l00067">scalar_uint_sized.hpp:67</a></div></div>
-<div class="ttc" id="aa00913_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00913.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">uint64 uint64_t</div><div class="ttdoc">Default qualifier 64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00521_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="aa00913_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00913.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">int64 int64_t</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00521_source.html#l00085">fwd.hpp:85</a></div></div>
-<div class="ttc" id="aa00859_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00359_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
+<div class="ttc" id="aa00873_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00873.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00377_source.html#l00067">scalar_uint_sized.hpp:67</a></div></div>
+<div class="ttc" id="aa00837_html_ga81696f2b8d1db02ea1aff8da8f269314"><div class="ttname"><a href="a00837.html#ga81696f2b8d1db02ea1aff8da8f269314">glm::identity</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType identity()</div><div class="ttdoc">Builds an identity matrix.</div></div>
+<div class="ttc" id="aa00868_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00362_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 1159 - 67
doc/api/a00035_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_float.hpp Source File</title>
+<title>1.0.2 API documentation: setup.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,79 +67,1171 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_float.hpp</div>  </div>
+<div class="title">setup.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef GLM_SETUP_INCLUDED</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#if GLM_COMPILER == GLM_COMPILER_VC12</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#       pragma warning(push)</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#       pragma warning(disable: 4512) // assignment operator could not be generated</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">union </span>float_t</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {};</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#define GLM_VERSION_MAJOR 1</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#define GLM_VERSION_MINOR 0</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define GLM_VERSION_PATCH 2</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define GLM_VERSION_REVISION 0 // Deprecated</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define GLM_VERSION 1000 // Deprecated</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define GLM_MAKE_API_VERSION(variant, major, minor, patch) \</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">    ((((uint32_t)(variant)) &lt;&lt; 29U) | (((uint32_t)(major)) &lt;&lt; 22U) | (((uint32_t)(minor)) &lt;&lt; 12U) | ((uint32_t)(patch)))</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define GLM_VERSION_COMPLETE GLM_MAKE_API_VERSION(0, GLM_VERSION_MAJOR, GLM_VERSION_MINOR, GLM_VERSION_PATCH)</span></div>
 <div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="comment">// https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keyword">union </span>float_t&lt;float&gt;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        {</div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">int</span> int_type;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">float</span> float_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define GLM_SETUP_INCLUDED GLM_VERSION</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_VARIANT(version) ((uint32_t)(version) &gt;&gt; 29U)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_MAJOR(version) (((uint32_t)(version) &gt;&gt; 22U) &amp; 0x7FU)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_MINOR(version) (((uint32_t)(version) &gt;&gt; 12U) &amp; 0x3FFU)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define GLM_GET_VERSION_PATCH(version) ((uint32_t)(version) &amp; 0xFFFU)</span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                GLM_CONSTEXPR float_t(float_type Num = 0.0f) : f(Num) {}</div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                GLM_CONSTEXPR float_t&amp; operator=(float_t <span class="keyword">const</span>&amp; x)</div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                {</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                        f = x.f;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                }</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                <span class="comment">// Portable extraction of components.</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                GLM_CONSTEXPR <span class="keywordtype">bool</span> negative()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &lt; 0; }</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                GLM_CONSTEXPR int_type mantissa()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &amp; ((1 &lt;&lt; 23) - 1); }</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_CONSTEXPR int_type exponent()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i &gt;&gt; 23) &amp; ((1 &lt;&lt; 8) - 1); }</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                int_type i;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                float_type f;</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        };</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">union </span>float_t&lt;double&gt;</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        {</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">detail::int64</a> int_type;</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">double</span> float_type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">// Active states</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define GLM_DISABLE             0</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define GLM_ENABLE              1</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">// Messages</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_MESSAGES)</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#       define GLM_MESSAGES GLM_ENABLE</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#       define GLM_MESSAGES GLM_DISABLE</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">// Detect the platform</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;../simd/platform.h&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">// Build model</span></div>
 <div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                GLM_CONSTEXPR float_t(float_type Num = <span class="keyword">static_cast&lt;</span>float_type<span class="keyword">&gt;</span>(0)) : f(Num) {}</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                GLM_CONSTEXPR float_t&amp; operator=(float_t <span class="keyword">const</span>&amp; x)</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                {</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        f = x.f;</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#if defined(_M_ARM64) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#       define GLM_MODEL        GLM_MODEL_64</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#elif defined(__i386__) || defined(__ppc__) || defined(__ILP32__) || defined(_M_ARM)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#       define GLM_MODEL        GLM_MODEL_32</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#       define GLM_MODEL        GLM_MODEL_32</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif//</span></div>
 <div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                <span class="comment">// Portable extraction of components.</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_CONSTEXPR <span class="keywordtype">bool</span> negative()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &lt; 0; }</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                GLM_CONSTEXPR int_type mantissa()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &amp; ((int_type(1) &lt;&lt; 52) - 1); }</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                GLM_CONSTEXPR int_type exponent()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i &gt;&gt; 52) &amp; ((int_type(1) &lt;&lt; 11) - 1); }</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                int_type i;</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                float_type f;</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        };</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#if GLM_COMPILER == GLM_COMPILER_VC12</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#       pragma warning(pop)</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#if !defined(GLM_MODEL) &amp;&amp; GLM_COMPILER != 0</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#       error &quot;GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message.&quot;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#endif//GLM_MODEL</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">// C++ Version</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">// User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14, GLM_FORCE_CXX17, GLM_FORCE_CXX2A</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98_FLAG                     (1 &lt;&lt; 1)</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03_FLAG                     (1 &lt;&lt; 2)</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X_FLAG                     (1 &lt;&lt; 3)</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11_FLAG                     (1 &lt;&lt; 4)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14_FLAG                     (1 &lt;&lt; 5)</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX17_FLAG                     (1 &lt;&lt; 6)</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX20_FLAG                     (1 &lt;&lt; 7)</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS_FLAG                     (1 &lt;&lt; 8)</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU_FLAG            (1 &lt;&lt; 9)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98                  GLM_LANG_CXX98_FLAG</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03                  (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X                  (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11                  (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14                  (GLM_LANG_CXX11 | GLM_LANG_CXX14_FLAG)</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX17                  (GLM_LANG_CXX14 | GLM_LANG_CXX17_FLAG)</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX20                  (GLM_LANG_CXX17 | GLM_LANG_CXX20_FLAG)</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS                  GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU                 GLM_LANG_CXXGNU_FLAG</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#if (defined(_MSC_EXTENSIONS))</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#       define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#elif ((GLM_COMPILER &amp; (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_SIMD_BIT))</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#       define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#       define GLM_LANG_EXT 0</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#if (defined(GLM_FORCE_CXX_UNKNOWN))</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#       define GLM_LANG 0</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX20)</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX20 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX17)</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX14)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX11)</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#       define GLM_LANG_STL11_FORCED</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX03)</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX03 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX98)</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#       define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_VC &amp;&amp; defined(_MSVC_LANG)</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_VC15_7</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor">#                       define GLM_LANG_PLATFORM _MSVC_LANG</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor">#               elif GLM_COMPILER &gt;= GLM_COMPILER_VC15</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#                       if _MSVC_LANG &gt; 201402L</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#                               define GLM_LANG_PLATFORM 201402L</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#                       else</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#                               define GLM_LANG_PLATFORM _MSVC_LANG</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#                       define GLM_LANG_PLATFORM 0</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#               define GLM_LANG_PLATFORM 0</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#       if __cplusplus &gt; 201703L || GLM_LANG_PLATFORM &gt; 201703L</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX20 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#       elif __cplusplus == 201703L || GLM_LANG_PLATFORM == 201703L</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#       elif __cplusplus == 201402L || __cplusplus == 201406L || __cplusplus == 201500L || GLM_LANG_PLATFORM == 201402L</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">#       elif __cplusplus == 201103L || GLM_LANG_PLATFORM == 201103L</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#       elif defined(__INTEL_CXX11_MODE__) || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#       elif __cplusplus == 199711L</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor">#               define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#               define GLM_LANG (0 | GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">// Has of C++ features</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">// http://clang.llvm.org/cxx_status.html</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">// http://gcc.gnu.org/projects/cxx0x.html</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_CUDA_RTC) == GLM_COMPILER_CUDA_RTC</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 0</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 0</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">#       if (defined(_LIBCPP_VERSION) || (GLM_LANG &amp; GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED))</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#               define GLM_HAS_CXX11_STL 1</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#               define GLM_HAS_CXX11_STL 0</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL 1</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">#       define GLM_HAS_CXX11_STL ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC48)) || \</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">                ((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15))))</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">// N1720</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#       define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor">#       define GLM_HAS_STATIC_ASSERT 1</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#       define GLM_HAS_STATIC_ASSERT ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">// N1988</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXTENDED_INTEGER_TYPE 1</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXTENDED_INTEGER_TYPE (\</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">                ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">                ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">                ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_CLANG)) || \</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP)))</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment">// N2672 Initializer lists http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor">#       define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor">#       define GLM_HAS_INITIALIZER_LISTS 1</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">#       define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15)) || \</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL14)) || \</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">#       define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">#       define GLM_HAS_UNRESTRICTED_UNIONS 1</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">#       define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">                (GLM_COMPILER &amp; GLM_COMPILER_VC) || \</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP)))</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment">// N2346</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">#       define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor">#       define GLM_HAS_DEFAULTED_FUNCTIONS 1</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor">#       define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor">                (GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP)))</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment">// N2118</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor">#       define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">#       define GLM_HAS_RVALUE_REFERENCES 1</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="preprocessor">#       define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment">// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">#       define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL14)) || \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment">// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="preprocessor">#       define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor">#       define GLM_HAS_TEMPLATE_ALIASES 1</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="preprocessor">#       define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160; </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment">// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="preprocessor">#       define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="preprocessor">#       define GLM_HAS_RANGE_FOR 1</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="preprocessor">#       define GLM_HAS_RANGE_FOR ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC)) || \</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment">// N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="preprocessor">#       define GLM_HAS_ALIGNOF __has_feature(cxx_alignas)</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="preprocessor">#       define GLM_HAS_ALIGNOF 1</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="preprocessor">#       define GLM_HAS_ALIGNOF ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15)) || \</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14)) || \</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment">// N2235 Generalized Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment">// N3652 Extended Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="preprocessor">#if (GLM_ARCH &amp; GLM_ARCH_SIMD_BIT) // Compiler SIMD intrinsics don&#39;t support constexpr...</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR 0</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR __has_feature(cxx_relaxed_constexpr)</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="preprocessor">#elif (GLM_LANG &amp; GLM_LANG_CXX14_FLAG)</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR 1</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="preprocessor">#       define GLM_HAS_CONSTEXPR ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; GLM_HAS_INITIALIZER_LISTS &amp;&amp; (\</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL17)) || \</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15))))</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160; </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">#       define GLM_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="preprocessor">#       define GLM_CONSTEXPR</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="preprocessor"># if (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="preprocessor">#       if __has_feature(cxx_if_constexpr)</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="preprocessor">#               define GLM_HAS_IF_CONSTEXPR 1</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="preprocessor">#               define GLM_HAS_IF_CONSTEXPR 0</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor"># elif (GLM_LANG &amp; GLM_LANG_CXX17_FLAG)</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">#       define GLM_HAS_IF_CONSTEXPR 1</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">#       define GLM_HAS_IF_CONSTEXPR 0</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor">#       define GLM_HAS_IF_CONSTEXPR 0</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">#if GLM_HAS_IF_CONSTEXPR</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#       define GLM_IF_CONSTEXPR if constexpr</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="preprocessor">#       define GLM_IF_CONSTEXPR if</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">// [nodiscard]</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX17_FLAG</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#       define GLM_NODISCARD [[nodiscard]]</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#       define GLM_NODISCARD</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160; </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">#       define GLM_HAS_ASSIGNABLE 1</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">#       define GLM_HAS_ASSIGNABLE ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15)) || \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC49))))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">#define GLM_HAS_TRIVIAL_QUERIES 0</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160; </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">#       define GLM_HAS_MAKE_SIGNED 1</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="preprocessor">#       define GLM_HAS_MAKE_SIGNED ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_HIP))))</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INTRINSICS)</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="preprocessor">#       define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="preprocessor">                ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_X86_BIT))))</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">#       define GLM_HAS_BITSCAN_WINDOWS 0</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">#       define GLM_HAS_NOEXCEPT 1</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">#       define GLM_HAS_NOEXCEPT 0</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160; </div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor">#if GLM_HAS_NOEXCEPT</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">#       define GLM_NOEXCEPT noexcept</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="preprocessor">#       define GLM_NOEXCEPT</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment">// OpenMP</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_GCC61</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 45</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">#               elif GLM_COMPILER &gt;= GLM_COMPILER_GCC49</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 40</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">#               elif GLM_COMPILER &gt;= GLM_COMPILER_GCC47</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_CLANG38</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">#               define GLM_HAS_OPENMP 20</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="preprocessor">#               if GLM_COMPILER &gt;= GLM_COMPILER_INTEL16</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 40</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">#                       define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="preprocessor">#               define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="preprocessor">#       define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="comment">// nullptr</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160; </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX0X_FLAG</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_NULLPTR GLM_ENABLE</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_NULLPTR GLM_DISABLE</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160; </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">#if GLM_CONFIG_NULLPTR == GLM_ENABLE</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="preprocessor">#       define GLM_NULLPTR nullptr</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">#       define GLM_NULLPTR 0</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="comment">// Static assert</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="preprocessor">#       define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">#       define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">#       define GLM_STATIC_ASSERT(x, message) assert(x)</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">#endif//GLM_LANG</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160; </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="comment">// Qualifiers</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160; </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="comment">// User defines: GLM_CUDA_FORCE_DEVICE_FUNC, GLM_CUDA_FORCE_HOST_FUNC</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160; </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="preprocessor">#       if defined(GLM_CUDA_FORCE_DEVICE_FUNC) &amp;&amp; defined(GLM_CUDA_FORCE_HOST_FUNC)</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">#               error &quot;GLM error: GLM_CUDA_FORCE_DEVICE_FUNC and GLM_CUDA_FORCE_HOST_FUNC should not be defined at the same time, GLM by default generates both device and host code for CUDA compiler.&quot;</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">#       endif//defined(GLM_CUDA_FORCE_DEVICE_FUNC) &amp;&amp; defined(GLM_CUDA_FORCE_HOST_FUNC)</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160; </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="preprocessor">#       if defined(GLM_CUDA_FORCE_DEVICE_FUNC)</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DEF __device__</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DECL __device__</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="preprocessor">#       elif defined(GLM_CUDA_FORCE_HOST_FUNC)</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DEF __host__</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DECL __host__</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="preprocessor">#               define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="preprocessor">#       endif//defined(GLM_CUDA_FORCE_XXXX_FUNC)</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">#       define GLM_CUDA_FUNC_DEF</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="preprocessor">#       define GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="preprocessor">#               define GLM_INLINE __forceinline</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE __declspec(noinline)</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">#               define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">#       elif (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="preprocessor">#               define GLM_INLINE __forceinline__</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE __noinline__</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">#               define GLM_INLINE inline</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="preprocessor">#               define GLM_NEVER_INLINE</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">#       endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">#       define GLM_INLINE inline</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">#       define GLM_NEVER_INLINE</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160; </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="preprocessor">#define GLM_CTOR_DECL GLM_CUDA_FUNC_DECL GLM_CONSTEXPR</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="preprocessor">#define GLM_FUNC_DISCARD_DECL GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_NODISCARD GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160; </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="comment">// Do not use CUDA function qualifiers on CUDA compiler when functions are made default</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_DECL</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_QUALIFIER GLM_INLINE</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_DECL GLM_FUNC_DISCARD_DECL</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_FUNC_QUALIFIER GLM_FUNC_QUALIFIER</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="preprocessor">#endif//GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="preprocessor">#if !defined(GLM_FORCE_CTOR_INIT)</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_DECL</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_DEFAULTED_FUNC_QUALIFIER</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_FUNC_DISCARD_DECL</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="preprocessor">#       define GLM_DEFAULTED_DEFAULT_CTOR_QUALIFIER GLM_FUNC_QUALIFIER</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="preprocessor">#endif//GLM_FORCE_CTOR_INIT</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160; </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="comment">// Swizzle operators</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160; </div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="comment">// User defines: GLM_FORCE_SWIZZLE</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160; </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_DISABLED            0</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_OPERATOR            1</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_FUNCTION            2</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160; </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">#if defined(GLM_SWIZZLE)</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="preprocessor">#       pragma message(&quot;GLM: GLM_SWIZZLE is deprecated, use GLM_FORCE_SWIZZLE instead.&quot;)</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="preprocessor">#       define GLM_FORCE_SWIZZLE</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160; </div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE) &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG) &amp;&amp; !defined(GLM_FORCE_XYZW_ONLY)</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_SWIZZLE)</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_DISABLED</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160; </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="comment">// Allows using not basic types as genType</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160; </div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160; </div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_ENABLE</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_DISABLE</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160; </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;<span class="comment">// Allows using any scaler as float</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160; </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_FLOAT</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160; </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_FLOAT</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_FLOAT GLM_ENABLE</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_UNRESTRICTED_FLOAT GLM_DISABLE</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160; </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="comment">// Clip control, define GLM_FORCE_DEPTH_ZERO_TO_ONE before including GLM</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="comment">// to use a clip space between 0 to 1.</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;<span class="comment">// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="comment">// to use left handed coordinate system by default.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160; </div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_ZO_BIT         (1 &lt;&lt; 0) // ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_NO_BIT         (1 &lt;&lt; 1) // NEGATIVE_ONE_TO_ONE</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_LH_BIT         (1 &lt;&lt; 2) // LEFT_HANDED, For DirectX, Metal, Vulkan</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_RH_BIT         (1 &lt;&lt; 3) // RIGHT_HANDED, For OpenGL, default in GLM</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160; </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_LH_ZO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_ZO_BIT)</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_LH_NO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_NO_BIT)</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_RH_ZO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_ZO_BIT)</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="preprocessor">#define GLM_CLIP_CONTROL_RH_NO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_NO_BIT)</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160; </div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;<span class="preprocessor">#       ifdef GLM_FORCE_LEFT_HANDED</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_ZO</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_ZO</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">#       ifdef GLM_FORCE_LEFT_HANDED</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_NO</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="preprocessor">#               define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_NO</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160; </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="comment">// Qualifiers</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160; </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED __declspec(deprecated)</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="preprocessor">#       if GLM_LANG &amp; GLM_LANG_CXX14_FLAG</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<span class="preprocessor">#               define GLM_DEPRECATED [[deprecated]]</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<span class="preprocessor">#               define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_CUDA) || (GLM_COMPILER &amp; GLM_COMPILER_HIP)</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="preprocessor">#       define GLM_DEPRECATED</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="preprocessor">#       define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160; </div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160; </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="preprocessor">#       define GLM_EXPLICIT explicit</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="preprocessor">#       define GLM_EXPLICIT</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; </div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="comment">// Length type: all length functions returns a length_t type.</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="comment">// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="comment">// length_t is a typedef of int like GLSL defines it.</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160; </div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<span class="preprocessor">#define GLM_LENGTH_INT          1</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;<span class="preprocessor">#define GLM_LENGTH_SIZE_T       2</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160; </div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_SIZE_T_LENGTH</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_LENGTH_TYPE           GLM_LENGTH_SIZE_T</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="preprocessor">#       define GLM_ASSERT_LENGTH(l, max) (assert ((l) &lt; (max)))</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_LENGTH_TYPE           GLM_LENGTH_INT</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="preprocessor">#       define GLM_ASSERT_LENGTH(l, max) (assert ((l) &gt;= 0 &amp;&amp; (l) &lt; (max)))</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160; </div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;{</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        <span class="keyword">using</span> std::size_t;</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160; </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;<span class="comment">// constexpr</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; </div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CONSTEXP GLM_ENABLE</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160; </div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        <span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        {</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N&gt;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;                constexpr std::size_t countof(T <span class="keyword">const</span> (&amp;)[N])</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;                {</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;                        <span class="keywordflow">return</span> N;</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;                }</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="preprocessor">#       define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CONSTEXP GLM_DISABLE</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160; </div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="preprocessor">#       define GLM_COUNTOF(arr) _countof(arr)</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CONSTEXP GLM_DISABLE</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160; </div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;<span class="preprocessor">#       define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160; </div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;<span class="comment">// uint</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160; </div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;{</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        <span class="keyword">struct </span>is_int</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        {</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;                <span class="keyword">enum</span> test {value = 0};</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;        };</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160; </div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        <span class="keyword">struct </span>is_int&lt;unsigned int&gt;</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        {</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;                <span class="keyword">enum</span> test {value = ~0};</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        };</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160; </div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;        <span class="keyword">struct </span>is_int&lt;signed int&gt;</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;        {</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;                <span class="keyword">enum</span> test {value = ~0};</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        };</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; </div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    uint;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160; </div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="comment">// 64-bit int</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160; </div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="preprocessor">#       include &lt;cstdint&gt;</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160; </div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;{</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="preprocessor">#       if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00922.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>                                           <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00922.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>                                            <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="preprocessor">#       elif (defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00922.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>                                                        <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00922.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>                                                         <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64                                        <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64                                          <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;<span class="preprocessor">#               pragma GCC diagnostic ignored &quot;-Wlong-long&quot;</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>        <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;                __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>          <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;<span class="preprocessor">#       elif (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;<span class="preprocessor">#               pragma clang diagnostic ignored &quot;-Wc++11-long-long&quot;</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                      <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                        <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="preprocessor">#       else//unknown compiler</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                      <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>                                        <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160; </div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;<span class="comment">// make_unsigned</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160; </div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;<span class="preprocessor">#if GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;<span class="preprocessor">#       include &lt;type_traits&gt;</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160; </div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;{</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;        <span class="keyword">using</span> std::make_unsigned;</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; </div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160; </div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;{</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;        <span class="keyword">struct </span>make_unsigned</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;        {};</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; </div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;char&gt;</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        {</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        };</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160; </div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;signed char&gt;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        {</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        };</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; </div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;short&gt;</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        {</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        };</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160; </div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;int&gt;</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        {</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;        };</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160; </div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;long&gt;</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        {</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;        };</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;<a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>&gt;</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        {</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> type;</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;        };</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160; </div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned char&gt;</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        {</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        };</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160; </div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned short&gt;</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        {</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;        };</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160; </div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned int&gt;</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        {</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        };</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160; </div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;unsigned long&gt;</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        {</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;        };</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160; </div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        <span class="keyword">struct </span>make_unsigned&lt;<a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&gt;</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        {</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00873.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> type;</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;        };</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160; </div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="comment">// Only use x, y, z, w as vector type components</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160; </div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_XYZW_ONLY</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_XYZW_ONLY GLM_ENABLE</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_XYZW_ONLY GLM_DISABLE</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; </div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<span class="comment">// Configure the use of defaulted initialized types</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;<span class="preprocessor">#define GLM_CTOR_INIT_DISABLE           0</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;<span class="preprocessor">#define GLM_CTOR_INITIALIZER_LIST       1</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;<span class="preprocessor">#define GLM_CTOR_INITIALISATION         2</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160; </div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_CTOR_INIT) &amp;&amp; GLM_HAS_INITIALIZER_LISTS</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALIZER_LIST</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CTOR_INIT) &amp;&amp; !GLM_HAS_INITIALIZER_LISTS</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALISATION</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_CTOR_INIT GLM_CTOR_INIT_DISABLE</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; </div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;<span class="comment">// Use SIMD instruction sets</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;<span class="preprocessor">#if GLM_HAS_ALIGNOF &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_SIMD_BIT)</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SIMD GLM_ENABLE</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_SIMD GLM_DISABLE</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160; </div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="comment">// Configure the use of defaulted function</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160; </div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_ENABLE</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT = default</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_DISABLE</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160; </div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;<span class="preprocessor">#if GLM_CONFIG_CTOR_INIT == GLM_CTOR_INIT_DISABLE &amp;&amp; GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_DEFAULT_CTOR GLM_ENABLE</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT_CTOR GLM_DEFAULT</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_DEFAULTED_DEFAULT_CTOR GLM_DISABLE</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;<span class="preprocessor">#       define GLM_DEFAULT_CTOR</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160; </div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;<span class="comment">// Configure the use of aligned gentypes</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160; </div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_ALIGNED // Legacy define</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;<span class="preprocessor">#       define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160; </div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;<span class="preprocessor">#       define GLM_FORCE_ALIGNED_GENTYPES</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160; </div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;<span class="preprocessor">#if GLM_HAS_ALIGNOF &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG) &amp;&amp; (defined(GLM_FORCE_ALIGNED_GENTYPES) || (GLM_CONFIG_SIMD == GLM_ENABLE))</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ALIGNED_GENTYPES GLM_ENABLE</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ALIGNED_GENTYPES GLM_DISABLE</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160; </div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;<span class="comment">// Configure the use of anonymous structure as implementation detail</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160; </div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;<span class="preprocessor">#if ((GLM_CONFIG_SIMD == GLM_ENABLE) || (GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR) || (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE))</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ANONYMOUS_STRUCT GLM_ENABLE</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_ANONYMOUS_STRUCT GLM_DISABLE</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160; </div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;<span class="comment">// Silent warnings</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160; </div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_WARNINGS</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;<span class="preprocessor">#       define GLM_SILENT_WARNINGS GLM_DISABLE</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;<span class="preprocessor">#       define GLM_SILENT_WARNINGS GLM_ENABLE</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160; </div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;<span class="comment">// Precision</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160; </div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;<span class="preprocessor">#define GLM_HIGHP               1</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;<span class="preprocessor">#define GLM_MEDIUMP             2</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;<span class="preprocessor">#define GLM_LOWP                3</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160; </div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_BOOL) || defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_HIGHP</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_BOOL) || defined(GLM_PRECISION_MEDIUMP_BOOL)</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_MEDIUMP</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_BOOL) || defined(GLM_PRECISION_LOWP_BOOL)</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_LOWP</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_BOOL                GLM_HIGHP</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160; </div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_INT) || defined(GLM_PRECISION_HIGHP_INT)</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_HIGHP</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_INT) || defined(GLM_PRECISION_MEDIUMP_INT)</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_MEDIUMP</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_INT) || defined(GLM_PRECISION_LOWP_INT)</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_LOWP</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_INT                 GLM_HIGHP</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160; </div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_UINT) || defined(GLM_PRECISION_HIGHP_UINT)</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_HIGHP</span></div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_UINT) || defined(GLM_PRECISION_MEDIUMP_UINT)</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_MEDIUMP</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_UINT) || defined(GLM_PRECISION_LOWP_UINT)</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_LOWP</span></div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_UINT                GLM_HIGHP</span></div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160; </div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_FLOAT) || defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_HIGHP</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_FLOAT) || defined(GLM_PRECISION_MEDIUMP_FLOAT)</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_MEDIUMP</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_FLOAT) || defined(GLM_PRECISION_LOWP_FLOAT)</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_LOWP</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_FLOAT               GLM_HIGHP</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160; </div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PRECISION_HIGHP_DOUBLE) || defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_HIGHP</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_MEDIUMP_DOUBLE) || defined(GLM_PRECISION_MEDIUMP_DOUBLE)</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_MEDIUMP</span></div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_PRECISION_LOWP_DOUBLE) || defined(GLM_PRECISION_LOWP_DOUBLE)</span></div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_LOWP</span></div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;<span class="preprocessor">#       define GLM_CONFIG_PRECISION_DOUBLE              GLM_HIGHP</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160; </div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;<span class="comment">// Check inclusions of different versions of GLM</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160; </div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;<span class="preprocessor">#elif ((GLM_SETUP_INCLUDED != GLM_VERSION) &amp;&amp; !defined(GLM_FORCE_IGNORE_VERSION))</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;<span class="preprocessor">#       error &quot;GLM error: A different version of GLM is already included. Define GLM_FORCE_IGNORE_VERSION before including GLM headers to ignore this error.&quot;</span></div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;<span class="preprocessor">#elif GLM_SETUP_INCLUDED == GLM_VERSION</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;<span class="comment">// Messages</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160; </div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_MESSAGE_DISPLAYED)</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="preprocessor">#       define GLM_MESSAGE_DISPLAYED</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="preprocessor">#               define GLM_STR_HELPER(x) #x</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;<span class="preprocessor">#               define GLM_STR(x) GLM_STR_HELPER(x)</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160; </div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        <span class="comment">// Report GLM version</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;<span class="preprocessor">#               pragma message (&quot;GLM: version &quot; GLM_STR(GLM_VERSION_MAJOR) &quot;.&quot; GLM_STR(GLM_VERSION_MINOR) &quot;.&quot; GLM_STR(GLM_VERSION_PATCH))</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160; </div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        <span class="comment">// Report C++ language</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;<span class="preprocessor">#       if (GLM_LANG &amp; GLM_LANG_CXX20_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 20 with extensions&quot;)</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX20_FLAG)</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 2A&quot;)</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX17_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 17 with extensions&quot;)</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX17_FLAG)</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 17&quot;)</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX14_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 14 with extensions&quot;)</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX14_FLAG)</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 14&quot;)</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX11_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 11 with extensions&quot;)</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX11_FLAG)</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 11&quot;)</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 0x with extensions&quot;)</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG)</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 0x&quot;)</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX03_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 03 with extensions&quot;)</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX03_FLAG)</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 03&quot;)</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX98_FLAG) &amp;&amp; (GLM_LANG &amp; GLM_LANG_EXT)</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 98 with extensions&quot;)</span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="preprocessor">#       elif (GLM_LANG &amp; GLM_LANG_CXX98_FLAG)</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ 98&quot;)</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: C++ language undetected&quot;)</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="preprocessor">#       endif//GLM_LANG</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; </div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;        <span class="comment">// Report compiler detection</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor">#       if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: CUDA compiler detected&quot;)</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_HIP</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: HIP compiler detected&quot;)</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Visual C++ compiler detected&quot;)</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Clang compiler detected&quot;)</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Intel Compiler detected&quot;)</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="preprocessor">#       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GCC compiler detected&quot;)</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Compiler not detected&quot;)</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; </div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <span class="comment">// Report build target</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="preprocessor">#       if (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with AVX2 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with AVX2 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; </div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_AVX_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with AVX instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_AVX_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with AVX instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; </div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE42_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE4.2 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE42_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE4.2 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; </div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE41_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE4.1 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE41_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE4.1 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; </div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSSE3 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSSE3 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; </div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE3 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE3_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE3 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; </div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits with SSE2 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_SSE2_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits with SSE2 instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; </div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_X86_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 64 bits build target&quot;)</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_X86_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: x86 32 bits build target&quot;)</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_NEON_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 64 bits with Neon instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_NEON_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 32 bits with Neon instruction set build target&quot;)</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; </div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_ARM_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 64 bits build target&quot;)</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_ARM_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: ARM 32 bits build target&quot;)</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; </div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_MIPS_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: MIPS 64 bits build target&quot;)</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_MIPS_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: MIPS 32 bits build target&quot;)</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; </div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_PPC_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: PowerPC 64 bits build target&quot;)</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="preprocessor">#       elif (GLM_ARCH &amp; GLM_ARCH_PPC_BIT) &amp;&amp; (GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: PowerPC 32 bits build target&quot;)</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Unknown build target&quot;)</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#       endif//GLM_ARCH</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; </div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;        <span class="comment">// Report platform name</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="preprocessor">#       if(GLM_PLATFORM &amp; GLM_PLATFORM_QNXNTO)</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: QNX platform detected&quot;)</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment">//#     elif(GLM_PLATFORM &amp; GLM_PLATFORM_IOS)</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="comment">//#             pragma message(&quot;GLM: iOS platform detected&quot;)</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_APPLE)</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Apple platform detected&quot;)</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_WINCE)</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: WinCE platform detected&quot;)</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS)</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Windows platform detected&quot;)</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_CHROME_NACL)</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Native Client detected&quot;)</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_ANDROID)</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Android platform detected&quot;)</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_LINUX)</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: Linux platform detected&quot;)</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_UNIX)</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: UNIX platform detected&quot;)</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="preprocessor">#       elif(GLM_PLATFORM &amp; GLM_PLATFORM_UNKNOWN)</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: platform unknown&quot;)</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: platform not detected&quot;)</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;        <span class="comment">// Report whether only xyzw component are used</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor">#       if defined GLM_FORCE_XYZW_ONLY</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_XYZW_ONLY is defined. Only x, y, z and w component are available in vector type. This define disables swizzle operators and SIMD instruction sets.&quot;)</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; </div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;        <span class="comment">// Report swizzle operator support</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SWIZZLE is defined, swizzling operators enabled.&quot;)</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="preprocessor">#       elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SWIZZLE is defined, swizzling functions enabled. Enable compiler C++ language extensions to enable swizzle operators.&quot;)</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SWIZZLE is undefined. swizzling functions or operators are disabled.&quot;)</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;        <span class="comment">// Report .length() type</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SIZE_T_LENGTH is defined. .length() returns a glm::length_t, a typedef of std::size_t.&quot;)</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SIZE_T_LENGTH is undefined. .length() returns a glm::length_t, a typedef of int following GLSL.&quot;)</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; </div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_UNRESTRICTED_GENTYPE == GLM_ENABLE</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is defined. Removes GLSL restrictions on valid function genTypes.&quot;)</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is undefined. Follows strictly GLSL on valid function genTypes.&quot;)</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; </div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="preprocessor">#       if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SILENT_WARNINGS is defined. Ignores C++ warnings from using C++ language extensions.&quot;)</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SILENT_WARNINGS is undefined. Shows C++ warnings from using C++ language extensions.&quot;)</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; </div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="preprocessor">#       ifdef GLM_FORCE_SINGLE_ONLY</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_SINGLE_ONLY is defined. Using only single precision floating-point types.&quot;)</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; </div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="preprocessor">#       if defined(GLM_FORCE_ALIGNED_GENTYPES) &amp;&amp; (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE)</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="preprocessor">#               undef GLM_FORCE_ALIGNED_GENTYPES</span></div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_ALIGNED_GENTYPES is defined, allowing aligned types. This prevents the use of C++ constexpr.&quot;)</span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="preprocessor">#       elif defined(GLM_FORCE_ALIGNED_GENTYPES) &amp;&amp; (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="preprocessor">#               undef GLM_FORCE_ALIGNED_GENTYPES</span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.&quot;)</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; </div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="preprocessor">#       if defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="preprocessor">#                       undef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="preprocessor">#                       pragma message(&quot;GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.&quot;)</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="preprocessor">#                       pragma message(&quot;GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined. All gentypes (e.g. vec3) will be aligned and padded by default.&quot;)</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; </div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_CLIP_CONTROL &amp; GLM_CLIP_CONTROL_ZO_BIT</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is defined. Using zero to one depth clip space.&quot;)</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is undefined. Using negative one to one depth clip space.&quot;)</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; </div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="preprocessor">#       if GLM_CONFIG_CLIP_CONTROL &amp; GLM_CLIP_CONTROL_LH_BIT</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_LEFT_HANDED is defined. Using left handed coordinate system.&quot;)</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="preprocessor">#       else</span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="preprocessor">#               pragma message(&quot;GLM: GLM_FORCE_LEFT_HANDED is undefined. Using right handed coordinate system.&quot;)</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="preprocessor">#       endif</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; </div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="preprocessor">#endif//GLM_SETUP_INCLUDED</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00859_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00859.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00359_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
+<div class="ttc" id="aa00922_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00922.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">uint64 uint64_t</div><div class="ttdoc">Default qualifier 64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00524_source.html#l00145">fwd.hpp:145</a></div></div>
+<div class="ttc" id="aa00873_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00873.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00377_source.html#l00067">scalar_uint_sized.hpp:67</a></div></div>
+<div class="ttc" id="aa00922_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00922.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">int64 int64_t</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00524_source.html#l00085">fwd.hpp:85</a></div></div>
+<div class="ttc" id="aa00868_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00362_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 67 - 14
doc/api/a00038_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_half.hpp Source File</title>
+<title>1.0.2 API documentation: type_float.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,26 +67,79 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_half.hpp</div>  </div>
+<div class="title">type_float.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
 <div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span>glm{</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;{</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#if GLM_COMPILER == GLM_COMPILER_VC12</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#       pragma warning(push)</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#       pragma warning(disable: 4512) // assignment operator could not be generated</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span>&amp; value);</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">union </span>float_t</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {};</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="comment">// https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keyword">union </span>float_t&lt;float&gt;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        {</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">int</span> int_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">float</span> float_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                GLM_CONSTEXPR float_t(float_type Num = 0.0f) : f(Num) {}</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                GLM_CONSTEXPR float_t&amp; operator=(float_t <span class="keyword">const</span>&amp; x)</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                        f = x.f;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                <span class="comment">// Portable extraction of components.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                GLM_CONSTEXPR <span class="keywordtype">bool</span> negative()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &lt; 0; }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                GLM_CONSTEXPR int_type mantissa()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &amp; ((1 &lt;&lt; 23) - 1); }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_CONSTEXPR int_type exponent()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i &gt;&gt; 23) &amp; ((1 &lt;&lt; 8) - 1); }</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                int_type i;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                float_type f;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        };</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">union </span>float_t&lt;double&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        {</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                <span class="keyword">typedef</span> <a class="code" href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">detail::int64</a> int_type;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">typedef</span> <span class="keywordtype">double</span> float_type;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                GLM_CONSTEXPR float_t(float_type Num = <span class="keyword">static_cast&lt;</span>float_type<span class="keyword">&gt;</span>(0)) : f(Num) {}</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                GLM_CONSTEXPR float_t&amp; operator=(float_t <span class="keyword">const</span>&amp; x)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        f = x.f;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                }</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                <span class="comment">// Portable extraction of components.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_CONSTEXPR <span class="keywordtype">bool</span> negative()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &lt; 0; }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                GLM_CONSTEXPR int_type mantissa()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> i &amp; ((int_type(1) &lt;&lt; 52) - 1); }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                GLM_CONSTEXPR int_type exponent()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i &gt;&gt; 52) &amp; ((int_type(1) &lt;&lt; 11) - 1); }</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                int_type i;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                float_type f;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        };</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#if GLM_COMPILER == GLM_COMPILER_VC12</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#       pragma warning(pop)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aa00868_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00868.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type.</div><div class="ttdef"><b>Definition:</b> <a href="a00362_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 18 - 179
doc/api/a00041_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat2x2.hpp Source File</title>
+<title>1.0.2 API documentation: type_half.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,187 +67,26 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat2x2.hpp</div>  </div>
+<div class="title">type_half.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="a00041.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;setup.hpp&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span>glm{</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;{</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">struct </span>mat&lt;2, 2, T, Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        {</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 2, T, Q&gt; type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 2, T, Q&gt; transpose_type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                col_type value[2];</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;2, 2, T, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        T const&amp; x1, T const&amp; y1,</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T const&amp; x2, T const&amp; y2);</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        col_type const&amp; v1,</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v2);</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                template&lt;typename U, typename V, typename M, typename N&gt;</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        U const&amp; x1, V const&amp; y1,</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        M const&amp; x2, N const&amp; y2);</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                template&lt;typename U, typename V&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        vec&lt;2, U, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        vec&lt;2, V, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator+=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator*=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator/=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        };</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::col_type operator*(mat&lt;2, 2, T, Q&gt; const&amp; m, typename mat&lt;2, 2, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::row_type operator*(typename mat&lt;2, 2, T, Q&gt;::col_type const&amp; v, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::col_type operator/(mat&lt;2, 2, T, Q&gt; const&amp; m, typename mat&lt;2, 2, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::row_type operator/(typename mat&lt;2, 2, T, Q&gt;::col_type const&amp; v, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span>&amp; value);</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00044.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat2x3.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat2x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat2x3.hpp File Reference</div>  </div>
+<div class="title">type_mat2x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00044_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00044_source.html">type_mat2x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00044_source.html">type_mat2x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 148 - 131
doc/api/a00044_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat2x3.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat2x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,170 +67,187 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat2x3.hpp</div>  </div>
+<div class="title">type_mat2x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00044.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;2, 3, T, Q&gt;</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 3, T, Q&gt; type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 2, T, Q&gt; transpose_type;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[2];</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;2, 3, T, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0, T z0,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1, T z1);</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v0,</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v1);</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                template&lt;typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2&gt;</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        X1 x1, Y1 y1, Z1 z1,</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        X2 x2, Y2 y2, Z2 z2);</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                template&lt;typename U, typename V&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        vec&lt;3, U, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        vec&lt;3, V, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator+=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        };</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">struct </span>mat&lt;2, 2, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 2, T, Q&gt; type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 2, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                col_type value[2];</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 2, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        T const&amp; x1, T const&amp; y1,</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T const&amp; x2, T const&amp; y2);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        col_type const&amp; v1,</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v2);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                template&lt;typename U, typename V, typename M, typename N&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        U const&amp; x1, V const&amp; y1,</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        M const&amp; x2, N const&amp; y2);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                template&lt;typename U, typename V&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        vec&lt;2, U, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        vec&lt;2, V, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator+=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator*=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator/=(mat&lt;2, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        };</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
 <div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
 <div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
 <div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator+(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
 <div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(T scalar, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
 <div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 3, T, Q&gt;::col_type operator*(mat&lt;2, 3, T, Q&gt; const&amp; m, typename mat&lt;2, 3, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator-(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
 <div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 3, T, Q&gt;::row_type operator*(typename mat&lt;2, 3, T, Q&gt;::col_type const&amp; v, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::col_type operator*(mat&lt;2, 2, T, Q&gt; const&amp; m, typename mat&lt;2, 2, T, Q&gt;::row_type const&amp; v);</div>
 <div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::row_type operator*(typename mat&lt;2, 2, T, Q&gt;::col_type const&amp; v, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator/(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator/(T scalar, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(mat&lt;2, 2, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(T scalar, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::col_type operator/(mat&lt;2, 2, T, Q&gt; const&amp; m, typename mat&lt;2, 2, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 2, T, Q&gt;::row_type operator/(typename mat&lt;2, 2, T, Q&gt;::col_type const&amp; v, mat&lt;2, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator/(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 2, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
-<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00047.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat2x4.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat2x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat2x4.hpp File Reference</div>  </div>
+<div class="title">type_mat2x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00047_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00047_source.html">type_mat2x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00047_source.html">type_mat2x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 117 - 119
doc/api/a00047_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat2x4.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat2x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,26 +67,26 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat2x4.hpp</div>  </div>
+<div class="title">type_mat2x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00047.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
 <div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
 <div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;2, 4, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;2, 3, T, Q&gt;</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
 <div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 4, T, Q&gt; type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 2, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 3, T, Q&gt; type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 2, T, Q&gt; transpose_type;</div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
@@ -96,7 +96,7 @@ $(function() {
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
@@ -105,134 +105,132 @@ $(function() {
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;2, 4, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 3, T, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0, T z0, T w0,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1, T z1, T w1);</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0, T z0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1, T z1);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                GLM_CTOR_DECL mat(</div>
 <div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v0,</div>
 <div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v1);</div>
 <div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
 <div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="comment">// -- Conversions --</span></div>
 <div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        typename X2, typename Y2, typename Z2, typename W2&gt;</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        X2 x2, Y2 y2, Z2 z2, W2 w2);</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                template&lt;typename U, typename V&gt;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        vec&lt;4, U, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        vec&lt;4, V, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                template&lt;typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        X1 x1, Y1 y1, Z1 z1,</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        X2 x2, Y2 y2, Z2 z2);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                template&lt;typename U, typename V&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        vec&lt;3, U, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        vec&lt;3, V, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
 <div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
 <div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator+=(U s);</div>
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator+=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator+=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-=(U s);</div>
 <div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-=(mat&lt;2, 3, U, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator*=(U s);</div>
 <div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
 <div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        };</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        };</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
 <div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
 <div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(T scalar, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 4, T, Q&gt;::col_type operator*(mat&lt;2, 4, T, Q&gt; const&amp; m, typename mat&lt;2, 4, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 4, T, Q&gt;::row_type operator*(typename mat&lt;2, 4, T, Q&gt;::col_type const&amp; v, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator/(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator/(T scalar, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator+(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator-(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(T scalar, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 3, T, Q&gt;::col_type operator*(mat&lt;2, 3, T, Q&gt; const&amp; m, typename mat&lt;2, 3, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 3, T, Q&gt;::row_type operator*(typename mat&lt;2, 3, T, Q&gt;::col_type const&amp; v, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator/(mat&lt;2, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator/(T scalar, mat&lt;2, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
 <div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00050.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat3x2.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat2x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat3x2.hpp File Reference</div>  </div>
+<div class="title">type_mat2x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00050_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00050_source.html">type_mat3x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00050_source.html">type_mat2x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 129 - 135
doc/api/a00050_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat3x2.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat2x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,36 +67,36 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat3x2.hpp</div>  </div>
+<div class="title">type_mat2x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00050.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
 <div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
 <div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;3, 2, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;2, 4, T, Q&gt;</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 2, T, Q&gt; type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 3, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 4, T, Q&gt; type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 2, T, Q&gt; transpose_type;</div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[3];</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[2];</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">public</span>:</div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 2; }</div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
@@ -105,140 +105,134 @@ $(function() {
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;3, 2, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 4, T, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1,</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T x2, T y2);</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v0,</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v1,</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v2);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0, T z0, T w0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1, T z1, T w1);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v0,</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v1);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="comment">// -- Conversions --</span></div>
 <div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        typename X1, typename Y1,</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X2, typename Y2,</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X3, typename Y3&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        X1 x1, Y1 y1,</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        X2 x2, Y2 y2,</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        X3 x3, Y3 y3);</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                template&lt;typename V1, typename V2, typename V3&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        vec&lt;2, V1, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        vec&lt;2, V2, Q&gt; const&amp; v2,</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                        vec&lt;2, V3, Q&gt; const&amp; v3);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                template&lt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        typename X2, typename Y2, typename Z2, typename W2&gt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        X2 x2, Y2 y2, Z2 z2, W2 w2);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                template&lt;typename U, typename V&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        vec&lt;4, U, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        vec&lt;4, V, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, U, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator+=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        };</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator+=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-=(mat&lt;2, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        };</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(T scalar, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 2, T, Q&gt;::col_type operator*(mat&lt;3, 2, T, Q&gt; const&amp; m, typename mat&lt;3, 2, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 2, T, Q&gt;::row_type operator*(typename mat&lt;3, 2, T, Q&gt;::col_type const&amp; v, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator/(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator+(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator-(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(T scalar, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 4, T, Q&gt;::col_type operator*(mat&lt;2, 4, T, Q&gt; const&amp; m, typename mat&lt;2, 4, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;2, 4, T, Q&gt;::row_type operator*(typename mat&lt;2, 4, T, Q&gt;::col_type const&amp; v, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator/(mat&lt;2, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator/(T scalar, mat&lt;2, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
 <div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
 <div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator/(T scalar, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;2, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
-<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00053.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat3x3.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat3x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat3x3.hpp File Reference</div>  </div>
+<div class="title">type_mat3x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00053_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00053_source.html">type_mat3x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00053_source.html">type_mat3x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 140 - 156
doc/api/a00053_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat3x3.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat3x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,194 +67,178 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat3x3.hpp</div>  </div>
+<div class="title">type_mat3x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00053.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">struct </span>mat&lt;3, 3, T, Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        {</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 3, T, Q&gt; type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 3, T, Q&gt; transpose_type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                col_type value[3];</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;3, 3, T, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        T x0, T y0, T z0,</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x1, T y1, T z1,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x2, T y2, T z2);</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v0,</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v1,</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v2);</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        typename X1, typename Y1, typename Z1,</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        typename X2, typename Y2, typename Z2,</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X3, typename Y3, typename Z3&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        X1 x1, Y1 y1, Z1 z1,</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        X2 x2, Y2 y2, Z2 z2,</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        X3 x3, Y3 y3, Z3 z3);</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                template&lt;typename V1, typename V2, typename V3&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        vec&lt;3, V1, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        vec&lt;3, V2, Q&gt; const&amp; v2,</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        vec&lt;3, V3, Q&gt; const&amp; v3);</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator+=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator-=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator*=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator/=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        };</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;3, 2, T, Q&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 2, T, Q&gt; type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 3, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[3];</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 2, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T x2, T y2);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v0,</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v2);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                template&lt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        typename X1, typename Y1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X2, typename Y2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X3, typename Y3&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        X1 x1, Y1 y1,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        X2 x2, Y2 y2,</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        X3 x3, Y3 y3);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                template&lt;typename V1, typename V2, typename V3&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        vec&lt;2, V1, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        vec&lt;2, V2, Q&gt; const&amp; v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                        vec&lt;2, V3, Q&gt; const&amp; v3);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator+=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-=(mat&lt;3, 2, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        };</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
 <div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator+(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
 <div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
 <div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator-(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
 <div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
 <div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(T scalar, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
 <div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 2, T, Q&gt;::col_type operator*(mat&lt;3, 2, T, Q&gt; const&amp; m, typename mat&lt;3, 2, T, Q&gt;::row_type const&amp; v);</div>
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
 <div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 2, T, Q&gt;::row_type operator*(typename mat&lt;3, 2, T, Q&gt;::col_type const&amp; v, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
 <div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
 <div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::col_type operator*(mat&lt;3, 3, T, Q&gt; const&amp; m, typename mat&lt;3, 3, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
 <div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::row_type operator*(typename mat&lt;3, 3, T, Q&gt;::col_type const&amp; v, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
 <div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator/(mat&lt;3, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
 <div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator/(T scalar, mat&lt;3, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::col_type operator/(mat&lt;3, 3, T, Q&gt; const&amp; m, typename mat&lt;3, 3, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::row_type operator/(typename mat&lt;3, 3, T, Q&gt;::col_type const&amp; v, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 2, T, Q&gt; const&amp; m1, mat&lt;3, 2, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
-<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00056.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat3x4.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat3x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat3x4.hpp File Reference</div>  </div>
+<div class="title">type_mat3x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00056_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00056_source.html">type_mat3x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00056_source.html">type_mat3x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 155 - 138
doc/api/a00056_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat3x4.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat3x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,177 +67,194 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat3x4.hpp</div>  </div>
+<div class="title">type_mat3x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00056.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;3, 4, T, Q&gt;</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 4, T, Q&gt; type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 3, T, Q&gt; transpose_type;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[3];</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;3, 4, T, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0, T z0, T w0,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1, T z1, T w1,</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T x2, T y2, T z2, T w2);</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v0,</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v1,</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v2);</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X2, typename Y2, typename Z2, typename W2,</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X3, typename Y3, typename Z3, typename W3&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        X2 x2, Y2 y2, Z2 z2, W2 w2,</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        X3 x3, Y3 y3, Z3 z3, W3 w3);</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                template&lt;typename V1, typename V2, typename V3&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        vec&lt;4, V1, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        vec&lt;4, V2, Q&gt; const&amp; v2,</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                        vec&lt;4, V3, Q&gt; const&amp; v3);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator+=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator-=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        };</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">struct </span>mat&lt;3, 3, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 3, T, Q&gt; type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 3, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                col_type value[3];</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 3, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        T x0, T y0, T z0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x1, T y1, T z1,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x2, T y2, T z2);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        col_type const&amp; v0,</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v1,</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v2);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                template&lt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        typename X1, typename Y1, typename Z1,</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        typename X2, typename Y2, typename Z2,</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X3, typename Y3, typename Z3&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        X1 x1, Y1 y1, Z1 z1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        X2 x2, Y2 y2, Z2 z2,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        X3 x3, Y3 y3, Z3 z3);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                template&lt;typename V1, typename V2, typename V3&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        vec&lt;3, V1, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        vec&lt;3, V2, Q&gt; const&amp; v2,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        vec&lt;3, V3, Q&gt; const&amp; v3);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator+=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator-=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator*=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator/=(mat&lt;3, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        };</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
 <div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
 <div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
 <div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator+(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
 <div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
 <div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(T scalar, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
 <div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 4, T, Q&gt;::col_type operator*(mat&lt;3, 4, T, Q&gt; const&amp; m, typename mat&lt;3, 4, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator-(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
 <div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 4, T, Q&gt;::row_type operator*(typename mat&lt;3, 4, T, Q&gt;::col_type const&amp; v, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
 <div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1,        mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
 <div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::col_type operator*(mat&lt;3, 3, T, Q&gt; const&amp; m, typename mat&lt;3, 3, T, Q&gt;::row_type const&amp; v);</div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
 <div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1,        mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::row_type operator*(typename mat&lt;3, 3, T, Q&gt;::col_type const&amp; v, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
 <div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator/(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
 <div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator/(T scalar, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(mat&lt;3, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(T scalar, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::col_type operator/(mat&lt;3, 3, T, Q&gt; const&amp; m, typename mat&lt;3, 3, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 3, T, Q&gt;::row_type operator/(typename mat&lt;3, 3, T, Q&gt;::col_type const&amp; v, mat&lt;3, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator/(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 3, T, Q&gt; const&amp; m1, mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
-<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00059.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat4x2.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat3x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat4x2.hpp File Reference</div>  </div>
+<div class="title">type_mat3x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00059_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00059_source.html">type_mat4x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00059_source.html">type_mat3x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 134 - 139
doc/api/a00059_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat4x2.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat3x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,36 +67,36 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat4x2.hpp</div>  </div>
+<div class="title">type_mat3x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00059.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
 <div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
 <div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;4, 2, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;3, 4, T, Q&gt;</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 2, T, Q&gt; type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 4, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 4, T, Q&gt; type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 3, T, Q&gt; transpose_type;</div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[4];</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[3];</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">public</span>:</div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 4; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 3; }</div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
@@ -105,144 +105,139 @@ $(function() {
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;4, 2, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 4, T, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1,</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T x2, T y2,</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        T x3, T y3);</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v0,</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v1,</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        col_type const&amp; v2,</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                        col_type const&amp; v3);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T scalar);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0, T z0, T w0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1, T z1, T w1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T x2, T y2, T z2, T w2);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v0,</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v2);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="comment">// -- Conversions --</span></div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X0, typename Y0,</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        typename X1, typename Y1,</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        typename X2, typename Y2,</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        typename X3, typename Y3&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        X0 x0, Y0 y0,</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        X1 x1, Y1 y1,</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        X2 x2, Y2 y2,</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        X3 x3, Y3 y3);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        vec&lt;2, V1, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        vec&lt;2, V2, Q&gt; const&amp; v2,</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        vec&lt;2, V3, Q&gt; const&amp; v3,</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        vec&lt;2, V4, Q&gt; const&amp; v4);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                template&lt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X2, typename Y2, typename Z2, typename W2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X3, typename Y3, typename Z3, typename W3&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        X2 x2, Y2 y2, Z2 z2, W2 w2,</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        X3 x3, Y3 y3, Z3 z3, W3 w3);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                template&lt;typename V1, typename V2, typename V3&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        vec&lt;4, V1, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        vec&lt;4, V2, Q&gt; const&amp; v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                        vec&lt;4, V3, Q&gt; const&amp; v3);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, U, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator+=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        };</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator+=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator-=(mat&lt;3, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        };</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
 <div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m1,        mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(T scalar, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 2, T, Q&gt;::col_type operator*(mat&lt;4, 2, T, Q&gt; const&amp; m, typename mat&lt;4, 2, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 2, T, Q&gt;::row_type operator*(typename mat&lt;4, 2, T, Q&gt;::col_type const&amp; v, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator/(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator+(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator-(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(T scalar, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 4, T, Q&gt;::col_type operator*(mat&lt;3, 4, T, Q&gt; const&amp; m, typename mat&lt;3, 4, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;3, 4, T, Q&gt;::row_type operator*(typename mat&lt;3, 4, T, Q&gt;::col_type const&amp; v, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1,        mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;2, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;3, 4, T, Q&gt; const&amp; m1,        mat&lt;3, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator/(mat&lt;3, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator/(T scalar, mat&lt;3, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
 <div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
 <div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator/(T scalar, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;3, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00062.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat4x3.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat4x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat4x3.hpp File Reference</div>  </div>
+<div class="title">type_mat4x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00062_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00062_source.html">type_mat4x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00062_source.html">type_mat4x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 74 - 74
doc/api/a00062_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat4x3.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat4x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,26 +67,26 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat4x3.hpp</div>  </div>
+<div class="title">type_mat4x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00062.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
 <div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
 <div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;4, 3, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;4, 2, T, Q&gt;</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; col_type;</div>
 <div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 3, T, Q&gt; type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 4, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 2, T, Q&gt; type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;2, 4, T, Q&gt; transpose_type;</div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
@@ -96,7 +96,7 @@ $(function() {
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 4; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 4; }</div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
@@ -105,15 +105,15 @@ $(function() {
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;4, 3, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 2, T, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T s);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T const&amp; x0, T const&amp; y0, T const&amp; z0,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T const&amp; x1, T const&amp; y1, T const&amp; z1,</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T const&amp; x2, T const&amp; y2, T const&amp; z2,</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        T const&amp; x3, T const&amp; y3, T const&amp; z3);</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL mat(T scalar);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x0, T y0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T x1, T y1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T x2, T y2,</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        T x3, T y3);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                GLM_CTOR_DECL mat(</div>
 <div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v0,</div>
 <div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v1,</div>
 <div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        col_type const&amp; v2,</div>
@@ -122,127 +122,127 @@ $(function() {
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                <span class="comment">// -- Conversions --</span></div>
 <div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
 <div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X1, typename Y1, typename Z1,</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        typename X2, typename Y2, typename Z2,</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        typename X3, typename Y3, typename Z3,</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        typename X4, typename Y4, typename Z4&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        X1 const&amp; x1, Y1 const&amp; y1, Z1 const&amp; z1,</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        X2 const&amp; x2, Y2 const&amp; y2, Z2 const&amp; z2,</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        X3 const&amp; x3, Y3 const&amp; y3, Z3 const&amp; z3,</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        X4 const&amp; x4, Y4 const&amp; y4, Z4 const&amp; z4);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X0, typename Y0,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        typename X1, typename Y1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        typename X2, typename Y2,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        typename X3, typename Y3&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        X0 x0, Y0 y0,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        X1 x1, Y1 y1,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        X2 x2, Y2 y2,</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        X3 x3, Y3 y3);</div>
 <div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
 <div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        vec&lt;3, V1, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        vec&lt;3, V2, Q&gt; const&amp; v2,</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        vec&lt;3, V3, Q&gt; const&amp; v3,</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        vec&lt;3, V4, Q&gt; const&amp; v4);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        vec&lt;2, V1, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        vec&lt;2, V2, Q&gt; const&amp; v2,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        vec&lt;2, V3, Q&gt; const&amp; v3,</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        vec&lt;2, V4, Q&gt; const&amp; v4);</div>
 <div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
 <div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
 <div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
 <div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 2, U, P&gt; const&amp; m);</div>
 <div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
 <div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
 <div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
 <div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
 <div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator+=(U s);</div>
 <div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator+=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator+=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-=(U s);</div>
 <div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator-=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-=(mat&lt;4, 2, U, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator*=(U s);</div>
 <div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator/=(U s);</div>
 <div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
 <div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
 <div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt;&amp; operator++();</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt;&amp; operator--();</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
 <div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        };</div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
 <div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
 <div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
 <div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
 <div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
 <div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
 <div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator+(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
 <div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
 <div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator-(mat&lt;4, 2, T, Q&gt; const&amp; m1,        mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(T scalar, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(T scalar, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 3, T, Q&gt;::col_type operator*(mat&lt;4, 3, T, Q&gt; const&amp; m, typename mat&lt;4, 3, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 2, T, Q&gt;::col_type operator*(mat&lt;4, 2, T, Q&gt; const&amp; m, typename mat&lt;4, 2, T, Q&gt;::row_type const&amp; v);</div>
 <div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 3, T, Q&gt;::row_type operator*(typename mat&lt;4, 3, T, Q&gt;::col_type const&amp; v, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 2, T, Q&gt;::row_type operator*(typename mat&lt;4, 2, T, Q&gt;::col_type const&amp; v, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
 <div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1,        mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
 <div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator*(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
 <div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator/(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator/(mat&lt;4, 2, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
 <div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator/(T scalar, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 2, T, Q&gt; operator/(T scalar, mat&lt;4, 2, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
 <div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
 <div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
 <div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
 <div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 2, T, Q&gt; const&amp; m1, mat&lt;4, 2, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;}<span class="comment">//namespace glm</span></div>
 <div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
 <div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
-<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00065.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat4x4.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat4x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat4x4.hpp File Reference</div>  </div>
+<div class="title">type_mat4x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00065_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00065_source.html">type_mat4x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00065_source.html">type_mat4x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 143 - 160
doc/api/a00065_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_mat4x4.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat4x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,199 +67,182 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_mat4x4.hpp</div>  </div>
+<div class="title">type_mat4x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00065.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">struct </span>mat&lt;4, 4, T, Q&gt;</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        {</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 4, T, Q&gt; type;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 4, T, Q&gt; transpose_type;</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                col_type value[4];</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(mat&lt;4, 4, T, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T s);</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        T const&amp; x0, T const&amp; y0, T const&amp; z0, T const&amp; w0,</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T const&amp; x1, T const&amp; y1, T const&amp; z1, T const&amp; w1,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T const&amp; x2, T const&amp; y2, T const&amp; z2, T const&amp; w2,</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T const&amp; x3, T const&amp; y3, T const&amp; z3, T const&amp; w3);</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v0,</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v1,</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v2,</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        col_type const&amp; v3);</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                template&lt;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X2, typename Y2, typename Z2, typename W2,</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        typename X3, typename Y3, typename Z3, typename W3,</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        typename X4, typename Y4, typename Z4, typename W4&gt;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        X1 const&amp; x1, Y1 const&amp; y1, Z1 const&amp; z1, W1 const&amp; w1,</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        X2 const&amp; x2, Y2 const&amp; y2, Z2 const&amp; z2, W2 const&amp; w2,</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        X3 const&amp; x3, Y3 const&amp; y3, Z3 const&amp; z3, W3 const&amp; w3,</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        X4 const&amp; x4, Y4 const&amp; y4, Z4 const&amp; z4, W4 const&amp; w4);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat(</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        vec&lt;4, V1, Q&gt; const&amp; v1,</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        vec&lt;4, V2, Q&gt; const&amp; v2,</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        vec&lt;4, V3, Q&gt; const&amp; v3,</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        vec&lt;4, V4, Q&gt; const&amp; v4);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 4, U, P&gt; const&amp; m);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator+=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator-=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator*=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator/=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        };</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">struct </span>mat&lt;4, 3, T, Q&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 3, T, Q&gt; type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> mat&lt;3, 4, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                col_type value[4];</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>() { <span class="keywordflow">return</span> 4; }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 3, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T s);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T const&amp; x0, T const&amp; y0, T const&amp; z0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T const&amp; x1, T const&amp; y1, T const&amp; z1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T const&amp; x2, T const&amp; y2, T const&amp; z2,</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        T const&amp; x3, T const&amp; y3, T const&amp; z3);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v0,</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v1,</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        col_type const&amp; v2,</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                        col_type const&amp; v3);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                template&lt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X1, typename Y1, typename Z1,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        typename X2, typename Y2, typename Z2,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        typename X3, typename Y3, typename Z3,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                        typename X4, typename Y4, typename Z4&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        X1 const&amp; x1, Y1 const&amp; y1, Z1 const&amp; z1,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        X2 const&amp; x2, Y2 const&amp; y2, Z2 const&amp; z2,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        X3 const&amp; x3, Y3 const&amp; y3, Z3 const&amp; z3,</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                        X4 const&amp; x4, Y4 const&amp; y4, Z4 const&amp; z4);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        vec&lt;3, V1, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        vec&lt;3, V2, Q&gt; const&amp; v2,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        vec&lt;3, V3, Q&gt; const&amp; v3,</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        vec&lt;3, V4, Q&gt; const&amp; v4);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 3, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_CTOR_DECL mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                GLM_CTOR_DECL mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator+=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator-=(mat&lt;4, 3, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt;&amp; operator++();</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt;&amp; operator--();</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        };</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
 <div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator+(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
 <div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
 <div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator-(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(T scalar, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m1,        mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 3, T, Q&gt;::col_type operator*(mat&lt;4, 3, T, Q&gt; const&amp; m, typename mat&lt;4, 3, T, Q&gt;::row_type const&amp; v);</div>
 <div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 3, T, Q&gt;::row_type operator*(typename mat&lt;4, 3, T, Q&gt;::col_type const&amp; v, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
 <div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::col_type operator*(mat&lt;4, 4, T, Q&gt; const&amp; m, typename mat&lt;4, 4, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1,        mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
 <div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::row_type operator*(typename mat&lt;4, 4, T, Q&gt;::col_type const&amp; v, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator*(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
 <div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator/(mat&lt;4, 3, T, Q&gt; const&amp; m, T scalar);</div>
 <div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
 <div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 3, T, Q&gt; operator/(T scalar, mat&lt;4, 3, T, Q&gt; const&amp; m);</div>
 <div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 3, T, Q&gt; const&amp; m1, mat&lt;4, 3, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;}<span class="comment">//namespace glm</span></div>
 <div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::col_type operator/(mat&lt;4, 4, T, Q&gt; const&amp; m, typename mat&lt;4, 4, T, Q&gt;::row_type const&amp; v);</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::row_type operator/(typename mat&lt;4, 4, T, Q&gt;::col_type const&amp; v, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(mat&lt;4, 4, T, Q&gt; const&amp; m1,        mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00068.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_quat.hpp File Reference</title>
+<title>1.0.2 API documentation: type_mat4x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_quat.hpp File Reference</div>  </div>
+<div class="title">type_mat4x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00068_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00068_source.html">type_quat.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00068_source.html">type_mat4x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 182 - 177
doc/api/a00068_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_quat.hpp Source File</title>
+<title>1.0.2 API documentation: type_mat4x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,194 +67,199 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_quat.hpp</div>  </div>
+<div class="title">type_mat4x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00068.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;../ext/vector_relational.hpp&quot;</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;../ext/quaternion_relational.hpp&quot;</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;../gtc/matrix_transform.hpp&quot;</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">struct </span>qua</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        {</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                <span class="keyword">typedef</span> qua&lt;T, Q&gt; type;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#               if GLM_LANG &amp; GLM_LANG_CXXMS_FLAG</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        <span class="keyword">union</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        {</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#                               ifdef GLM_FORCE_QUAT_DATA_WXYZ</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                                        <span class="keyword">struct </span>{ T w, x, y, z; };</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#                               else</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                                        <span class="keyword">struct </span>{ T x, y, z, w; };</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#                               endif</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">struct </span>mat&lt;4, 4, T, Q&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; col_type;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; row_type;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 4, T, Q&gt; type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keyword">typedef</span> mat&lt;4, 4, T, Q&gt; transpose_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                col_type value[4];</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type &amp; operator[](length_type i) GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR col_type <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span> GLM_NOEXCEPT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                GLM_CTOR_DECL mat(mat&lt;4, 4, T, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(T s);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        T const&amp; x0, T const&amp; y0, T const&amp; z0, T const&amp; w0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T const&amp; x1, T const&amp; y1, T const&amp; z1, T const&amp; w1,</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        T const&amp; x2, T const&amp; y2, T const&amp; z2, T const&amp; w2,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        T const&amp; x3, T const&amp; y3, T const&amp; z3, T const&amp; w3);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        col_type const&amp; v0,</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        col_type const&amp; v1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        col_type const&amp; v2,</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        col_type const&amp; v3);</div>
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;4, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        };</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#                       ifdef GLM_FORCE_QUAT_DATA_WXYZ</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                                T w, x, y, z;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#                       else</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                                T x, y, z, w;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                template&lt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                        typename X2, typename Y2, typename Z2, typename W2,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        typename X3, typename Y3, typename Z3, typename W3,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        typename X4, typename Y4, typename Z4, typename W4&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                        X1 const&amp; x1, Y1 const&amp; y1, Z1 const&amp; z1, W1 const&amp; w1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        X2 const&amp; x2, Y2 const&amp; y2, Z2 const&amp; z2, W2 const&amp; w2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        X3 const&amp; x3, Y3 const&amp; y3, Z3 const&amp; z3, W3 const&amp; w3,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        X4 const&amp; x4, Y4 const&amp; y4, Z4 const&amp; z4, W4 const&amp; w4);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                template&lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                GLM_CTOR_DECL mat(</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        vec&lt;4, V1, Q&gt; const&amp; v1,</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        vec&lt;4, V2, Q&gt; const&amp; v2,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        vec&lt;4, V3, Q&gt; const&amp; v3,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        vec&lt;4, V4, Q&gt; const&amp; v4);</div>
 <div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="comment">// -- Matrix conversions --</span></div>
 <div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR qua() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua(qua&lt;T, Q&gt; const&amp; q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua(qua&lt;T, P&gt; const&amp; q);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua(T s, vec&lt;3, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#               ifdef GLM_FORCE_QUAT_CTOR_XYZW</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua(T x, T y, T z, T w);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua(T w, T x, T y, T z);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR qua&lt;T, Q&gt; wxyz(T w, T x, T y, T z);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U, qualifier P&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT qua(qua&lt;U, P&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#               if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                        GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> mat&lt;3, 3, T, Q&gt;() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> mat&lt;4, 4, T, Q&gt;() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DECL qua(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; u, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT qua(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00908.html#gaf4dd967dead22dd932fc7460ceecb03f">eulerAngles</a>);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT qua(mat&lt;3, 3, T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                GLM_FUNC_DECL GLM_EXPLICIT qua(mat&lt;4, 4, T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 4, U, P&gt; const&amp; m);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;2, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 2, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;3, 4, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT mat(mat&lt;4, 3, T, Q&gt; const&amp; x);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator+=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator-=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator*=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator/=(mat&lt;4, 4, U, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        };</div>
 <div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator=(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator+=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator-=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator*=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator*=(U s);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator/=(U s);</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        };</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator+(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator-(mat&lt;4, 4, T, Q&gt; const&amp; m1,        mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
 <div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator+(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator-(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator+(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; p);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator-(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; p);</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; p);</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, T <span class="keyword">const</span>&amp; s);</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator*(T <span class="keyword">const</span>&amp; s, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator/(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, T <span class="keyword">const</span>&amp; s);</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q1, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q2);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::col_type operator*(mat&lt;4, 4, T, Q&gt; const&amp; m, typename mat&lt;4, 4, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::row_type operator*(typename mat&lt;4, 4, T, Q&gt;::col_type const&amp; v, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;2, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;2, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;3, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;3, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator*(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(mat&lt;4, 4, T, Q&gt; const&amp; m, T scalar);</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(T scalar, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::col_type operator/(mat&lt;4, 4, T, Q&gt; const&amp; m, typename mat&lt;4, 4, T, Q&gt;::row_type const&amp; v);</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR typename mat&lt;4, 4, T, Q&gt;::row_type operator/(typename mat&lt;4, 4, T, Q&gt;::col_type const&amp; v, mat&lt;4, 4, T, Q&gt; const&amp; m);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;4, 4, T, Q&gt; operator/(mat&lt;4, 4, T, Q&gt; const&amp; m1,        mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(mat&lt;4, 4, T, Q&gt; const&amp; m1, mat&lt;4, 4, T, Q&gt; const&amp; m2);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;}<span class="comment">//namespace glm</span></div>
 <div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q1, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q2);</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">#include &quot;type_quat.inl&quot;</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
-<div class="ttc" id="aa00908_html_gaf4dd967dead22dd932fc7460ceecb03f"><div class="ttname"><a href="a00908.html#gaf4dd967dead22dd932fc7460ceecb03f">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; eulerAngles(qua&lt; T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns euler angles, pitch as x, yaw as y, roll as z.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00071.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec1.hpp File Reference</title>
+<title>1.0.2 API documentation: type_quat.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec1.hpp File Reference</div>  </div>
+<div class="title">type_quat.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00071_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00071_source.html">type_vec1.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00071_source.html">type_quat.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 179 - 297
doc/api/a00071_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec1.hpp Source File</title>
+<title>1.0.2 API documentation: type_quat.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,312 +67,194 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec1.hpp</div>  </div>
+<div class="title">type_quat.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00071.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;qualifier.hpp&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#       include &quot;_swizzle.hpp&quot;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#       include &quot;_swizzle_func.hpp&quot;</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;1, T, Q&gt;</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        {</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;1, T, Q&gt; type;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;1, bool, Q&gt; bool_type;</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x;</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        <span class="keyword">union</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        {</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                                T x;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                                T r;</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                                T s;</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;1, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_2_MEMBERS(T, Q, x)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_2_MEMBERS(T, Q, r)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_2_MEMBERS(T, Q, s)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_3_MEMBERS(T, Q, x)</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_3_MEMBERS(T, Q, r)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_3_MEMBERS(T, Q, s)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_4_MEMBERS(T, Q, x)</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_4_MEMBERS(T, Q, r)</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_4_MEMBERS(T, Q, s)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">#                               endif</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        };</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        <span class="keyword">union </span>{T x, r, s;};</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="comment">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">                                GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, Q)</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">#                       endif</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 1;}</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;../ext/vector_relational.hpp&quot;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;../ext/quaternion_relational.hpp&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;../gtc/matrix_transform.hpp&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">struct </span>qua</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                <span class="keyword">typedef</span> qua&lt;T, Q&gt; type;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#               if GLM_LANG &amp; GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                        <span class="keyword">union</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#                               ifdef GLM_FORCE_QUAT_DATA_WXYZ</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                                        <span class="keyword">struct </span>{ T w, x, y, z; };</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#                               else</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                                        <span class="keyword">struct </span>{ T x, y, z, w; };</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#                               endif</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;4, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        };</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#                       ifdef GLM_FORCE_QUAT_DATA_WXYZ</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                                T w, x, y, z;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#                       else</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                                T x, y, z, w;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR qua() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua(qua&lt;T, Q&gt; const&amp; q) GLM_DEFAULT;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                GLM_CTOR_DECL qua(qua&lt;T, P&gt; const&amp; q);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                GLM_CTOR_DECL qua(T s, vec&lt;3, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#               ifdef GLM_FORCE_QUAT_DATA_XYZW</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                GLM_CTOR_DECL qua(T x, T y, T z, T w);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                GLM_CTOR_DECL qua(T w, T x, T y, T z);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR qua&lt;T, Q&gt; wxyz(T w, T x, T y, T z);</div>
 <div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U, qualifier P&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT qua(qua&lt;U, P&gt; <span class="keyword">const</span>&amp; q);</div>
 <div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const&amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, T, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;2, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;3, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#               if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                        GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> mat&lt;3, 3, T, Q&gt;() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                        GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> mat&lt;4, 4, T, Q&gt;() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DISCARD_DECL qua(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; u, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT qua(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00917.html#gaf4dd967dead22dd932fc7460ceecb03f">eulerAngles</a>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT qua(mat&lt;3, 3, T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT qua(mat&lt;4, 4, T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;1, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">                        template&lt;int E0&gt;</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;1, T, Q, E0, -1,-2,-3&gt; const&amp; that)</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">                        {</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">                                *this = that();</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">                        }</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator=(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q) GLM_DEFAULT;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator+=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator-=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator*=(qua&lt;U, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator*=(U s);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR qua&lt;T, Q&gt;&amp; operator/=(U s);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        };</div>
 <div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator=(vec const&amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator+=(U scalar);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator+=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator-=(U scalar);</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator-=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator*=(U scalar);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator*=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator/=(U scalar);</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator/=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator+(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator-(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator+(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; p);</div>
 <div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator%=(U scalar);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator|=(U scalar);</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator^=(U scalar);</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                template&lt;typename U&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        };</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160; </div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator*(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator*(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator*(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator/(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator/(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator/(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator%(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator%(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator%(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; </div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&amp;(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator|(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator|(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator|(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator^(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator^(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator^(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160; </div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator~(vec&lt;1, T, Q&gt; const&amp; v);</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        template&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; operator&amp;&amp;(vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v1, vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160; </div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        template&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; operator||(vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v1, vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v2);</div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; </div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#include &quot;type_vec1.inl&quot;</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator-(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; p);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; p);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator*(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, T <span class="keyword">const</span>&amp; s);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator*(T <span class="keyword">const</span>&amp; s, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR qua&lt;T, Q&gt; operator/(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q, T <span class="keyword">const</span>&amp; s);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q1, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q2);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q1, qua&lt;T, Q&gt; <span class="keyword">const</span>&amp; q2);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">#include &quot;type_quat.inl&quot;</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00917_html_gaf4dd967dead22dd932fc7460ceecb03f"><div class="ttname"><a href="a00917.html#gaf4dd967dead22dd932fc7460ceecb03f">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; eulerAngles(qua&lt; T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns euler angles, pitch as x, yaw as y, roll as z.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00074.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec2.hpp File Reference</title>
+<title>1.0.2 API documentation: type_vec1.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec2.hpp File Reference</div>  </div>
+<div class="title">type_vec1.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00074_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00074_source.html">type_vec2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00074_source.html">type_vec1.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 264 - 358
doc/api/a00074_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec2.hpp Source File</title>
+<title>1.0.2 API documentation: type_vec1.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec2.hpp</div>  </div>
+<div class="title">type_vec1.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00074.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -84,13 +84,13 @@ $(function() {
 <div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
 <div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;2, T, Q&gt;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;1, T, Q&gt;</div>
 <div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        {</div>
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; type;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, bool, Q&gt; bool_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;1, T, Q&gt; type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;1, bool, Q&gt; bool_type;</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Data --</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
@@ -109,364 +109,270 @@ $(function() {
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#               endif</span></div>
 <div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
 <div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x, y;</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, Q, x, y)</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        <span class="keyword">union</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        {</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                                <span class="keyword">struct</span>{ T x, y; };</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                <span class="keyword">struct</span>{ T r, g; };</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                <span class="keyword">struct</span>{ T s, t; };</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;2, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                                        GLM_SWIZZLE2_2_MEMBERS(T, Q, x, y)</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                                        GLM_SWIZZLE2_2_MEMBERS(T, Q, r, g)</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                                        GLM_SWIZZLE2_2_MEMBERS(T, Q, s, t)</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                                        GLM_SWIZZLE2_3_MEMBERS(T, Q, x, y)</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                                        GLM_SWIZZLE2_3_MEMBERS(T, Q, r, g)</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                                        GLM_SWIZZLE2_3_MEMBERS(T, Q, s, t)</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                        GLM_SWIZZLE2_4_MEMBERS(T, Q, x, y)</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        GLM_SWIZZLE2_4_MEMBERS(T, Q, r, g)</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        GLM_SWIZZLE2_4_MEMBERS(T, Q, s, t)</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#                               endif</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        };</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        <span class="keyword">union </span>{T x, r, s;};</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        <span class="keyword">union </span>{T y, g, t;};</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                                GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, Q)</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        <span class="keyword">union</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                                T x;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                                T r;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                                T s;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;1, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_2_MEMBERS(T, Q, x)</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_2_MEMBERS(T, Q, r)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_2_MEMBERS(T, Q, s)</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_3_MEMBERS(T, Q, x)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_3_MEMBERS(T, Q, r)</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_3_MEMBERS(T, Q, s)</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_4_MEMBERS(T, Q, x)</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_4_MEMBERS(T, Q, r)</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">                                        _GLM_SWIZZLE1_4_MEMBERS(T, Q, s)</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">#                               endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                        };</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        <span class="keyword">union </span>{T x, r, s;};</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="comment">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">                                GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, Q)</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">#                       endif</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
 <div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 2;}</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T&amp; operator[](length_type i);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 1;}</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
 <div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const&amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, T, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, T, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
 <div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_CTOR_DECL explicit vec(T scalar);</div>
 <div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(T x, T y);</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec&lt;1, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                template&lt;typename A, typename B&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A x, B y);</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                template&lt;typename A, typename B&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, Q&gt; const&amp; x, B y);</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                template&lt;typename A, typename B&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A x, vec&lt;1, B, Q&gt; const&amp; y);</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                template&lt;typename A, typename B&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, Q&gt; const&amp; x, vec&lt;1, B, Q&gt; const&amp; y);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;3, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;2, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;2, T, Q, E0, E1,-1,-2&gt; <span class="keyword">const</span>&amp; that)</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                        {</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                                *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                        }</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator=(vec <span class="keyword">const</span>&amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator+=(U scalar);</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator+=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator+=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator-=(U scalar);</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator-=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator-=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator*=(U scalar);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator*=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator*=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator/=(U scalar);</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator/=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator/=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator%=(U scalar);</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator%=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&amp;=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator|=(U scalar);</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator|=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator^=(U scalar);</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator^=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        };</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;2, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;3, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;1, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">                        template&lt;int E0&gt;</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">                        GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;1, T, Q, E0, -1,-2,-3&gt; const&amp; that)</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">                        {</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">                                *this = that();</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">                        }</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator=(vec const&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator+=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator-=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator*=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator/=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                template&lt;typename U&gt;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        };</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160; </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator+(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator-(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator*(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator*(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
 <div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160; </div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160; </div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; </div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; </div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160; </div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160; </div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160; </div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160; </div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160; </div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160; </div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160; </div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160; </div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160; </div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160; </div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160; </div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160; </div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160; </div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator~(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160; </div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, bool, Q&gt; operator&amp;&amp;(vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; </div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, bool, Q&gt; operator||(vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">#include &quot;type_vec2.inl&quot;</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator*(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator/(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator/(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator/(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator%(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator%(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator%(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&amp;(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator|(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator|(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator|(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator^(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator^(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator^(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160; </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; const&amp; v, T scalar);</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, T, Q&gt; operator~(vec&lt;1, T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        template&lt;typename T, qualifier Q&gt;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;1, T, Q&gt; const&amp; v1, vec&lt;1, T, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        template&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; operator&amp;&amp;(vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v1, vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160; </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        template&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; operator||(vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v1, vec&lt;1, <span class="keywordtype">bool</span>, Q&gt; const&amp; v2);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#include &quot;type_vec1.inl&quot;</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00077.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec3.hpp File Reference</title>
+<title>1.0.2 API documentation: type_vec2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec3.hpp File Reference</div>  </div>
+<div class="title">type_vec2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00077_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00077_source.html">type_vec3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00077_source.html">type_vec2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 339 - 365
doc/api/a00077_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec3.hpp Source File</title>
+<title>1.0.2 API documentation: type_vec2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec3.hpp</div>  </div>
+<div class="title">type_vec2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00077.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -84,68 +84,68 @@ $(function() {
 <div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
 <div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;3, T, Q&gt;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;2, T, Q&gt;</div>
 <div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        {</div>
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; type;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, bool, Q&gt; bool_type;</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#                                       pragma warning(disable: 4324)  // structure was padded due to alignment specifier</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#                               endif</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                        T x, y, z;</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, Q, x, y, z)</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                        <span class="keyword">union</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        {</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                                <span class="keyword">struct</span>{ T x, y, z; };</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                <span class="keyword">struct</span>{ T r, g, b; };</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                                <span class="keyword">struct</span>{ T s, t, p; };</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;3, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                                        GLM_SWIZZLE3_2_MEMBERS(T, Q, x, y, z)</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                                        GLM_SWIZZLE3_2_MEMBERS(T, Q, r, g, b)</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                                        GLM_SWIZZLE3_2_MEMBERS(T, Q, s, t, p)</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                        GLM_SWIZZLE3_3_MEMBERS(T, Q, x, y, z)</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        GLM_SWIZZLE3_3_MEMBERS(T, Q, r, g, b)</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        GLM_SWIZZLE3_3_MEMBERS(T, Q, s, t, p)</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                        GLM_SWIZZLE3_4_MEMBERS(T, Q, x, y, z)</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                        GLM_SWIZZLE3_4_MEMBERS(T, Q, r, g, b)</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                                        GLM_SWIZZLE3_4_MEMBERS(T, Q, s, t, p)</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#                               endif</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        };</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                        <span class="keyword">union </span>{ T x, r, s; };</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                        <span class="keyword">union </span>{ T y, g, t; };</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                        <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, T, Q&gt; type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;2, bool, Q&gt; bool_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                <span class="keyword">enum</span> is_aligned</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                        value = <span class="keyword">false</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                };</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                        T x, y;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, Q, x, y)</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        <span class="keyword">union</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        {</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                <span class="keyword">struct</span>{ T x, y; };</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                                <span class="keyword">struct</span>{ T r, g; };</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                                <span class="keyword">struct</span>{ T s, t; };</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;2, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                                        GLM_SWIZZLE2_2_MEMBERS(T, Q, x, y)</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                                        GLM_SWIZZLE2_2_MEMBERS(T, Q, r, g)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                        GLM_SWIZZLE2_2_MEMBERS(T, Q, s, t)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        GLM_SWIZZLE2_3_MEMBERS(T, Q, x, y)</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        GLM_SWIZZLE2_3_MEMBERS(T, Q, r, g)</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                        GLM_SWIZZLE2_3_MEMBERS(T, Q, s, t)</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                        GLM_SWIZZLE2_4_MEMBERS(T, Q, x, y)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                                        GLM_SWIZZLE2_4_MEMBERS(T, Q, r, g)</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                                        GLM_SWIZZLE2_4_MEMBERS(T, Q, s, t)</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#                               endif</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        };</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                        <span class="keyword">union </span>{T x, r, s;};</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                        <span class="keyword">union </span>{T y, g, t;};</div>
 <div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
 <div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                                GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, Q)</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                                GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, Q)</div>
 <div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#               endif//GLM_LANG</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#               endif</span></div>
 <div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
@@ -160,9 +160,9 @@ $(function() {
 <div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
 <div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
 <div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 3;}</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 2;}</div>
 <div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T&amp; operator[](length_type i);</div>
 <div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
 <div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
@@ -170,333 +170,307 @@ $(function() {
 <div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
 <div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const&amp; v) GLM_DEFAULT;</div>
 <div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;3, T, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, T, P&gt; const&amp; v);</div>
 <div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
 <div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
 <div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(T a, T b, T c);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_CTOR_DECL explicit vec(T scalar);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                GLM_CTOR_DECL vec(T x, T y);</div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <span class="comment">// -- Conversion constructors --</span></div>
 <div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
 <div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec&lt;1, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_CTOR_DECL explicit vec(vec&lt;1, U, P&gt; const&amp; v);</div>
 <div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X x, Y y, Z z);</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, Z _z);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z);</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z);</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, B _z);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;1, B, P&gt; const&amp; _z);</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec&lt;2, B, P&gt; const&amp; _yz);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;2, B, P&gt; const&amp; _yz);</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                template&lt;typename A, typename B&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                GLM_CTOR_DECL vec(A x, B y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                template&lt;typename A, typename B&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, Q&gt; const&amp; x, B y);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                template&lt;typename A, typename B&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                GLM_CTOR_DECL vec(A x, vec&lt;1, B, Q&gt; const&amp; y);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                template&lt;typename A, typename B&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, Q&gt; const&amp; x, vec&lt;1, B, Q&gt; const&amp; y);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;3, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;2, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(detail::_swizzle&lt;2, T, Q, E0, E1,-1,-2&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                        {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                                *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                        }</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator=(vec <span class="keyword">const</span>&amp; v) GLM_DEFAULT;</div>
 <div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;3, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;3, T, Q, E0, E1, E2, -1&gt; <span class="keyword">const</span>&amp; that)</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                        {</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                                *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                        }</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; scalar)</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                        {</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                                *<span class="keyword">this</span> = vec(v(), scalar);</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                        }</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(T <span class="keyword">const</span>&amp; scalar, detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v)</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                        {</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                                *<span class="keyword">this</span> = vec(scalar, v());</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                        }</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator+=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator+=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator-=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator-=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator*=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator*=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator/=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator/=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt;&amp; operator=(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
 <div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator+=(U scalar);</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator+=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator+=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator-=(U scalar);</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator-=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator-=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator*=(U scalar);</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator*=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator*=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator/=(U scalar);</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator/=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator/=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator%=(U scalar);</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator%=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&amp;=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator|=(U scalar);</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator|=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator^=(U scalar);</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator^=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        };</div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator%=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&amp;=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator|=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator^=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;2, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        };</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160; </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator+(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; </div>
 <div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
 <div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160; </div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160; </div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160; </div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160; </div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160; </div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160; </div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160; </div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, T scalar);</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160; </div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160; </div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160; </div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160; </div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160; </div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160; </div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160; </div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator-(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160; </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160; </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160; </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator*(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160; </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160; </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator/(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160; </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160; </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator%(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160; </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&amp;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160; </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160; </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator|(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160; </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160; </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator^(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160; </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160; </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160; </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&lt;&lt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160; </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator&gt;&gt;(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, T, Q&gt; operator~(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
 <div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
 <div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160; </div>
 <div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160; </div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, bool, Q&gt; operator&amp;&amp;(vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160; </div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160; </div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160; </div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160; </div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; </div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator~(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160; </div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160; </div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160; </div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, bool, Q&gt; operator&amp;&amp;(vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; </div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, bool, Q&gt; operator||(vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160; </div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">#include &quot;type_vec3.inl&quot;</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;2, bool, Q&gt; operator||(vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;2, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160; </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">#include &quot;type_vec2.inl&quot;</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 6
doc/api/a00080.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec4.hpp File Reference</title>
+<title>1.0.2 API documentation: type_vec3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,18 +67,18 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec4.hpp File Reference</div>  </div>
+<div class="title">type_vec3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00080_source.html">Go to the source code of this file.</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00080_source.html">type_vec4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00080_source.html">type_vec3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 404 - 453
doc/api/a00080_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: type_vec4.hpp Source File</title>
+<title>1.0.2 API documentation: type_vec3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">type_vec4.hpp</div>  </div>
+<div class="title">type_vec3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00080.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -84,480 +84,431 @@ $(function() {
 <div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
 <div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;4, T, Q&gt;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;3, T, Q&gt;</div>
 <div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        {</div>
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; type;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, bool, Q&gt; bool_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, T, Q&gt; type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;3, bool, Q&gt; bool_type;</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                        T x, y, z, w;</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, Q, x, y, z, w)</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        <span class="keyword">union</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        {</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                                <span class="keyword">struct </span>{ T x, y, z, w; };</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                <span class="keyword">struct </span>{ T r, g, b, a; };</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                <span class="keyword">struct </span>{ T s, t, p, q; };</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;4, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                                        GLM_SWIZZLE4_2_MEMBERS(T, Q, x, y, z, w)</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                                        GLM_SWIZZLE4_2_MEMBERS(T, Q, r, g, b, a)</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                                        GLM_SWIZZLE4_2_MEMBERS(T, Q, s, t, p, q)</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                                        GLM_SWIZZLE4_3_MEMBERS(T, Q, x, y, z, w)</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                                        GLM_SWIZZLE4_3_MEMBERS(T, Q, r, g, b, a)</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                                        GLM_SWIZZLE4_3_MEMBERS(T, Q, s, t, p, q)</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                        GLM_SWIZZLE4_4_MEMBERS(T, Q, x, y, z, w)</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        GLM_SWIZZLE4_4_MEMBERS(T, Q, r, g, b, a)</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        GLM_SWIZZLE4_4_MEMBERS(T, Q, s, t, p, q)</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#                               endif</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                        };</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#               else</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        <span class="keyword">union </span>{ T x, r, s; };</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        <span class="keyword">union </span>{ T y, g, t; };</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        <span class="keyword">union </span>{ T z, b, p; };</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                        <span class="keyword">union </span>{ T w, a, q; };</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                                GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, Q)</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#                       endif</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#               endif</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00853.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="keyword">enum</span> is_aligned</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                        value = detail::is_aligned&lt;Q&gt;::value</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                };</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wpadded&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#                                       pragma warning(disable: 4324)  // structure was padded due to alignment specifier</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#                               endif</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        T x, y, z;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, Q, x, y, z)</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                        <span class="keyword">union</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                        {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                                <span class="keyword">struct</span>{ T x, y, z; };</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                                <span class="keyword">struct</span>{ T r, g, b; };</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                                <span class="keyword">struct</span>{ T s, t, p; };</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;3, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                        GLM_SWIZZLE3_2_MEMBERS(T, Q, x, y, z)</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                        GLM_SWIZZLE3_2_MEMBERS(T, Q, r, g, b)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                                        GLM_SWIZZLE3_2_MEMBERS(T, Q, s, t, p)</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                                        GLM_SWIZZLE3_3_MEMBERS(T, Q, x, y, z)</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                                        GLM_SWIZZLE3_3_MEMBERS(T, Q, r, g, b)</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                                        GLM_SWIZZLE3_3_MEMBERS(T, Q, s, t, p)</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                                        GLM_SWIZZLE3_4_MEMBERS(T, Q, x, y, z)</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                                        GLM_SWIZZLE3_4_MEMBERS(T, Q, r, g, b)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                                        GLM_SWIZZLE3_4_MEMBERS(T, Q, s, t, p)</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#                               endif</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                        };</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                        <span class="keyword">union </span>{ T x, r, s; };</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                        <span class="keyword">union </span>{ T y, g, t; };</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                        <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                                GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, Q)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#               endif//GLM_LANG</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
 <div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;4, T, Q&gt; const&amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                template&lt;qualifier P&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;4, T, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 3;}</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
 <div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(T x, T y, T z, T w);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec const&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                GLM_CTOR_DECL vec(vec&lt;3, T, P&gt; const&amp; v);</div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec&lt;1, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, Z _z, W _w);</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, Z _z, W _w);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, W _w);</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, W _w);</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, Z _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, B _z, C _w);</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;1, B, P&gt; const&amp; _z, C _w);</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, B _z, vec&lt;1, C, P&gt; const&amp; _w);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;1, B, P&gt; const&amp; _z, vec&lt;1, C, P&gt; const&amp; _w);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec&lt;2, B, P&gt; const&amp; _yz, C _w);</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;2, B, P&gt; const&amp; _yz, C _w);</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec&lt;2, B, P&gt; const&amp; _yz, vec&lt;1, C, P&gt; const&amp; _w);</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;2, B, P&gt; const&amp; _yz, vec&lt;1, C, P&gt; const&amp; _w);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, B _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, P&gt; const&amp; _x, B _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec&lt;1, B, P&gt; const&amp; _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;1, B, P&gt; const&amp; _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;3, A, P&gt; const&amp; _xyz, B _w);</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;3, A, P&gt; const&amp; _xyz, vec&lt;1, B, P&gt; const&amp; _w);</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec&lt;3, B, P&gt; const&amp; _yzw);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;3, B, P&gt; const&amp; _yzw);</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;2, B, P&gt; const&amp; _zw);</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;4, T, Q, E0, E1, E2, E3&gt; <span class="keyword">const</span>&amp; that)</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                        {</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                                *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                        }</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> F0, <span class="keywordtype">int</span> F1&gt;</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, detail::_swizzle&lt;2, T, Q, F0, F1, -1, -2&gt; <span class="keyword">const</span>&amp; u)</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                        {</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(v(), u());</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                        }</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(T <span class="keyword">const</span>&amp; x, T <span class="keyword">const</span>&amp; y, detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v)</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                        {</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(x, y, v());</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                        }</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(T <span class="keyword">const</span>&amp; x, detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; w)</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                        {</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(x, v(), w);</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                        }</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; z, T <span class="keyword">const</span>&amp; w)</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                        {</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(v(), z, w);</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                        }</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;3, T, Q, E0, E1, E2, -1&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; w)</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                        {</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(v(), w);</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                        }</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                        GLM_FUNC_DECL GLM_CONSTEXPR vec(T <span class="keyword">const</span>&amp; x, detail::_swizzle&lt;3, T, Q, E0, E1, E2, -1&gt; <span class="keyword">const</span>&amp; v)</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                        {</div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(x, v());</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                        }</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160; </div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator=(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator+=(U scalar);</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator+=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator+=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator-=(U scalar);</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator-=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator-=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator*=(U scalar);</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator*=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator*=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator/=(U scalar);</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator/=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator/=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator++();</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator--();</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                GLM_CTOR_DECL explicit vec(T scalar);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                GLM_CTOR_DECL vec(T a, T b, T c);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                GLM_CTOR_DECL explicit vec(vec&lt;1, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                GLM_CTOR_DECL vec(X x, Y y, Z z);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, Z _z);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                GLM_CTOR_DECL vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                GLM_CTOR_DECL vec(X _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                GLM_CTOR_DECL vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                template&lt;typename X, typename Y, typename Z&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, B _z);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;1, B, P&gt; const&amp; _z);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                GLM_CTOR_DECL vec(A _x, vec&lt;2, B, P&gt; const&amp; _yz);</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;2, B, P&gt; const&amp; _yz);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;3, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                        GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;3, T, Q, E0, E1, E2, -1&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                        {</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                                *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                        }</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                        GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec(detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; scalar)</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                        {</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                                *<span class="keyword">this</span> = vec(v(), scalar);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                        }</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                        GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec(T <span class="keyword">const</span>&amp; scalar, detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v)</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                        {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                                *<span class="keyword">this</span> = vec(scalar, v());</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                        }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt;&amp; operator=(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator+=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator+=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator-=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator-=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator*=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator*=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator/=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator/=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator%=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&amp;=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator|=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator^=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;3, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        };</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160; </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160; </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator+(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160; </div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator%=(U scalar);</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator%=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&amp;=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator|=(U scalar);</div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator|=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator^=(U scalar);</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator^=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        };</div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator-(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160; </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160; </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator*(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160; </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160; </div>
 <div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator/(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160; </div>
 <div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
 <div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160; </div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160; </div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160; </div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160; </div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160; </div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160; </div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160; </div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160; </div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160; </div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; </div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160; </div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160; </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160; </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator%(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160; </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, T scalar);</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160; </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160; </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160; </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&amp;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160; </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160; </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160; </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator|(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160; </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160; </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160; </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160; </div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator^(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; </div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160; </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160; </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&lt;&lt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160; </div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160; </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160; </div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160; </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator&gt;&gt;(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160; </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, T, Q&gt; operator~(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160; </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
 <div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160; </div>
 <div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160; </div>
 <div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, bool, Q&gt; operator&amp;&amp;(vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;3, bool, Q&gt; operator||(vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;3, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
 <div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160; </div>
 <div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160; </div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160; </div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160; </div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160; </div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160; </div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160; </div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160; </div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160; </div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator~(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160; </div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160; </div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, bool, Q&gt; operator&amp;&amp;(vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160; </div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, bool, Q&gt; operator||(vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="preprocessor">#include &quot;type_vec4.inl&quot;</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">#include &quot;type_vec3.inl&quot;</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00853_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00853.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 7 - 42
doc/api/a00083.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: exponential.hpp File Reference</title>
+<title>1.0.2 API documentation: type_vec4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -62,58 +62,23 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">exponential.hpp File Reference</div>  </div>
+<div class="title">type_vec4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00083_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga071566cadc7505455e611f2a0353f4d4"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga071566cadc7505455e611f2a0353f4d4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">exp</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga071566cadc7505455e611f2a0353f4d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural exponentiation of v, i.e., e^v.  <a href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">More...</a><br /></td></tr>
-<tr class="separator:ga071566cadc7505455e611f2a0353f4d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#gaff17ace6b579a03bf223ed4d1ed2cd16">exp2</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 2 raised to the v power.  <a href="a00804.html#gaff17ace6b579a03bf223ed4d1ed2cd16">More...</a><br /></td></tr>
-<tr class="separator:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">inversesqrt</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reciprocal of the positive square root of v.  <a href="a00804.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">More...</a><br /></td></tr>
-<tr class="separator:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#ga918c9f3fd086ce20e6760c903bd30fa9">log</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.  <a href="a00804.html#ga918c9f3fd086ce20e6760c903bd30fa9">More...</a><br /></td></tr>
-<tr class="separator:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82831c7d9cca777cebedfe03a19c8d75"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga82831c7d9cca777cebedfe03a19c8d75"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#ga82831c7d9cca777cebedfe03a19c8d75">log2</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:ga82831c7d9cca777cebedfe03a19c8d75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.  <a href="a00804.html#ga82831c7d9cca777cebedfe03a19c8d75">More...</a><br /></td></tr>
-<tr class="separator:ga82831c7d9cca777cebedfe03a19c8d75"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2254981952d4f333b900a6bf5167a6c4"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:ga2254981952d4f333b900a6bf5167a6c4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#ga2254981952d4f333b900a6bf5167a6c4">pow</a> (vec&lt; L, T, Q &gt; const &amp;base, vec&lt; L, T, Q &gt; const &amp;exponent)</td></tr>
-<tr class="memdesc:ga2254981952d4f333b900a6bf5167a6c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 'base' raised to the power 'exponent'.  <a href="a00804.html#ga2254981952d4f333b900a6bf5167a6c4">More...</a><br /></td></tr>
-<tr class="separator:ga2254981952d4f333b900a6bf5167a6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
-<tr class="memitem:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00804.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">sqrt</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
-<tr class="memdesc:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of v.  <a href="a00804.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">More...</a><br /></td></tr>
-<tr class="separator:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00083_source.html">exponential.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00083_source.html">type_vec4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 495 - 49
doc/api/a00083_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: exponential.hpp Source File</title>
+<title>1.0.2 API documentation: type_vec4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -62,62 +62,508 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_382f4fd018b81be8753cb53c0a41a09a.html">detail</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">exponential.hpp</div>  </div>
+<div class="title">type_vec4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00083.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00071.html">detail/type_vec1.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">detail/type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">detail/type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">detail/type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="a00804.html#ga2254981952d4f333b900a6bf5167a6c4">   36</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#ga2254981952d4f333b900a6bf5167a6c4">pow</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; base, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; exponent);</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">   47</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00804.html#ga918c9f3fd086ce20e6760c903bd30fa9">   60</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#ga918c9f3fd086ce20e6760c903bd30fa9">log</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00804.html#gaff17ace6b579a03bf223ed4d1ed2cd16">   71</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#gaff17ace6b579a03bf223ed4d1ed2cd16">exp2</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00804.html#ga82831c7d9cca777cebedfe03a19c8d75">   83</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#ga82831c7d9cca777cebedfe03a19c8d75">log2</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00804.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">   94</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">sqrt</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00804.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">  105</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00804.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">inversesqrt</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;qualifier.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#       include &quot;_swizzle.hpp&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#       include &quot;_swizzle_func.hpp&quot;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">struct </span>vec&lt;4, T, Q&gt;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, T, Q&gt; type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                <span class="keyword">typedef</span> vec&lt;4, bool, Q&gt; bool_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                <span class="keyword">enum</span> is_aligned</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                        value = detail::is_aligned&lt;Q&gt;::value</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                };</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#                               pragma warning(push)</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#                               pragma warning(disable: 4201)  // nonstandard extension used : nameless struct/union</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_XYZW_ONLY</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                        T x, y, z, w;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                        GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, Q, x, y, z, w)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#                       endif//GLM_CONFIG_SWIZZLE</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#               elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        <span class="keyword">union</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                        {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                                <span class="keyword">struct </span>{ T x, y, z, w; };</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                                <span class="keyword">struct </span>{ T r, g, b, a; };</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                                <span class="keyword">struct </span>{ T s, t, p, q; };</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                                <span class="keyword">typename</span> detail::storage&lt;4, T, detail::is_aligned&lt;Q&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#                               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                                        GLM_SWIZZLE4_2_MEMBERS(T, Q, x, y, z, w)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                        GLM_SWIZZLE4_2_MEMBERS(T, Q, r, g, b, a)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        GLM_SWIZZLE4_2_MEMBERS(T, Q, s, t, p, q)</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        GLM_SWIZZLE4_3_MEMBERS(T, Q, x, y, z, w)</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                        GLM_SWIZZLE4_3_MEMBERS(T, Q, r, g, b, a)</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                        GLM_SWIZZLE4_3_MEMBERS(T, Q, s, t, p, q)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                                        GLM_SWIZZLE4_4_MEMBERS(T, Q, x, y, z, w)</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                                        GLM_SWIZZLE4_4_MEMBERS(T, Q, r, g, b, a)</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                                        GLM_SWIZZLE4_4_MEMBERS(T, Q, s, t, p, q)</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#                               endif</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                        };</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#               else</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                        <span class="keyword">union </span>{ T x, r, s; };</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        <span class="keyword">union </span>{ T y, g, t; };</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                        <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                        <span class="keyword">union </span>{ T w, a, q; };</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#                       if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                                GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, Q)</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#               if GLM_SILENT_WARNINGS == GLM_ENABLE</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#                       if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#                               pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#                               pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#                       elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#                               pragma warning(pop)</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#                       endif</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#               endif</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                GLM_FUNC_DECL <span class="keyword">static</span> GLM_CONSTEXPR length_type <a class="code" href="a00862.html#gab703732449be6c7199369b3f9a91ed38">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR T <span class="keyword">const</span>&amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR vec() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec(vec&lt;4, T, Q&gt; const&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                template&lt;qualifier P&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                GLM_CTOR_DECL vec(vec&lt;4, T, P&gt; const&amp; v);</div>
 <div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#include &quot;detail/func_exponential.inl&quot;</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                GLM_CTOR_DECL explicit vec(T scalar);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                GLM_CTOR_DECL vec(T x, T y, T z, T w);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                GLM_CTOR_DECL explicit vec(vec&lt;1, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                GLM_CTOR_DECL vec(X _x, Y _y, Z _z, W _w);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, Z _z, W _w);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                GLM_CTOR_DECL vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, W _w);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, W _w);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                GLM_CTOR_DECL vec(X _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                GLM_CTOR_DECL vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, W _w);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, Z _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                GLM_CTOR_DECL vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, Z _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                GLM_CTOR_DECL vec(X _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, Y _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                GLM_CTOR_DECL vec(X _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                template&lt;typename X, typename Y, typename Z, typename W&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, X, Q&gt; const&amp; _x, vec&lt;1, Y, Q&gt; const&amp; _y, vec&lt;1, Z, Q&gt; const&amp; _z, vec&lt;1, W, Q&gt; const&amp; _w);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, B _z, C _w);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;1, B, P&gt; const&amp; _z, C _w);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, B _z, vec&lt;1, C, P&gt; const&amp; _w);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;1, B, P&gt; const&amp; _z, vec&lt;1, C, P&gt; const&amp; _w);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                GLM_CTOR_DECL vec(A _x, vec&lt;2, B, P&gt; const&amp; _yz, C _w);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;2, B, P&gt; const&amp; _yz, C _w);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                GLM_CTOR_DECL vec(A _x, vec&lt;2, B, P&gt; const&amp; _yz, vec&lt;1, C, P&gt; const&amp; _w);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;2, B, P&gt; const&amp; _yz, vec&lt;1, C, P&gt; const&amp; _w);</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                GLM_CTOR_DECL vec(A _x, B _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, P&gt; const&amp; _x, B _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                GLM_CTOR_DECL vec(A _x, vec&lt;1, B, P&gt; const&amp; _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                template&lt;typename A, typename B, typename C, qualifier P&gt;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;1, B, P&gt; const&amp; _y, vec&lt;2, C, P&gt; const&amp; _zw);</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                GLM_CTOR_DECL vec(vec&lt;3, A, P&gt; const&amp; _xyz, B _w);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                GLM_CTOR_DECL vec(vec&lt;3, A, P&gt; const&amp; _xyz, vec&lt;1, B, P&gt; const&amp; _w);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                GLM_CTOR_DECL vec(A _x, vec&lt;3, B, P&gt; const&amp; _yzw);</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                GLM_CTOR_DECL vec(vec&lt;1, A, P&gt; const&amp; _x, vec&lt;3, B, P&gt; const&amp; _yzw);</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                template&lt;typename A, typename B, qualifier P&gt;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                GLM_CTOR_DECL vec(vec&lt;2, A, P&gt; const&amp; _xy, vec&lt;2, B, P&gt; const&amp; _zw);</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                template&lt;typename U, qualifier P&gt;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                GLM_CTOR_DECL GLM_EXPLICIT vec(vec&lt;4, U, P&gt; const&amp; v);</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">#               if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(detail::_swizzle&lt;4, T, Q, E0, E1, E2, E3&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                        {</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                                *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                        }</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> F0, <span class="keywordtype">int</span> F1&gt;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, detail::_swizzle&lt;2, T, Q, F0, F1, -1, -2&gt; <span class="keyword">const</span>&amp; u)</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                        {</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(v(), u());</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;                        }</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(T <span class="keyword">const</span>&amp; x, T <span class="keyword">const</span>&amp; y, detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v)</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                        {</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(x, y, v());</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                        }</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(T <span class="keyword">const</span>&amp; x, detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; w)</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;                        {</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(x, v(), w);</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                        }</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(detail::_swizzle&lt;2, T, Q, E0, E1, -1, -2&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; z, T <span class="keyword">const</span>&amp; w)</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                        {</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(v(), z, w);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                        }</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(detail::_swizzle&lt;3, T, Q, E0, E1, E2, 3&gt; <span class="keyword">const</span>&amp; v, T <span class="keyword">const</span>&amp; w)</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                        {</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(v(), w);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                        }</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                        <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                        GLM_FUNC_DISCARD_DECL vec(T <span class="keyword">const</span>&amp; x, detail::_swizzle&lt;3, T, Q, E0, E1, E2, 3&gt; <span class="keyword">const</span>&amp; v)</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                        {</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;                                *<span class="keyword">this</span> = vec&lt;4, T, Q&gt;(x, v());</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                        }</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#               endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;                GLM_DEFAULTED_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator=(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator+=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator+=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator-=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator-=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator*=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator*=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator/=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt;&amp; operator/=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator++();</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator--();</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator%=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator%=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&amp;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&amp;=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator|=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator|=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator^=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator^=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&lt;&lt;=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;1, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;                GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; &amp; operator&gt;&gt;=(vec&lt;4, U, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        };</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160; </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160; </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160; </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160; </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160; </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator+(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160; </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160; </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160; </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator-(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator*(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160; </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator/(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160; </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; </div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator%(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160; </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160; </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160; </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&amp;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160; </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator|(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160; </div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160; </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160; </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator^(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160; </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160; </div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&lt;&lt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160; </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, T scalar);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(T scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160; </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; scalar, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator&gt;&gt;(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160; </div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, T, Q&gt; operator~(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160; </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator==(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160; </div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">bool</span> operator!=(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160; </div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, bool, Q&gt; operator&amp;&amp;(vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="keyword">template</span>&lt;qualifier Q&gt;</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;4, bool, Q&gt; operator||(vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v1, vec&lt;4, bool, Q&gt; <span class="keyword">const</span>&amp; v2);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160; </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<span class="preprocessor">#include &quot;type_vec4.inl&quot;</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00804_html_gaff17ace6b579a03bf223ed4d1ed2cd16"><div class="ttname"><a href="a00804.html#gaff17ace6b579a03bf223ed4d1ed2cd16">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp2(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns 2 raised to the v power.</div></div>
-<div class="ttc" id="aa00804_html_ga82831c7d9cca777cebedfe03a19c8d75"><div class="ttname"><a href="a00804.html#ga82831c7d9cca777cebedfe03a19c8d75">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; log2(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.</div></div>
-<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00804_html_ga2254981952d4f333b900a6bf5167a6c4"><div class="ttname"><a href="a00804.html#ga2254981952d4f333b900a6bf5167a6c4">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; pow(vec&lt; L, T, Q &gt; const &amp;base, vec&lt; L, T, Q &gt; const &amp;exponent)</div><div class="ttdoc">Returns 'base' raised to the power 'exponent'.</div></div>
-<div class="ttc" id="aa00804_html_ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><div class="ttname"><a href="a00804.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; inversesqrt(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v.</div></div>
-<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00071_html"><div class="ttname"><a href="a00071.html">type_vec1.hpp</a></div><div class="ttdoc">Core features</div></div>
-<div class="ttc" id="aa00804_html_ga071566cadc7505455e611f2a0353f4d4"><div class="ttname"><a href="a00804.html#ga071566cadc7505455e611f2a0353f4d4">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of v, i.e., e^v.</div></div>
-<div class="ttc" id="aa00804_html_ga918c9f3fd086ce20e6760c903bd30fa9"><div class="ttname"><a href="a00804.html#ga918c9f3fd086ce20e6760c903bd30fa9">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; log(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.</div></div>
-<div class="ttc" id="aa00804_html_gaa83e5f1648b7ccdf33b87c07c76cb77c"><div class="ttname"><a href="a00804.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; sqrt(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the positive square root of v.</div></div>
+<div class="ttc" id="aa00862_html_gab703732449be6c7199369b3f9a91ed38"><div class="ttname"><a href="a00862.html#gab703732449be6c7199369b3f9a91ed38">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(qua&lt; T, Q &gt; const &amp;q)</div><div class="ttdoc">Returns the norm of a quaternions.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 125 - 0
doc/api/a00086.html

@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.18"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>1.0.2 API documentation: exponential.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">1.0.2 API documentation
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.18 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">exponential.hpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="a00898.html">Core features</a>  
+<a href="#details">More...</a></p>
+
+<p><a href="a00086_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga071566cadc7505455e611f2a0353f4d4"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:ga071566cadc7505455e611f2a0353f4d4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga071566cadc7505455e611f2a0353f4d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural exponentiation of v, i.e., e^v.  <a href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">More...</a><br /></td></tr>
+<tr class="separator:ga071566cadc7505455e611f2a0353f4d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#gaff17ace6b579a03bf223ed4d1ed2cd16">exp2</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 2 raised to the v power.  <a href="a00813.html#gaff17ace6b579a03bf223ed4d1ed2cd16">More...</a><br /></td></tr>
+<tr class="separator:gaff17ace6b579a03bf223ed4d1ed2cd16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">inversesqrt</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reciprocal of the positive square root of v.  <a href="a00813.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">More...</a><br /></td></tr>
+<tr class="separator:ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#ga918c9f3fd086ce20e6760c903bd30fa9">log</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.  <a href="a00813.html#ga918c9f3fd086ce20e6760c903bd30fa9">More...</a><br /></td></tr>
+<tr class="separator:ga918c9f3fd086ce20e6760c903bd30fa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a5bd81210e6b0c0c6038f637a8185e3"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:ga5a5bd81210e6b0c0c6038f637a8185e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#ga5a5bd81210e6b0c0c6038f637a8185e3">log2</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga5a5bd81210e6b0c0c6038f637a8185e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.  <a href="a00813.html#ga5a5bd81210e6b0c0c6038f637a8185e3">More...</a><br /></td></tr>
+<tr class="separator:ga5a5bd81210e6b0c0c6038f637a8185e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2254981952d4f333b900a6bf5167a6c4"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:ga2254981952d4f333b900a6bf5167a6c4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#ga2254981952d4f333b900a6bf5167a6c4">pow</a> (vec&lt; L, T, Q &gt; const &amp;base, vec&lt; L, T, Q &gt; const &amp;exponent)</td></tr>
+<tr class="memdesc:ga2254981952d4f333b900a6bf5167a6c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 'base' raised to the power 'exponent'.  <a href="a00813.html#ga2254981952d4f333b900a6bf5167a6c4">More...</a><br /></td></tr>
+<tr class="separator:ga2254981952d4f333b900a6bf5167a6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
+<tr class="memitem:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00813.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">sqrt</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of v.  <a href="a00813.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">More...</a><br /></td></tr>
+<tr class="separator:gaa83e5f1648b7ccdf33b87c07c76cb77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+<p class="definition">Definition in file <a class="el" href="a00086_source.html">exponential.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.18
+</small></address>
+</body>
+</html>

+ 49 - 130
doc/api/a00086_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: _matrix_vectorize.hpp Source File</title>
+<title>1.0.2 API documentation: exponential.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -62,143 +62,62 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_b171cecbb853a9ee4caace490047c53f.html">ext</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">_matrix_vectorize.hpp</div>  </div>
+<div class="title">exponential.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span>glm {</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;        <span class="keyword">namespace </span>detail {</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, length_t C, length_t R, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;                <span class="keyword">struct </span>matrix_functor_1 {</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;                };</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 2, 2, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;2, 2, T, Q&gt; call(Ret (*Func)(T x), mat&lt;2, 2, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;                                <span class="keywordflow">return</span> mat&lt;2, 2, Ret, Q&gt;(</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                                        Func(x[0][0]), Func(x[0][1]),</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                                        Func(x[1][0]), Func(x[1][1])</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                                );</div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                        }</div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                };</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 2, 3, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;2, 3, T, Q&gt; call(Ret (*Func)(T x), mat&lt;2, 3, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                                <span class="keywordflow">return</span> mat&lt;2, 3, Ret, Q&gt;(</div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]),</div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2])</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                                );</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        }</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                };</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 2, 4, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;2, 4, T, Q&gt; call(Ret (*Func)(T x), mat&lt;2, 4, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                                <span class="keywordflow">return</span> mat&lt;2, 4, Ret, Q&gt;(</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]), Func(x[0][3]),</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]), Func(x[1][3])</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                                );</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        }</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                };</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 3, 2, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;3, 2, T, Q&gt; call(Ret (*Func)(T x), mat&lt;3, 2, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                                <span class="keywordflow">return</span> mat&lt;3, 2, Ret, Q&gt;(</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                        Func(x[0][0]), Func(x[0][1]),</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                        Func(x[1][0]), Func(x[1][1]),</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                                        Func(x[2][0]), Func(x[2][1])</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                );</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        }</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                };</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 3, 3, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;3, 3, T, Q&gt; call(Ret (*Func)(T x), mat&lt;3, 3, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                <span class="keywordflow">return</span> mat&lt;3, 3, Ret, Q&gt;(</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]),</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]),</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2])</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                );</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        }</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                };</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 3, 4, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;3, 4, T, Q&gt; call(Ret (*Func)(T x), mat&lt;3, 4, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                                <span class="keywordflow">return</span> mat&lt;3, 4, Ret, Q&gt;(</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]), Func(x[0][3]),</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]), Func(x[1][3]),</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2]), Func(x[2][3])</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                                );</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                        }</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                };</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 4, 2, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;4, 2, T, Q&gt; call(Ret (*Func)(T x), mat&lt;4, 2, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                                <span class="keywordflow">return</span> mat&lt;4, 2, Ret, Q&gt;(</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                                        Func(x[0][0]), Func(x[0][1]),</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                                        Func(x[1][0]), Func(x[1][1]),</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                                        Func(x[2][0]), Func(x[2][1]),</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                                        Func(x[3][0]), Func(x[3][1])</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                                );</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                        }</div>
+<a href="a00086.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">detail/type_vec1.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">detail/type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">detail/type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">detail/type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="a00813.html#ga2254981952d4f333b900a6bf5167a6c4">   36</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#ga2254981952d4f333b900a6bf5167a6c4">pow</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; base, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; exponent);</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">   47</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00813.html#ga918c9f3fd086ce20e6760c903bd30fa9">   60</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#ga918c9f3fd086ce20e6760c903bd30fa9">log</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00813.html#gaff17ace6b579a03bf223ed4d1ed2cd16">   71</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#gaff17ace6b579a03bf223ed4d1ed2cd16">exp2</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00813.html#ga5a5bd81210e6b0c0c6038f637a8185e3">   83</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#ga5a5bd81210e6b0c0c6038f637a8185e3">log2</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00813.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">   94</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">sqrt</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
 <div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                };</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 4, 3, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;4, 3, T, Q&gt; call(Ret (*Func)(T x), mat&lt;4, 3, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                                <span class="keywordflow">return</span> mat&lt;4, 3, Ret, Q&gt;(</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]),</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]),</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2]),</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                                        Func(x[3][0]), Func(x[3][1]), Func(x[3][2])</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                );</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                        }</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00813.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">  105</a></span>&#160;        GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00813.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">inversesqrt</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}<span class="comment">//namespace glm</span></div>
 <div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                };</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 4, 4, Ret, T, Q&gt; {</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;4, 4, T, Q&gt; call(Ret (*Func)(T x), mat&lt;4, 4, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                                <span class="keywordflow">return</span> mat&lt;4, 4, Ret, Q&gt;(</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]), Func(x[0][3]),</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]), Func(x[1][3]),</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2]), Func(x[2][3]),</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                                        Func(x[3][0]), Func(x[3][1]), Func(x[3][2]), Func(x[3][3])</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                                );</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                        }</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                };</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        }</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#include &quot;detail/func_exponential.inl&quot;</span></div>
 </div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aa00813_html_ga918c9f3fd086ce20e6760c903bd30fa9"><div class="ttname"><a href="a00813.html#ga918c9f3fd086ce20e6760c903bd30fa9">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; log(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.</div></div>
+<div class="ttc" id="aa00074_html"><div class="ttname"><a href="a00074.html">type_vec1.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00813_html_gaff17ace6b579a03bf223ed4d1ed2cd16"><div class="ttname"><a href="a00813.html#gaff17ace6b579a03bf223ed4d1ed2cd16">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp2(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns 2 raised to the v power.</div></div>
+<div class="ttc" id="aa00080_html"><div class="ttname"><a href="a00080.html">type_vec3.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00813_html_ga2254981952d4f333b900a6bf5167a6c4"><div class="ttname"><a href="a00813.html#ga2254981952d4f333b900a6bf5167a6c4">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; pow(vec&lt; L, T, Q &gt; const &amp;base, vec&lt; L, T, Q &gt; const &amp;exponent)</div><div class="ttdoc">Returns 'base' raised to the power 'exponent'.</div></div>
+<div class="ttc" id="aa00083_html"><div class="ttname"><a href="a00083.html">type_vec4.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00813_html_ga5a5bd81210e6b0c0c6038f637a8185e3"><div class="ttname"><a href="a00813.html#ga5a5bd81210e6b0c0c6038f637a8185e3">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; log2(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.</div></div>
+<div class="ttc" id="aa00813_html_ga071566cadc7505455e611f2a0353f4d4"><div class="ttname"><a href="a00813.html#ga071566cadc7505455e611f2a0353f4d4">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of v, i.e., e^v.</div></div>
+<div class="ttc" id="aa00077_html"><div class="ttname"><a href="a00077.html">type_vec2.hpp</a></div><div class="ttdoc">Core features</div></div>
+<div class="ttc" id="aa00813_html_ga523dd6bd0ad9f75ae2d24c8e4b017b7a"><div class="ttname"><a href="a00813.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; inversesqrt(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v.</div></div>
+<div class="ttc" id="aa00813_html_gaa83e5f1648b7ccdf33b87c07c76cb77c"><div class="ttname"><a href="a00813.html#gaa83e5f1648b7ccdf33b87c07c76cb77c">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; sqrt(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the positive square root of v.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 0 - 264
doc/api/a00089.html

@@ -1,264 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_clip_space.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
-   </div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_63ed049134a778d525e06b63afc2c979.html">Github</a></li><li class="navelem"><a class="el" href="dir_c98a9ac98258ab9f831b188d66361a70.html">g-truc</a></li><li class="navelem"><a class="el" href="dir_50f12b6ceb23d7f6adfb377a1ae8b006.html">glm</a></li><li class="navelem"><a class="el" href="dir_fca33f1b5115d46f42c670590789c0d2.html">glm</a></li><li class="navelem"><a class="el" href="dir_b171cecbb853a9ee4caace490047c53f.html">ext</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">matrix_clip_space.hpp File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a class="el" href="a00805.html">GLM_EXT_matrix_clip_space</a>  
-<a href="#details">More...</a></p>
-
-<p><a href="a00089_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.  <a href="a00805.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">More...</a><br /></td></tr>
-<tr class="separator:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae4277c37f61d81da01bc9db14ea90296"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae4277c37f61d81da01bc9db14ea90296"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gae4277c37f61d81da01bc9db14ea90296">frustumLH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:gae4277c37f61d81da01bc9db14ea90296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left-handed frustum matrix.  <a href="a00805.html#gae4277c37f61d81da01bc9db14ea90296">More...</a><br /></td></tr>
-<tr class="separator:gae4277c37f61d81da01bc9db14ea90296"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga259520cad03b3f8bca9417920035ed01"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga259520cad03b3f8bca9417920035ed01"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga259520cad03b3f8bca9417920035ed01">frustumLH_NO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:ga259520cad03b3f8bca9417920035ed01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left-handed frustum matrix.  <a href="a00805.html#ga259520cad03b3f8bca9417920035ed01">More...</a><br /></td></tr>
-<tr class="separator:ga259520cad03b3f8bca9417920035ed01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94218b094862d17798370242680b9030"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga94218b094862d17798370242680b9030"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga94218b094862d17798370242680b9030">frustumLH_ZO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:ga94218b094862d17798370242680b9030"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left-handed frustum matrix.  <a href="a00805.html#ga94218b094862d17798370242680b9030">More...</a><br /></td></tr>
-<tr class="separator:ga94218b094862d17798370242680b9030"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gae34ec664ad44860bf4b5ba631f0e0e90">frustumNO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#gae34ec664ad44860bf4b5ba631f0e0e90">More...</a><br /></td></tr>
-<tr class="separator:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga4366ab45880c6c5f8b3e8c371ca4b136">frustumRH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right-handed frustum matrix.  <a href="a00805.html#ga4366ab45880c6c5f8b3e8c371ca4b136">More...</a><br /></td></tr>
-<tr class="separator:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9236c8439f21be186b79c97b588836b9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga9236c8439f21be186b79c97b588836b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga9236c8439f21be186b79c97b588836b9">frustumRH_NO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:ga9236c8439f21be186b79c97b588836b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right-handed frustum matrix.  <a href="a00805.html#ga9236c8439f21be186b79c97b588836b9">More...</a><br /></td></tr>
-<tr class="separator:ga9236c8439f21be186b79c97b588836b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7654a9227f14d5382786b9fc0eb5692d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga7654a9227f14d5382786b9fc0eb5692d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga7654a9227f14d5382786b9fc0eb5692d">frustumRH_ZO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:ga7654a9227f14d5382786b9fc0eb5692d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right-handed frustum matrix.  <a href="a00805.html#ga7654a9227f14d5382786b9fc0eb5692d">More...</a><br /></td></tr>
-<tr class="separator:ga7654a9227f14d5382786b9fc0eb5692d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa73322e152edf50cf30a6edac342a757"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa73322e152edf50cf30a6edac342a757"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaa73322e152edf50cf30a6edac342a757">frustumZO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="memdesc:gaa73322e152edf50cf30a6edac342a757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#gaa73322e152edf50cf30a6edac342a757">More...</a><br /></td></tr>
-<tr class="separator:gaa73322e152edf50cf30a6edac342a757"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga44fa38a18349450325cae2661bb115ca"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga44fa38a18349450325cae2661bb115ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga44fa38a18349450325cae2661bb115ca">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="memdesc:ga44fa38a18349450325cae2661bb115ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.  <a href="a00805.html#ga44fa38a18349450325cae2661bb115ca">More...</a><br /></td></tr>
-<tr class="separator:ga44fa38a18349450325cae2661bb115ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga3201b30f5b3ea0f933246d87bfb992a9">infinitePerspectiveLH</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="memdesc:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00805.html#ga3201b30f5b3ea0f933246d87bfb992a9">More...</a><br /></td></tr>
-<tr class="separator:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga99672ffe5714ef478dab2437255fe7e1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga99672ffe5714ef478dab2437255fe7e1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga99672ffe5714ef478dab2437255fe7e1">infinitePerspectiveRH</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="memdesc:ga99672ffe5714ef478dab2437255fe7e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00805.html#ga99672ffe5714ef478dab2437255fe7e1">More...</a><br /></td></tr>
-<tr class="separator:ga99672ffe5714ef478dab2437255fe7e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5b6b40ed882cd56cd7cb97701909c06"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae5b6b40ed882cd56cd7cb97701909c06"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gae5b6b40ed882cd56cd7cb97701909c06">ortho</a> (T left, T right, T bottom, T top)</td></tr>
-<tr class="memdesc:gae5b6b40ed882cd56cd7cb97701909c06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for projecting two-dimensional coordinates onto the screen.  <a href="a00805.html#gae5b6b40ed882cd56cd7cb97701909c06">More...</a><br /></td></tr>
-<tr class="separator:gae5b6b40ed882cd56cd7cb97701909c06"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6615d8a9d39432e279c4575313ecb456"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6615d8a9d39432e279c4575313ecb456"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga6615d8a9d39432e279c4575313ecb456">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:ga6615d8a9d39432e279c4575313ecb456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition.  <a href="a00805.html#ga6615d8a9d39432e279c4575313ecb456">More...</a><br /></td></tr>
-<tr class="separator:ga6615d8a9d39432e279c4575313ecb456"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad122a79aadaa5529cec4ac197203db7f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gad122a79aadaa5529cec4ac197203db7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gad122a79aadaa5529cec4ac197203db7f">orthoLH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:gad122a79aadaa5529cec4ac197203db7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.  <a href="a00805.html#gad122a79aadaa5529cec4ac197203db7f">More...</a><br /></td></tr>
-<tr class="separator:gad122a79aadaa5529cec4ac197203db7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga526416735ea7c5c5cd255bf99d051bd8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga526416735ea7c5c5cd255bf99d051bd8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga526416735ea7c5c5cd255bf99d051bd8">orthoLH_NO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:ga526416735ea7c5c5cd255bf99d051bd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume using left-handed coordinates.  <a href="a00805.html#ga526416735ea7c5c5cd255bf99d051bd8">More...</a><br /></td></tr>
-<tr class="separator:ga526416735ea7c5c5cd255bf99d051bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab37ac3eec8d61f22fceda7775e836afa"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab37ac3eec8d61f22fceda7775e836afa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gab37ac3eec8d61f22fceda7775e836afa">orthoLH_ZO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:gab37ac3eec8d61f22fceda7775e836afa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.  <a href="a00805.html#gab37ac3eec8d61f22fceda7775e836afa">More...</a><br /></td></tr>
-<tr class="separator:gab37ac3eec8d61f22fceda7775e836afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab219d28a8f178d4517448fcd6395a073"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab219d28a8f178d4517448fcd6395a073"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gab219d28a8f178d4517448fcd6395a073">orthoNO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:gab219d28a8f178d4517448fcd6395a073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#gab219d28a8f178d4517448fcd6395a073">More...</a><br /></td></tr>
-<tr class="separator:gab219d28a8f178d4517448fcd6395a073"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga16264c9b838edeb9dd1de7a1010a13a4">orthoRH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.  <a href="a00805.html#ga16264c9b838edeb9dd1de7a1010a13a4">More...</a><br /></td></tr>
-<tr class="separator:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaa2f7a1373170bf0a4a2ddef9b0706780">orthoRH_NO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.  <a href="a00805.html#gaa2f7a1373170bf0a4a2ddef9b0706780">More...</a><br /></td></tr>
-<tr class="separator:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga9aea2e515b08fd7dce47b7b6ec34d588">orthoRH_ZO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.  <a href="a00805.html#ga9aea2e515b08fd7dce47b7b6ec34d588">More...</a><br /></td></tr>
-<tr class="separator:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaea11a70817af2c0801c869dea0b7a5bc"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaea11a70817af2c0801c869dea0b7a5bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaea11a70817af2c0801c869dea0b7a5bc">orthoZO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="memdesc:gaea11a70817af2c0801c869dea0b7a5bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.  <a href="a00805.html#gaea11a70817af2c0801c869dea0b7a5bc">More...</a><br /></td></tr>
-<tr class="separator:gaea11a70817af2c0801c869dea0b7a5bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga747c8cf99458663dd7ad1bb3a2f07787">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default near and far clip planes definition.  <a href="a00805.html#ga747c8cf99458663dd7ad1bb3a2f07787">More...</a><br /></td></tr>
-<tr class="separator:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebd02240fd36e85ad754f02ddd9a560d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaebd02240fd36e85ad754f02ddd9a560d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaebd02240fd36e85ad754f02ddd9a560d">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:gaebd02240fd36e85ad754f02ddd9a560d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition.  <a href="a00805.html#gaebd02240fd36e85ad754f02ddd9a560d">More...</a><br /></td></tr>
-<tr class="separator:gaebd02240fd36e85ad754f02ddd9a560d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga6aebe16c164bd8e52554cbe0304ef4aa">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a left-handed perspective projection matrix based on a field of view.  <a href="a00805.html#ga6aebe16c164bd8e52554cbe0304ef4aa">More...</a><br /></td></tr>
-<tr class="separator:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad18a4495b77530317327e8d466488c1a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gad18a4495b77530317327e8d466488c1a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gad18a4495b77530317327e8d466488c1a">perspectiveFovLH_NO</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:gad18a4495b77530317327e8d466488c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates.  <a href="a00805.html#gad18a4495b77530317327e8d466488c1a">More...</a><br /></td></tr>
-<tr class="separator:gad18a4495b77530317327e8d466488c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gabdd37014f529e25b2fa1b3ba06c10d5c">perspectiveFovLH_ZO</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates.  <a href="a00805.html#gabdd37014f529e25b2fa1b3ba06c10d5c">More...</a><br /></td></tr>
-<tr class="separator:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf30e7bd3b1387a6776433dd5383e6633"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf30e7bd3b1387a6776433dd5383e6633"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaf30e7bd3b1387a6776433dd5383e6633">perspectiveFovNO</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:gaf30e7bd3b1387a6776433dd5383e6633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#gaf30e7bd3b1387a6776433dd5383e6633">More...</a><br /></td></tr>
-<tr class="separator:gaf30e7bd3b1387a6776433dd5383e6633"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf32bf563f28379c68554a44ee60c6a85"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf32bf563f28379c68554a44ee60c6a85"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaf32bf563f28379c68554a44ee60c6a85">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:gaf32bf563f28379c68554a44ee60c6a85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a right-handed perspective projection matrix based on a field of view.  <a href="a00805.html#gaf32bf563f28379c68554a44ee60c6a85">More...</a><br /></td></tr>
-<tr class="separator:gaf32bf563f28379c68554a44ee60c6a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga257b733ff883c9a065801023cf243eb2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga257b733ff883c9a065801023cf243eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga257b733ff883c9a065801023cf243eb2">perspectiveFovRH_NO</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:ga257b733ff883c9a065801023cf243eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using right-handed coordinates.  <a href="a00805.html#ga257b733ff883c9a065801023cf243eb2">More...</a><br /></td></tr>
-<tr class="separator:ga257b733ff883c9a065801023cf243eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7dcbb25331676f5b0795aced1a905c44"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga7dcbb25331676f5b0795aced1a905c44"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga7dcbb25331676f5b0795aced1a905c44">perspectiveFovRH_ZO</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:ga7dcbb25331676f5b0795aced1a905c44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using right-handed coordinates.  <a href="a00805.html#ga7dcbb25331676f5b0795aced1a905c44">More...</a><br /></td></tr>
-<tr class="separator:ga7dcbb25331676f5b0795aced1a905c44"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga4bc69fa1d1f95128430aa3d2a712390b">perspectiveFovZO</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="memdesc:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#ga4bc69fa1d1f95128430aa3d2a712390b">More...</a><br /></td></tr>
-<tr class="separator:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum.  <a href="a00805.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">More...</a><br /></td></tr>
-<tr class="separator:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaead4d049d1feab463b700b5641aa590e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaead4d049d1feab463b700b5641aa590e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaead4d049d1feab463b700b5641aa590e">perspectiveLH_NO</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:gaead4d049d1feab463b700b5641aa590e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum.  <a href="a00805.html#gaead4d049d1feab463b700b5641aa590e">More...</a><br /></td></tr>
-<tr class="separator:gaead4d049d1feab463b700b5641aa590e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaca32af88c2719005c02817ad1142986c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaca32af88c2719005c02817ad1142986c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaca32af88c2719005c02817ad1142986c">perspectiveLH_ZO</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:gaca32af88c2719005c02817ad1142986c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum.  <a href="a00805.html#gaca32af88c2719005c02817ad1142986c">More...</a><br /></td></tr>
-<tr class="separator:gaca32af88c2719005c02817ad1142986c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf497e6bca61e7c87088370b126a93758"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf497e6bca61e7c87088370b126a93758"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaf497e6bca61e7c87088370b126a93758">perspectiveNO</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:gaf497e6bca61e7c87088370b126a93758"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#gaf497e6bca61e7c87088370b126a93758">More...</a><br /></td></tr>
-<tr class="separator:gaf497e6bca61e7c87088370b126a93758"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga26b88757fbd90601b80768a7e1ad3aa1">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum.  <a href="a00805.html#ga26b88757fbd90601b80768a7e1ad3aa1">More...</a><br /></td></tr>
-<tr class="separator:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad1526cb2cbe796095284e8f34b01c582"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gad1526cb2cbe796095284e8f34b01c582"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gad1526cb2cbe796095284e8f34b01c582">perspectiveRH_NO</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:gad1526cb2cbe796095284e8f34b01c582"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum.  <a href="a00805.html#gad1526cb2cbe796095284e8f34b01c582">More...</a><br /></td></tr>
-<tr class="separator:gad1526cb2cbe796095284e8f34b01c582"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">perspectiveRH_ZO</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum.  <a href="a00805.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">More...</a><br /></td></tr>
-<tr class="separator:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">perspectiveZO</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="memdesc:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00805.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">More...</a><br /></td></tr>
-<tr class="separator:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="memdesc:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.  <a href="a00805.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9">More...</a><br /></td></tr>
-<tr class="separator:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
-<tr class="memdesc:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.  <a href="a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8">More...</a><br /></td></tr>
-<tr class="separator:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00805.html">GLM_EXT_matrix_clip_space</a> </p>
-
-<p class="definition">Definition in file <a class="el" href="a00089_source.html">matrix_clip_space.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>

+ 126 - 225
doc/api/a00089_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_clip_space.hpp Source File</title>
+<title>1.0.2 API documentation: _matrix_vectorize.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,237 +67,138 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_clip_space.hpp</div>  </div>
+<div class="title">_matrix_vectorize.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="a00089.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;../ext/scalar_constants.hpp&quot;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;../trigonometric.hpp&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#       pragma message(&quot;GLM: GLM_EXT_matrix_clip_space extension included&quot;)</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span>glm {</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;        <span class="keyword">namespace </span>detail {</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, length_t C, length_t R, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;                <span class="keyword">struct </span>matrix_functor_1 {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;                };</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 2, 2, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;2, 2, T, Q&gt; call(Ret (*Func)(T x), mat&lt;2, 2, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;                                <span class="keywordflow">return</span> mat&lt;2, 2, Ret, Q&gt;(</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                                        Func(x[0][0]), Func(x[0][1]),</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                                        Func(x[1][0]), Func(x[1][1])</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                                );</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                        }</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                };</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 2, 3, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;2, 3, T, Q&gt; call(Ret (*Func)(T x), mat&lt;2, 3, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                                <span class="keywordflow">return</span> mat&lt;2, 3, Ret, Q&gt;(</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]),</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2])</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                                );</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        }</div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                };</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 2, 4, Ret, T, Q&gt; {</div>
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00805.html#gae5b6b40ed882cd56cd7cb97701909c06">   43</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga6615d8a9d39432e279c4575313ecb456">ortho</a>(</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                T left, T right, T bottom, T top);</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00805.html#gab37ac3eec8d61f22fceda7775e836afa">   53</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gab37ac3eec8d61f22fceda7775e836afa">orthoLH_ZO</a>(</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;2, 4, T, Q&gt; call(Ret (*Func)(T x), mat&lt;2, 4, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                                <span class="keywordflow">return</span> mat&lt;2, 4, Ret, Q&gt;(</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]), Func(x[0][3]),</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]), Func(x[1][3])</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                                );</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                        }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                };</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 3, 2, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;3, 2, T, Q&gt; call(Ret (*Func)(T x), mat&lt;3, 2, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                                <span class="keywordflow">return</span> mat&lt;3, 2, Ret, Q&gt;(</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                                        Func(x[0][0]), Func(x[0][1]),</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                                        Func(x[1][0]), Func(x[1][1]),</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                                        Func(x[2][0]), Func(x[2][1])</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                );</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                        }</div>
 <div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00805.html#ga526416735ea7c5c5cd255bf99d051bd8">   63</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga526416735ea7c5c5cd255bf99d051bd8">orthoLH_NO</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00805.html#ga9aea2e515b08fd7dce47b7b6ec34d588">   73</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga9aea2e515b08fd7dce47b7b6ec34d588">orthoRH_ZO</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00805.html#gaa2f7a1373170bf0a4a2ddef9b0706780">   83</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaa2f7a1373170bf0a4a2ddef9b0706780">orthoRH_NO</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00805.html#gaea11a70817af2c0801c869dea0b7a5bc">   93</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaea11a70817af2c0801c869dea0b7a5bc">orthoZO</a>(</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                };</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 3, 3, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;3, 3, T, Q&gt; call(Ret (*Func)(T x), mat&lt;3, 3, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                <span class="keywordflow">return</span> mat&lt;3, 3, Ret, Q&gt;(</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]),</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]),</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2])</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                );</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                        }</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                };</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 3, 4, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;3, 4, T, Q&gt; call(Ret (*Func)(T x), mat&lt;3, 4, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                                <span class="keywordflow">return</span> mat&lt;3, 4, Ret, Q&gt;(</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]), Func(x[0][3]),</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]), Func(x[1][3]),</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2]), Func(x[2][3])</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                                );</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                        }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                };</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 4, 2, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;4, 2, T, Q&gt; call(Ret (*Func)(T x), mat&lt;4, 2, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                                <span class="keywordflow">return</span> mat&lt;4, 2, Ret, Q&gt;(</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                                        Func(x[0][0]), Func(x[0][1]),</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                                        Func(x[1][0]), Func(x[1][1]),</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                                        Func(x[2][0]), Func(x[2][1]),</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                                        Func(x[3][0]), Func(x[3][1])</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                                );</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                        }</div>
 <div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00805.html#gab219d28a8f178d4517448fcd6395a073">  103</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gab219d28a8f178d4517448fcd6395a073">orthoNO</a>(</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00805.html#gad122a79aadaa5529cec4ac197203db7f">  114</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gad122a79aadaa5529cec4ac197203db7f">orthoLH</a>(</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00805.html#ga16264c9b838edeb9dd1de7a1010a13a4">  125</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga16264c9b838edeb9dd1de7a1010a13a4">orthoRH</a>(</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                };</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 4, 3, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;4, 3, T, Q&gt; call(Ret (*Func)(T x), mat&lt;4, 3, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                                <span class="keywordflow">return</span> mat&lt;4, 3, Ret, Q&gt;(</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]),</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]),</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2]),</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                                        Func(x[3][0]), Func(x[3][1]), Func(x[3][2])</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                );</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                        }</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                };</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>mat, <span class="keyword">typename</span> Ret, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                <span class="keyword">struct </span>matrix_functor_1&lt;mat, 4, 4, Ret, T, Q&gt; {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                        GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> mat&lt;4, 4, T, Q&gt; call(Ret (*Func)(T x), mat&lt;4, 4, T, Q&gt; <span class="keyword">const</span> &amp;x) {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                                <span class="keywordflow">return</span> mat&lt;4, 4, Ret, Q&gt;(</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                                        Func(x[0][0]), Func(x[0][1]), Func(x[0][2]), Func(x[0][3]),</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                                        Func(x[1][0]), Func(x[1][1]), Func(x[1][2]), Func(x[1][3]),</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                                        Func(x[2][0]), Func(x[2][1]), Func(x[2][2]), Func(x[2][3]),</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                                        Func(x[3][0]), Func(x[3][1]), Func(x[3][2]), Func(x[3][3])</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                                );</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                        }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                };</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        }</div>
 <div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00805.html#ga6615d8a9d39432e279c4575313ecb456">  136</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga6615d8a9d39432e279c4575313ecb456">ortho</a>(</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="a00805.html#ga94218b094862d17798370242680b9030">  144</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga94218b094862d17798370242680b9030">frustumLH_ZO</a>(</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00805.html#ga259520cad03b3f8bca9417920035ed01">  152</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga259520cad03b3f8bca9417920035ed01">frustumLH_NO</a>(</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00805.html#ga7654a9227f14d5382786b9fc0eb5692d">  160</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga7654a9227f14d5382786b9fc0eb5692d">frustumRH_ZO</a>(</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00805.html#ga9236c8439f21be186b79c97b588836b9">  168</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga9236c8439f21be186b79c97b588836b9">frustumRH_NO</a>(</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00805.html#gaa73322e152edf50cf30a6edac342a757">  176</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaa73322e152edf50cf30a6edac342a757">frustumZO</a>(</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00805.html#gae34ec664ad44860bf4b5ba631f0e0e90">  184</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gae34ec664ad44860bf4b5ba631f0e0e90">frustumNO</a>(</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00805.html#gae4277c37f61d81da01bc9db14ea90296">  193</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gae4277c37f61d81da01bc9db14ea90296">frustumLH</a>(</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="a00805.html#ga4366ab45880c6c5f8b3e8c371ca4b136">  202</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga4366ab45880c6c5f8b3e8c371ca4b136">frustumRH</a>(</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00805.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">  211</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">frustum</a>(</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00805.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">  225</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">perspectiveRH_ZO</a>(</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00805.html#gad1526cb2cbe796095284e8f34b01c582">  238</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gad1526cb2cbe796095284e8f34b01c582">perspectiveRH_NO</a>(</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00805.html#gaca32af88c2719005c02817ad1142986c">  251</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaca32af88c2719005c02817ad1142986c">perspectiveLH_ZO</a>(</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00805.html#gaead4d049d1feab463b700b5641aa590e">  264</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaead4d049d1feab463b700b5641aa590e">perspectiveLH_NO</a>(</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a00805.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">  277</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">perspectiveZO</a>(</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="a00805.html#gaf497e6bca61e7c87088370b126a93758">  290</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaf497e6bca61e7c87088370b126a93758">perspectiveNO</a>(</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00805.html#ga26b88757fbd90601b80768a7e1ad3aa1">  304</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga26b88757fbd90601b80768a7e1ad3aa1">perspectiveRH</a>(</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a00805.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">  318</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">perspectiveLH</a>(</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="a00805.html#ga747c8cf99458663dd7ad1bb3a2f07787">  332</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga747c8cf99458663dd7ad1bb3a2f07787">perspective</a>(</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                T fovy, T aspect, T near, T far);</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160; </div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="a00805.html#ga7dcbb25331676f5b0795aced1a905c44">  346</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga7dcbb25331676f5b0795aced1a905c44">perspectiveFovRH_ZO</a>(</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="a00805.html#ga257b733ff883c9a065801023cf243eb2">  360</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga257b733ff883c9a065801023cf243eb2">perspectiveFovRH_NO</a>(</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="a00805.html#gabdd37014f529e25b2fa1b3ba06c10d5c">  374</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gabdd37014f529e25b2fa1b3ba06c10d5c">perspectiveFovLH_ZO</a>(</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="a00805.html#gad18a4495b77530317327e8d466488c1a">  388</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gad18a4495b77530317327e8d466488c1a">perspectiveFovLH_NO</a>(</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="a00805.html#ga4bc69fa1d1f95128430aa3d2a712390b">  402</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga4bc69fa1d1f95128430aa3d2a712390b">perspectiveFovZO</a>(</div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; </div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="a00805.html#gaf30e7bd3b1387a6776433dd5383e6633">  416</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaf30e7bd3b1387a6776433dd5383e6633">perspectiveFovNO</a>(</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="a00805.html#gaf32bf563f28379c68554a44ee60c6a85">  431</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaf32bf563f28379c68554a44ee60c6a85">perspectiveFovRH</a>(</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00805.html#ga6aebe16c164bd8e52554cbe0304ef4aa">  446</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga6aebe16c164bd8e52554cbe0304ef4aa">perspectiveFovLH</a>(</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="a00805.html#gaebd02240fd36e85ad754f02ddd9a560d">  460</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaebd02240fd36e85ad754f02ddd9a560d">perspectiveFov</a>(</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                T fov, T width, T height, T near, T far);</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="a00805.html#ga3201b30f5b3ea0f933246d87bfb992a9">  471</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga3201b30f5b3ea0f933246d87bfb992a9">infinitePerspectiveLH</a>(</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;                T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="a00805.html#ga99672ffe5714ef478dab2437255fe7e1">  482</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga99672ffe5714ef478dab2437255fe7e1">infinitePerspectiveRH</a>(</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;                T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="a00805.html#ga44fa38a18349450325cae2661bb115ca">  493</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#ga44fa38a18349450325cae2661bb115ca">infinitePerspective</a>(</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;                T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160; </div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="a00805.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9">  504</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8">tweakedInfinitePerspective</a>(</div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;                T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160; </div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8">  516</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8">tweakedInfinitePerspective</a>(</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;                T fovy, T aspect, T near, T ep);</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160; </div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160; </div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">#include &quot;matrix_clip_space.inl&quot;</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}<span class="comment">// namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00805_html_gaf497e6bca61e7c87088370b126a93758"><div class="ttname"><a href="a00805.html#gaf497e6bca61e7c87088370b126a93758">glm::perspectiveNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveNO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_...</div></div>
-<div class="ttc" id="aa00805_html_gaca32af88c2719005c02817ad1142986c"><div class="ttname"><a href="a00805.html#gaca32af88c2719005c02817ad1142986c">glm::perspectiveLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveLH_ZO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum.</div></div>
-<div class="ttc" id="aa00805_html_gad18a4495b77530317327e8d466488c1a"><div class="ttname"><a href="a00805.html#gad18a4495b77530317327e8d466488c1a">glm::perspectiveFovLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovLH_NO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_gaa73322e152edf50cf30a6edac342a757"><div class="ttname"><a href="a00805.html#gaa73322e152edf50cf30a6edac342a757">glm::frustumZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumZO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...</div></div>
-<div class="ttc" id="aa00805_html_ga526416735ea7c5c5cd255bf99d051bd8"><div class="ttname"><a href="a00805.html#ga526416735ea7c5c5cd255bf99d051bd8">glm::orthoLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoLH_NO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume using left-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_gae4277c37f61d81da01bc9db14ea90296"><div class="ttname"><a href="a00805.html#gae4277c37f61d81da01bc9db14ea90296">glm::frustumLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumLH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left-handed frustum matrix.</div></div>
-<div class="ttc" id="aa00805_html_ga44fa38a18349450325cae2661bb115ca"><div class="ttname"><a href="a00805.html#ga44fa38a18349450325cae2661bb115ca">glm::infinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspective(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...</div></div>
-<div class="ttc" id="aa00805_html_ga257b733ff883c9a065801023cf243eb2"><div class="ttname"><a href="a00805.html#ga257b733ff883c9a065801023cf243eb2">glm::perspectiveFovRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovRH_NO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using right-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_gad122a79aadaa5529cec4ac197203db7f"><div class="ttname"><a href="a00805.html#gad122a79aadaa5529cec4ac197203db7f">glm::orthoLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_ga4bc69fa1d1f95128430aa3d2a712390b"><div class="ttname"><a href="a00805.html#ga4bc69fa1d1f95128430aa3d2a712390b">glm::perspectiveFovZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovZO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...</div></div>
-<div class="ttc" id="aa00805_html_ga16264c9b838edeb9dd1de7a1010a13a4"><div class="ttname"><a href="a00805.html#ga16264c9b838edeb9dd1de7a1010a13a4">glm::orthoRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_ga26b88757fbd90601b80768a7e1ad3aa1"><div class="ttname"><a href="a00805.html#ga26b88757fbd90601b80768a7e1ad3aa1">glm::perspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveRH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum.</div></div>
-<div class="ttc" id="aa00805_html_gab219d28a8f178d4517448fcd6395a073"><div class="ttname"><a href="a00805.html#gab219d28a8f178d4517448fcd6395a073">glm::orthoNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoNO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FO...</div></div>
-<div class="ttc" id="aa00805_html_gaa9dfba5c2322da54f72b1eb7c7c11b47"><div class="ttname"><a href="a00805.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">glm::perspectiveZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveZO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_...</div></div>
-<div class="ttc" id="aa00805_html_ga7dcbb25331676f5b0795aced1a905c44"><div class="ttname"><a href="a00805.html#ga7dcbb25331676f5b0795aced1a905c44">glm::perspectiveFovRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovRH_ZO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using right-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_gaf32bf563f28379c68554a44ee60c6a85"><div class="ttname"><a href="a00805.html#gaf32bf563f28379c68554a44ee60c6a85">glm::perspectiveFovRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovRH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a right-handed perspective projection matrix based on a field of view.</div></div>
-<div class="ttc" id="aa00805_html_gaf30e7bd3b1387a6776433dd5383e6633"><div class="ttname"><a href="a00805.html#gaf30e7bd3b1387a6776433dd5383e6633">glm::perspectiveFovNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovNO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...</div></div>
-<div class="ttc" id="aa00805_html_ga747c8cf99458663dd7ad1bb3a2f07787"><div class="ttname"><a href="a00805.html#ga747c8cf99458663dd7ad1bb3a2f07787">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default...</div></div>
-<div class="ttc" id="aa00805_html_ga0bcd4542e0affc63a0b8c08fcb839ea9"><div class="ttname"><a href="a00805.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">glm::frustum</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustum(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix with default handedness, using the default handedness and default near and f...</div></div>
-<div class="ttc" id="aa00805_html_ga6615d8a9d39432e279c4575313ecb456"><div class="ttname"><a href="a00805.html#ga6615d8a9d39432e279c4575313ecb456">glm::ortho</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; ortho(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using the default handedness and defaul...</div></div>
-<div class="ttc" id="aa00805_html_ga9bd34951dc7022ac256fcb51d7f6fc2f"><div class="ttname"><a href="a00805.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">glm::perspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveLH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum.</div></div>
-<div class="ttc" id="aa00805_html_gaea11a70817af2c0801c869dea0b7a5bc"><div class="ttname"><a href="a00805.html#gaea11a70817af2c0801c869dea0b7a5bc">glm::orthoZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoZO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_gabdd37014f529e25b2fa1b3ba06c10d5c"><div class="ttname"><a href="a00805.html#gabdd37014f529e25b2fa1b3ba06c10d5c">glm::perspectiveFovLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovLH_ZO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><div class="ttname"><a href="a00805.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">glm::perspectiveRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveRH_ZO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum.</div></div>
-<div class="ttc" id="aa00805_html_ga259520cad03b3f8bca9417920035ed01"><div class="ttname"><a href="a00805.html#ga259520cad03b3f8bca9417920035ed01">glm::frustumLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumLH_NO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left-handed frustum matrix.</div></div>
-<div class="ttc" id="aa00805_html_gaa2f7a1373170bf0a4a2ddef9b0706780"><div class="ttname"><a href="a00805.html#gaa2f7a1373170bf0a4a2ddef9b0706780">glm::orthoRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoRH_NO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_ga7654a9227f14d5382786b9fc0eb5692d"><div class="ttname"><a href="a00805.html#ga7654a9227f14d5382786b9fc0eb5692d">glm::frustumRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumRH_ZO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right-handed frustum matrix.</div></div>
-<div class="ttc" id="aa00805_html_ga4366ab45880c6c5f8b3e8c371ca4b136"><div class="ttname"><a href="a00805.html#ga4366ab45880c6c5f8b3e8c371ca4b136">glm::frustumRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumRH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right-handed frustum matrix.</div></div>
-<div class="ttc" id="aa00805_html_gaebd02240fd36e85ad754f02ddd9a560d"><div class="ttname"><a href="a00805.html#gaebd02240fd36e85ad754f02ddd9a560d">glm::perspectiveFov</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFov(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view and the default handedness and defaul...</div></div>
-<div class="ttc" id="aa00805_html_gaf5b3c85ff6737030a1d2214474ffa7a8"><div class="ttname"><a href="a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8">glm::tweakedInfinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...</div></div>
-<div class="ttc" id="aa00805_html_ga99672ffe5714ef478dab2437255fe7e1"><div class="ttname"><a href="a00805.html#ga99672ffe5714ef478dab2437255fe7e1">glm::infinitePerspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveRH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
-<div class="ttc" id="aa00805_html_ga9aea2e515b08fd7dce47b7b6ec34d588"><div class="ttname"><a href="a00805.html#ga9aea2e515b08fd7dce47b7b6ec34d588">glm::orthoRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoRH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_ga6aebe16c164bd8e52554cbe0304ef4aa"><div class="ttname"><a href="a00805.html#ga6aebe16c164bd8e52554cbe0304ef4aa">glm::perspectiveFovLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovLH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a left-handed perspective projection matrix based on a field of view.</div></div>
-<div class="ttc" id="aa00805_html_ga9236c8439f21be186b79c97b588836b9"><div class="ttname"><a href="a00805.html#ga9236c8439f21be186b79c97b588836b9">glm::frustumRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumRH_NO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right-handed frustum matrix.</div></div>
-<div class="ttc" id="aa00805_html_ga3201b30f5b3ea0f933246d87bfb992a9"><div class="ttname"><a href="a00805.html#ga3201b30f5b3ea0f933246d87bfb992a9">glm::infinitePerspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveLH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
-<div class="ttc" id="aa00805_html_gaead4d049d1feab463b700b5641aa590e"><div class="ttname"><a href="a00805.html#gaead4d049d1feab463b700b5641aa590e">glm::perspectiveLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveLH_NO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum.</div></div>
-<div class="ttc" id="aa00805_html_gae34ec664ad44860bf4b5ba631f0e0e90"><div class="ttname"><a href="a00805.html#gae34ec664ad44860bf4b5ba631f0e0e90">glm::frustumNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumNO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...</div></div>
-<div class="ttc" id="aa00805_html_gab37ac3eec8d61f22fceda7775e836afa"><div class="ttname"><a href="a00805.html#gab37ac3eec8d61f22fceda7775e836afa">glm::orthoLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoLH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.</div></div>
-<div class="ttc" id="aa00805_html_ga94218b094862d17798370242680b9030"><div class="ttname"><a href="a00805.html#ga94218b094862d17798370242680b9030">glm::frustumLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumLH_ZO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left-handed frustum matrix.</div></div>
-<div class="ttc" id="aa00805_html_gad1526cb2cbe796095284e8f34b01c582"><div class="ttname"><a href="a00805.html#gad1526cb2cbe796095284e8f34b01c582">glm::perspectiveRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveRH_NO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 196 - 6
doc/api/a00092.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_common.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_clip_space.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -66,19 +66,209 @@ $(function() {
 </div>
 </div><!-- top -->
 <div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_common.hpp File Reference</div>  </div>
+<div class="title">matrix_clip_space.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00806.html">GLM_EXT_matrix_common</a>  
+<p><a class="el" href="a00814.html">GLM_EXT_matrix_clip_space</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00092_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.  <a href="a00814.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">More...</a><br /></td></tr>
+<tr class="separator:ga0bcd4542e0affc63a0b8c08fcb839ea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4277c37f61d81da01bc9db14ea90296"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae4277c37f61d81da01bc9db14ea90296"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gae4277c37f61d81da01bc9db14ea90296">frustumLH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gae4277c37f61d81da01bc9db14ea90296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left-handed frustum matrix.  <a href="a00814.html#gae4277c37f61d81da01bc9db14ea90296">More...</a><br /></td></tr>
+<tr class="separator:gae4277c37f61d81da01bc9db14ea90296"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga259520cad03b3f8bca9417920035ed01"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga259520cad03b3f8bca9417920035ed01"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga259520cad03b3f8bca9417920035ed01">frustumLH_NO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga259520cad03b3f8bca9417920035ed01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left-handed frustum matrix.  <a href="a00814.html#ga259520cad03b3f8bca9417920035ed01">More...</a><br /></td></tr>
+<tr class="separator:ga259520cad03b3f8bca9417920035ed01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94218b094862d17798370242680b9030"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga94218b094862d17798370242680b9030"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga94218b094862d17798370242680b9030">frustumLH_ZO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga94218b094862d17798370242680b9030"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left-handed frustum matrix.  <a href="a00814.html#ga94218b094862d17798370242680b9030">More...</a><br /></td></tr>
+<tr class="separator:ga94218b094862d17798370242680b9030"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gae34ec664ad44860bf4b5ba631f0e0e90">frustumNO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#gae34ec664ad44860bf4b5ba631f0e0e90">More...</a><br /></td></tr>
+<tr class="separator:gae34ec664ad44860bf4b5ba631f0e0e90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga4366ab45880c6c5f8b3e8c371ca4b136">frustumRH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right-handed frustum matrix.  <a href="a00814.html#ga4366ab45880c6c5f8b3e8c371ca4b136">More...</a><br /></td></tr>
+<tr class="separator:ga4366ab45880c6c5f8b3e8c371ca4b136"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9236c8439f21be186b79c97b588836b9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga9236c8439f21be186b79c97b588836b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga9236c8439f21be186b79c97b588836b9">frustumRH_NO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga9236c8439f21be186b79c97b588836b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right-handed frustum matrix.  <a href="a00814.html#ga9236c8439f21be186b79c97b588836b9">More...</a><br /></td></tr>
+<tr class="separator:ga9236c8439f21be186b79c97b588836b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7654a9227f14d5382786b9fc0eb5692d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga7654a9227f14d5382786b9fc0eb5692d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga7654a9227f14d5382786b9fc0eb5692d">frustumRH_ZO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga7654a9227f14d5382786b9fc0eb5692d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right-handed frustum matrix.  <a href="a00814.html#ga7654a9227f14d5382786b9fc0eb5692d">More...</a><br /></td></tr>
+<tr class="separator:ga7654a9227f14d5382786b9fc0eb5692d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa73322e152edf50cf30a6edac342a757"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa73322e152edf50cf30a6edac342a757"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaa73322e152edf50cf30a6edac342a757">frustumZO</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gaa73322e152edf50cf30a6edac342a757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#gaa73322e152edf50cf30a6edac342a757">More...</a><br /></td></tr>
+<tr class="separator:gaa73322e152edf50cf30a6edac342a757"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga44fa38a18349450325cae2661bb115ca"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga44fa38a18349450325cae2661bb115ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga44fa38a18349450325cae2661bb115ca">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga44fa38a18349450325cae2661bb115ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.  <a href="a00814.html#ga44fa38a18349450325cae2661bb115ca">More...</a><br /></td></tr>
+<tr class="separator:ga44fa38a18349450325cae2661bb115ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga3201b30f5b3ea0f933246d87bfb992a9">infinitePerspectiveLH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00814.html#ga3201b30f5b3ea0f933246d87bfb992a9">More...</a><br /></td></tr>
+<tr class="separator:ga3201b30f5b3ea0f933246d87bfb992a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8034759052b6d0f27fcb9e6d94d81d00"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga8034759052b6d0f27fcb9e6d94d81d00"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga8034759052b6d0f27fcb9e6d94d81d00">infinitePerspectiveLH_NO</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga8034759052b6d0f27fcb9e6d94d81d00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00814.html#ga8034759052b6d0f27fcb9e6d94d81d00">More...</a><br /></td></tr>
+<tr class="separator:ga8034759052b6d0f27fcb9e6d94d81d00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac814a56c1b1120aab3d10c8e6e955a89"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac814a56c1b1120aab3d10c8e6e955a89"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gac814a56c1b1120aab3d10c8e6e955a89">infinitePerspectiveLH_ZO</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:gac814a56c1b1120aab3d10c8e6e955a89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00814.html#gac814a56c1b1120aab3d10c8e6e955a89">More...</a><br /></td></tr>
+<tr class="separator:gac814a56c1b1120aab3d10c8e6e955a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99672ffe5714ef478dab2437255fe7e1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga99672ffe5714ef478dab2437255fe7e1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga99672ffe5714ef478dab2437255fe7e1">infinitePerspectiveRH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga99672ffe5714ef478dab2437255fe7e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00814.html#ga99672ffe5714ef478dab2437255fe7e1">More...</a><br /></td></tr>
+<tr class="separator:ga99672ffe5714ef478dab2437255fe7e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf50823c0bed37d4f07891888f42a3a06"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf50823c0bed37d4f07891888f42a3a06"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaf50823c0bed37d4f07891888f42a3a06">infinitePerspectiveRH_NO</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:gaf50823c0bed37d4f07891888f42a3a06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00814.html#gaf50823c0bed37d4f07891888f42a3a06">More...</a><br /></td></tr>
+<tr class="separator:gaf50823c0bed37d4f07891888f42a3a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8ab661bde7995c977393c5e69cb9dae"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac8ab661bde7995c977393c5e69cb9dae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gac8ab661bde7995c977393c5e69cb9dae">infinitePerspectiveRH_ZO</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:gac8ab661bde7995c977393c5e69cb9dae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.  <a href="a00814.html#gac8ab661bde7995c977393c5e69cb9dae">More...</a><br /></td></tr>
+<tr class="separator:gac8ab661bde7995c977393c5e69cb9dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5b6b40ed882cd56cd7cb97701909c06"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae5b6b40ed882cd56cd7cb97701909c06"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gae5b6b40ed882cd56cd7cb97701909c06">ortho</a> (T left, T right, T bottom, T top)</td></tr>
+<tr class="memdesc:gae5b6b40ed882cd56cd7cb97701909c06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for projecting two-dimensional coordinates onto the screen.  <a href="a00814.html#gae5b6b40ed882cd56cd7cb97701909c06">More...</a><br /></td></tr>
+<tr class="separator:gae5b6b40ed882cd56cd7cb97701909c06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6615d8a9d39432e279c4575313ecb456"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6615d8a9d39432e279c4575313ecb456"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga6615d8a9d39432e279c4575313ecb456">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga6615d8a9d39432e279c4575313ecb456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition.  <a href="a00814.html#ga6615d8a9d39432e279c4575313ecb456">More...</a><br /></td></tr>
+<tr class="separator:ga6615d8a9d39432e279c4575313ecb456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad122a79aadaa5529cec4ac197203db7f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad122a79aadaa5529cec4ac197203db7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gad122a79aadaa5529cec4ac197203db7f">orthoLH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gad122a79aadaa5529cec4ac197203db7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.  <a href="a00814.html#gad122a79aadaa5529cec4ac197203db7f">More...</a><br /></td></tr>
+<tr class="separator:gad122a79aadaa5529cec4ac197203db7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga526416735ea7c5c5cd255bf99d051bd8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga526416735ea7c5c5cd255bf99d051bd8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga526416735ea7c5c5cd255bf99d051bd8">orthoLH_NO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga526416735ea7c5c5cd255bf99d051bd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume using left-handed coordinates.  <a href="a00814.html#ga526416735ea7c5c5cd255bf99d051bd8">More...</a><br /></td></tr>
+<tr class="separator:ga526416735ea7c5c5cd255bf99d051bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab37ac3eec8d61f22fceda7775e836afa"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab37ac3eec8d61f22fceda7775e836afa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gab37ac3eec8d61f22fceda7775e836afa">orthoLH_ZO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gab37ac3eec8d61f22fceda7775e836afa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.  <a href="a00814.html#gab37ac3eec8d61f22fceda7775e836afa">More...</a><br /></td></tr>
+<tr class="separator:gab37ac3eec8d61f22fceda7775e836afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab219d28a8f178d4517448fcd6395a073"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab219d28a8f178d4517448fcd6395a073"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gab219d28a8f178d4517448fcd6395a073">orthoNO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gab219d28a8f178d4517448fcd6395a073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#gab219d28a8f178d4517448fcd6395a073">More...</a><br /></td></tr>
+<tr class="separator:gab219d28a8f178d4517448fcd6395a073"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga16264c9b838edeb9dd1de7a1010a13a4">orthoRH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.  <a href="a00814.html#ga16264c9b838edeb9dd1de7a1010a13a4">More...</a><br /></td></tr>
+<tr class="separator:ga16264c9b838edeb9dd1de7a1010a13a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaa2f7a1373170bf0a4a2ddef9b0706780">orthoRH_NO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.  <a href="a00814.html#gaa2f7a1373170bf0a4a2ddef9b0706780">More...</a><br /></td></tr>
+<tr class="separator:gaa2f7a1373170bf0a4a2ddef9b0706780"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga9aea2e515b08fd7dce47b7b6ec34d588">orthoRH_ZO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.  <a href="a00814.html#ga9aea2e515b08fd7dce47b7b6ec34d588">More...</a><br /></td></tr>
+<tr class="separator:ga9aea2e515b08fd7dce47b7b6ec34d588"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea11a70817af2c0801c869dea0b7a5bc"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaea11a70817af2c0801c869dea0b7a5bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaea11a70817af2c0801c869dea0b7a5bc">orthoZO</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gaea11a70817af2c0801c869dea0b7a5bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.  <a href="a00814.html#gaea11a70817af2c0801c869dea0b7a5bc">More...</a><br /></td></tr>
+<tr class="separator:gaea11a70817af2c0801c869dea0b7a5bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga747c8cf99458663dd7ad1bb3a2f07787">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default near and far clip planes definition.  <a href="a00814.html#ga747c8cf99458663dd7ad1bb3a2f07787">More...</a><br /></td></tr>
+<tr class="separator:ga747c8cf99458663dd7ad1bb3a2f07787"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebd02240fd36e85ad754f02ddd9a560d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaebd02240fd36e85ad754f02ddd9a560d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaebd02240fd36e85ad754f02ddd9a560d">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gaebd02240fd36e85ad754f02ddd9a560d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition.  <a href="a00814.html#gaebd02240fd36e85ad754f02ddd9a560d">More...</a><br /></td></tr>
+<tr class="separator:gaebd02240fd36e85ad754f02ddd9a560d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga6aebe16c164bd8e52554cbe0304ef4aa">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a left-handed perspective projection matrix based on a field of view.  <a href="a00814.html#ga6aebe16c164bd8e52554cbe0304ef4aa">More...</a><br /></td></tr>
+<tr class="separator:ga6aebe16c164bd8e52554cbe0304ef4aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad18a4495b77530317327e8d466488c1a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad18a4495b77530317327e8d466488c1a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gad18a4495b77530317327e8d466488c1a">perspectiveFovLH_NO</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gad18a4495b77530317327e8d466488c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates.  <a href="a00814.html#gad18a4495b77530317327e8d466488c1a">More...</a><br /></td></tr>
+<tr class="separator:gad18a4495b77530317327e8d466488c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gabdd37014f529e25b2fa1b3ba06c10d5c">perspectiveFovLH_ZO</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates.  <a href="a00814.html#gabdd37014f529e25b2fa1b3ba06c10d5c">More...</a><br /></td></tr>
+<tr class="separator:gabdd37014f529e25b2fa1b3ba06c10d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf30e7bd3b1387a6776433dd5383e6633"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf30e7bd3b1387a6776433dd5383e6633"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaf30e7bd3b1387a6776433dd5383e6633">perspectiveFovNO</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gaf30e7bd3b1387a6776433dd5383e6633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#gaf30e7bd3b1387a6776433dd5383e6633">More...</a><br /></td></tr>
+<tr class="separator:gaf30e7bd3b1387a6776433dd5383e6633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf32bf563f28379c68554a44ee60c6a85"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf32bf563f28379c68554a44ee60c6a85"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaf32bf563f28379c68554a44ee60c6a85">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gaf32bf563f28379c68554a44ee60c6a85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a right-handed perspective projection matrix based on a field of view.  <a href="a00814.html#gaf32bf563f28379c68554a44ee60c6a85">More...</a><br /></td></tr>
+<tr class="separator:gaf32bf563f28379c68554a44ee60c6a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga257b733ff883c9a065801023cf243eb2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga257b733ff883c9a065801023cf243eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga257b733ff883c9a065801023cf243eb2">perspectiveFovRH_NO</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:ga257b733ff883c9a065801023cf243eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using right-handed coordinates.  <a href="a00814.html#ga257b733ff883c9a065801023cf243eb2">More...</a><br /></td></tr>
+<tr class="separator:ga257b733ff883c9a065801023cf243eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7dcbb25331676f5b0795aced1a905c44"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga7dcbb25331676f5b0795aced1a905c44"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga7dcbb25331676f5b0795aced1a905c44">perspectiveFovRH_ZO</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:ga7dcbb25331676f5b0795aced1a905c44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using right-handed coordinates.  <a href="a00814.html#ga7dcbb25331676f5b0795aced1a905c44">More...</a><br /></td></tr>
+<tr class="separator:ga7dcbb25331676f5b0795aced1a905c44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga4bc69fa1d1f95128430aa3d2a712390b">perspectiveFovZO</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#ga4bc69fa1d1f95128430aa3d2a712390b">More...</a><br /></td></tr>
+<tr class="separator:ga4bc69fa1d1f95128430aa3d2a712390b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum.  <a href="a00814.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">More...</a><br /></td></tr>
+<tr class="separator:ga9bd34951dc7022ac256fcb51d7f6fc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaead4d049d1feab463b700b5641aa590e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaead4d049d1feab463b700b5641aa590e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaead4d049d1feab463b700b5641aa590e">perspectiveLH_NO</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gaead4d049d1feab463b700b5641aa590e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum.  <a href="a00814.html#gaead4d049d1feab463b700b5641aa590e">More...</a><br /></td></tr>
+<tr class="separator:gaead4d049d1feab463b700b5641aa590e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca32af88c2719005c02817ad1142986c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaca32af88c2719005c02817ad1142986c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaca32af88c2719005c02817ad1142986c">perspectiveLH_ZO</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gaca32af88c2719005c02817ad1142986c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left-handed, symmetric perspective-view frustum.  <a href="a00814.html#gaca32af88c2719005c02817ad1142986c">More...</a><br /></td></tr>
+<tr class="separator:gaca32af88c2719005c02817ad1142986c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf497e6bca61e7c87088370b126a93758"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf497e6bca61e7c87088370b126a93758"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaf497e6bca61e7c87088370b126a93758">perspectiveNO</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gaf497e6bca61e7c87088370b126a93758"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#gaf497e6bca61e7c87088370b126a93758">More...</a><br /></td></tr>
+<tr class="separator:gaf497e6bca61e7c87088370b126a93758"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga26b88757fbd90601b80768a7e1ad3aa1">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum.  <a href="a00814.html#ga26b88757fbd90601b80768a7e1ad3aa1">More...</a><br /></td></tr>
+<tr class="separator:ga26b88757fbd90601b80768a7e1ad3aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1526cb2cbe796095284e8f34b01c582"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad1526cb2cbe796095284e8f34b01c582"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gad1526cb2cbe796095284e8f34b01c582">perspectiveRH_NO</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gad1526cb2cbe796095284e8f34b01c582"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum.  <a href="a00814.html#gad1526cb2cbe796095284e8f34b01c582">More...</a><br /></td></tr>
+<tr class="separator:gad1526cb2cbe796095284e8f34b01c582"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">perspectiveRH_ZO</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right-handed, symmetric perspective-view frustum.  <a href="a00814.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">More...</a><br /></td></tr>
+<tr class="separator:ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">perspectiveZO</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.  <a href="a00814.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">More...</a><br /></td></tr>
+<tr class="separator:gaa9dfba5c2322da54f72b1eb7c7c11b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.  <a href="a00814.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9">More...</a><br /></td></tr>
+<tr class="separator:gaaeacc04a2a6f4b18c5899d37e7bb3ef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00814.html#gaf5b3c85ff6737030a1d2214474ffa7a8">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
+<tr class="memdesc:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.  <a href="a00814.html#gaf5b3c85ff6737030a1d2214474ffa7a8">More...</a><br /></td></tr>
+<tr class="separator:gaf5b3c85ff6737030a1d2214474ffa7a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00806.html">GLM_EXT_matrix_common</a> </p>
+<div class="textblock"><p><a class="el" href="a00814.html">GLM_EXT_matrix_clip_space</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00092_source.html">matrix_common.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00092_source.html">matrix_clip_space.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 246 - 26
doc/api/a00092_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_common.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_clip_space.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,37 +67,257 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_common.hpp</div>  </div>
+<div class="title">matrix_clip_space.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00092.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;../detail/qualifier.hpp&quot;</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;../detail/_fixes.hpp&quot;</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#       pragma message(&quot;GLM: GLM_EXT_matrix_common extension included&quot;)</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;{</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;../ext/scalar_constants.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;../trigonometric.hpp&quot;</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        GLM_FUNC_DECL mat&lt;C, R, T, Q&gt; <a class="code" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; x, mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; y, mat&lt;C, R, U, Q&gt; <span class="keyword">const</span>&amp; a);</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        GLM_FUNC_DECL mat&lt;C, R, T, Q&gt; <a class="code" href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; x, mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; y, U a);</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">template</span> &lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;C, R, T, Q&gt; <a class="code" href="a00803.html#ga439e60a72eadecfeda2df5449c613a64">abs</a>(mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#       pragma message(&quot;GLM: GLM_EXT_matrix_clip_space extension included&quot;)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;{</div>
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;matrix_common.inl&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00814.html#gae5b6b40ed882cd56cd7cb97701909c06">   43</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga6615d8a9d39432e279c4575313ecb456">ortho</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                T left, T right, T bottom, T top);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00814.html#gab37ac3eec8d61f22fceda7775e836afa">   53</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gab37ac3eec8d61f22fceda7775e836afa">orthoLH_ZO</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00814.html#ga526416735ea7c5c5cd255bf99d051bd8">   63</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga526416735ea7c5c5cd255bf99d051bd8">orthoLH_NO</a>(</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00814.html#ga9aea2e515b08fd7dce47b7b6ec34d588">   73</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga9aea2e515b08fd7dce47b7b6ec34d588">orthoRH_ZO</a>(</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00814.html#gaa2f7a1373170bf0a4a2ddef9b0706780">   83</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaa2f7a1373170bf0a4a2ddef9b0706780">orthoRH_NO</a>(</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00814.html#gaea11a70817af2c0801c869dea0b7a5bc">   93</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaea11a70817af2c0801c869dea0b7a5bc">orthoZO</a>(</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00814.html#gab219d28a8f178d4517448fcd6395a073">  103</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gab219d28a8f178d4517448fcd6395a073">orthoNO</a>(</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00814.html#gad122a79aadaa5529cec4ac197203db7f">  114</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gad122a79aadaa5529cec4ac197203db7f">orthoLH</a>(</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00814.html#ga16264c9b838edeb9dd1de7a1010a13a4">  125</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga16264c9b838edeb9dd1de7a1010a13a4">orthoRH</a>(</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00814.html#ga6615d8a9d39432e279c4575313ecb456">  136</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga6615d8a9d39432e279c4575313ecb456">ortho</a>(</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                T left, T right, T bottom, T top, T zNear, T zFar);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="a00814.html#ga94218b094862d17798370242680b9030">  144</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga94218b094862d17798370242680b9030">frustumLH_ZO</a>(</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00814.html#ga259520cad03b3f8bca9417920035ed01">  152</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga259520cad03b3f8bca9417920035ed01">frustumLH_NO</a>(</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00814.html#ga7654a9227f14d5382786b9fc0eb5692d">  160</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga7654a9227f14d5382786b9fc0eb5692d">frustumRH_ZO</a>(</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00814.html#ga9236c8439f21be186b79c97b588836b9">  168</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga9236c8439f21be186b79c97b588836b9">frustumRH_NO</a>(</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00814.html#gaa73322e152edf50cf30a6edac342a757">  176</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaa73322e152edf50cf30a6edac342a757">frustumZO</a>(</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00814.html#gae34ec664ad44860bf4b5ba631f0e0e90">  184</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gae34ec664ad44860bf4b5ba631f0e0e90">frustumNO</a>(</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00814.html#gae4277c37f61d81da01bc9db14ea90296">  193</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gae4277c37f61d81da01bc9db14ea90296">frustumLH</a>(</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="a00814.html#ga4366ab45880c6c5f8b3e8c371ca4b136">  202</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga4366ab45880c6c5f8b3e8c371ca4b136">frustumRH</a>(</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00814.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">  211</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">frustum</a>(</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                T left, T right, T bottom, T top, T near, T far);</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00814.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">  225</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">perspectiveRH_ZO</a>(</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00814.html#gad1526cb2cbe796095284e8f34b01c582">  238</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gad1526cb2cbe796095284e8f34b01c582">perspectiveRH_NO</a>(</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00814.html#gaca32af88c2719005c02817ad1142986c">  251</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaca32af88c2719005c02817ad1142986c">perspectiveLH_ZO</a>(</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00814.html#gaead4d049d1feab463b700b5641aa590e">  264</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaead4d049d1feab463b700b5641aa590e">perspectiveLH_NO</a>(</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a00814.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">  277</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">perspectiveZO</a>(</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="a00814.html#gaf497e6bca61e7c87088370b126a93758">  290</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaf497e6bca61e7c87088370b126a93758">perspectiveNO</a>(</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00814.html#ga26b88757fbd90601b80768a7e1ad3aa1">  304</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga26b88757fbd90601b80768a7e1ad3aa1">perspectiveRH</a>(</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a00814.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">  318</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">perspectiveLH</a>(</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="a00814.html#ga747c8cf99458663dd7ad1bb3a2f07787">  332</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga747c8cf99458663dd7ad1bb3a2f07787">perspective</a>(</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                T fovy, T aspect, T near, T far);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160; </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="a00814.html#ga7dcbb25331676f5b0795aced1a905c44">  346</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga7dcbb25331676f5b0795aced1a905c44">perspectiveFovRH_ZO</a>(</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="a00814.html#ga257b733ff883c9a065801023cf243eb2">  360</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga257b733ff883c9a065801023cf243eb2">perspectiveFovRH_NO</a>(</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="a00814.html#gabdd37014f529e25b2fa1b3ba06c10d5c">  374</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gabdd37014f529e25b2fa1b3ba06c10d5c">perspectiveFovLH_ZO</a>(</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="a00814.html#gad18a4495b77530317327e8d466488c1a">  388</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gad18a4495b77530317327e8d466488c1a">perspectiveFovLH_NO</a>(</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="a00814.html#ga4bc69fa1d1f95128430aa3d2a712390b">  402</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga4bc69fa1d1f95128430aa3d2a712390b">perspectiveFovZO</a>(</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="a00814.html#gaf30e7bd3b1387a6776433dd5383e6633">  416</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaf30e7bd3b1387a6776433dd5383e6633">perspectiveFovNO</a>(</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="a00814.html#gaf32bf563f28379c68554a44ee60c6a85">  431</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaf32bf563f28379c68554a44ee60c6a85">perspectiveFovRH</a>(</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00814.html#ga6aebe16c164bd8e52554cbe0304ef4aa">  446</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga6aebe16c164bd8e52554cbe0304ef4aa">perspectiveFovLH</a>(</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="a00814.html#gaebd02240fd36e85ad754f02ddd9a560d">  460</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaebd02240fd36e85ad754f02ddd9a560d">perspectiveFov</a>(</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                T fov, T width, T height, T near, T far);</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="a00814.html#gac814a56c1b1120aab3d10c8e6e955a89">  472</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gac814a56c1b1120aab3d10c8e6e955a89">infinitePerspectiveLH_ZO</a>(</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160; </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="a00814.html#ga8034759052b6d0f27fcb9e6d94d81d00">  484</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga8034759052b6d0f27fcb9e6d94d81d00">infinitePerspectiveLH_NO</a>(</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="a00814.html#gac8ab661bde7995c977393c5e69cb9dae">  496</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gac8ab661bde7995c977393c5e69cb9dae">infinitePerspectiveRH_ZO</a>(</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="a00814.html#gaf50823c0bed37d4f07891888f42a3a06">  508</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaf50823c0bed37d4f07891888f42a3a06">infinitePerspectiveRH_NO</a>(</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="a00814.html#ga3201b30f5b3ea0f933246d87bfb992a9">  521</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga3201b30f5b3ea0f933246d87bfb992a9">infinitePerspectiveLH</a>(</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160; </div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="a00814.html#ga99672ffe5714ef478dab2437255fe7e1">  534</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga99672ffe5714ef478dab2437255fe7e1">infinitePerspectiveRH</a>(</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160; </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="a00814.html#ga44fa38a18349450325cae2661bb115ca">  547</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#ga44fa38a18349450325cae2661bb115ca">infinitePerspective</a>(</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160; </div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="a00814.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9">  558</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaf5b3c85ff6737030a1d2214474ffa7a8">tweakedInfinitePerspective</a>(</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;                T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160; </div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="a00814.html#gaf5b3c85ff6737030a1d2214474ffa7a8">  570</a></span>&#160;        GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00814.html#gaf5b3c85ff6737030a1d2214474ffa7a8">tweakedInfinitePerspective</a>(</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;                T fovy, T aspect, T near, T ep);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160; </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160; </div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="preprocessor">#include &quot;matrix_clip_space.inl&quot;</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00803_html_ga6b6e0c7ecb4a5b78f929566355bb7416"><div class="ttname"><a href="a00803.html#ga6b6e0c7ecb4a5b78f929566355bb7416">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="aa00803_html_ga439e60a72eadecfeda2df5449c613a64"><div class="ttname"><a href="a00803.html#ga439e60a72eadecfeda2df5449c613a64">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x)</div><div class="ttdoc">Returns x if x &gt;= 0; otherwise, it returns -x.</div></div>
+<div class="ttc" id="aa00814_html_ga4bc69fa1d1f95128430aa3d2a712390b"><div class="ttname"><a href="a00814.html#ga4bc69fa1d1f95128430aa3d2a712390b">glm::perspectiveFovZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovZO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...</div></div>
+<div class="ttc" id="aa00814_html_gac814a56c1b1120aab3d10c8e6e955a89"><div class="ttname"><a href="a00814.html#gac814a56c1b1120aab3d10c8e6e955a89">glm::infinitePerspectiveLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveLH_ZO(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
+<div class="ttc" id="aa00814_html_ga26b88757fbd90601b80768a7e1ad3aa1"><div class="ttname"><a href="a00814.html#ga26b88757fbd90601b80768a7e1ad3aa1">glm::perspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveRH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum.</div></div>
+<div class="ttc" id="aa00814_html_gae34ec664ad44860bf4b5ba631f0e0e90"><div class="ttname"><a href="a00814.html#gae34ec664ad44860bf4b5ba631f0e0e90">glm::frustumNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumNO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...</div></div>
+<div class="ttc" id="aa00814_html_gaa9dfba5c2322da54f72b1eb7c7c11b47"><div class="ttname"><a href="a00814.html#gaa9dfba5c2322da54f72b1eb7c7c11b47">glm::perspectiveZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveZO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_...</div></div>
+<div class="ttc" id="aa00814_html_gaf30e7bd3b1387a6776433dd5383e6633"><div class="ttname"><a href="a00814.html#gaf30e7bd3b1387a6776433dd5383e6633">glm::perspectiveFovNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovNO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...</div></div>
+<div class="ttc" id="aa00814_html_gad1526cb2cbe796095284e8f34b01c582"><div class="ttname"><a href="a00814.html#gad1526cb2cbe796095284e8f34b01c582">glm::perspectiveRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveRH_NO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum.</div></div>
+<div class="ttc" id="aa00814_html_ga747c8cf99458663dd7ad1bb3a2f07787"><div class="ttname"><a href="a00814.html#ga747c8cf99458663dd7ad1bb3a2f07787">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default...</div></div>
+<div class="ttc" id="aa00814_html_gabdd37014f529e25b2fa1b3ba06c10d5c"><div class="ttname"><a href="a00814.html#gabdd37014f529e25b2fa1b3ba06c10d5c">glm::perspectiveFovLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovLH_ZO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_gaf497e6bca61e7c87088370b126a93758"><div class="ttname"><a href="a00814.html#gaf497e6bca61e7c87088370b126a93758">glm::perspectiveNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveNO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_...</div></div>
+<div class="ttc" id="aa00814_html_gab37ac3eec8d61f22fceda7775e836afa"><div class="ttname"><a href="a00814.html#gab37ac3eec8d61f22fceda7775e836afa">glm::orthoLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoLH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_ga94218b094862d17798370242680b9030"><div class="ttname"><a href="a00814.html#ga94218b094862d17798370242680b9030">glm::frustumLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumLH_ZO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left-handed frustum matrix.</div></div>
+<div class="ttc" id="aa00814_html_ga6615d8a9d39432e279c4575313ecb456"><div class="ttname"><a href="a00814.html#ga6615d8a9d39432e279c4575313ecb456">glm::ortho</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; ortho(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using the default handedness and defaul...</div></div>
+<div class="ttc" id="aa00814_html_ga9bd34951dc7022ac256fcb51d7f6fc2f"><div class="ttname"><a href="a00814.html#ga9bd34951dc7022ac256fcb51d7f6fc2f">glm::perspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveLH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum.</div></div>
+<div class="ttc" id="aa00814_html_ga8034759052b6d0f27fcb9e6d94d81d00"><div class="ttname"><a href="a00814.html#ga8034759052b6d0f27fcb9e6d94d81d00">glm::infinitePerspectiveLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveLH_NO(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
+<div class="ttc" id="aa00814_html_ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a"><div class="ttname"><a href="a00814.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a">glm::perspectiveRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveRH_ZO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum.</div></div>
+<div class="ttc" id="aa00814_html_gaebd02240fd36e85ad754f02ddd9a560d"><div class="ttname"><a href="a00814.html#gaebd02240fd36e85ad754f02ddd9a560d">glm::perspectiveFov</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFov(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view and the default handedness and defaul...</div></div>
+<div class="ttc" id="aa00814_html_ga9aea2e515b08fd7dce47b7b6ec34d588"><div class="ttname"><a href="a00814.html#ga9aea2e515b08fd7dce47b7b6ec34d588">glm::orthoRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoRH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_gaa73322e152edf50cf30a6edac342a757"><div class="ttname"><a href="a00814.html#gaa73322e152edf50cf30a6edac342a757">glm::frustumZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumZO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...</div></div>
+<div class="ttc" id="aa00814_html_ga6aebe16c164bd8e52554cbe0304ef4aa"><div class="ttname"><a href="a00814.html#ga6aebe16c164bd8e52554cbe0304ef4aa">glm::perspectiveFovLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovLH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a left-handed perspective projection matrix based on a field of view.</div></div>
+<div class="ttc" id="aa00814_html_ga99672ffe5714ef478dab2437255fe7e1"><div class="ttname"><a href="a00814.html#ga99672ffe5714ef478dab2437255fe7e1">glm::infinitePerspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveRH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
+<div class="ttc" id="aa00814_html_gad122a79aadaa5529cec4ac197203db7f"><div class="ttname"><a href="a00814.html#gad122a79aadaa5529cec4ac197203db7f">glm::orthoLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_gae4277c37f61d81da01bc9db14ea90296"><div class="ttname"><a href="a00814.html#gae4277c37f61d81da01bc9db14ea90296">glm::frustumLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumLH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left-handed frustum matrix.</div></div>
+<div class="ttc" id="aa00814_html_ga44fa38a18349450325cae2661bb115ca"><div class="ttname"><a href="a00814.html#ga44fa38a18349450325cae2661bb115ca">glm::infinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspective(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...</div></div>
+<div class="ttc" id="aa00814_html_ga257b733ff883c9a065801023cf243eb2"><div class="ttname"><a href="a00814.html#ga257b733ff883c9a065801023cf243eb2">glm::perspectiveFovRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovRH_NO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using right-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_ga9236c8439f21be186b79c97b588836b9"><div class="ttname"><a href="a00814.html#ga9236c8439f21be186b79c97b588836b9">glm::frustumRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumRH_NO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right-handed frustum matrix.</div></div>
+<div class="ttc" id="aa00814_html_gac8ab661bde7995c977393c5e69cb9dae"><div class="ttname"><a href="a00814.html#gac8ab661bde7995c977393c5e69cb9dae">glm::infinitePerspectiveRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveRH_ZO(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
+<div class="ttc" id="aa00814_html_ga3201b30f5b3ea0f933246d87bfb992a9"><div class="ttname"><a href="a00814.html#ga3201b30f5b3ea0f933246d87bfb992a9">glm::infinitePerspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveLH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
+<div class="ttc" id="aa00814_html_gaead4d049d1feab463b700b5641aa590e"><div class="ttname"><a href="a00814.html#gaead4d049d1feab463b700b5641aa590e">glm::perspectiveLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveLH_NO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum.</div></div>
+<div class="ttc" id="aa00814_html_ga16264c9b838edeb9dd1de7a1010a13a4"><div class="ttname"><a href="a00814.html#ga16264c9b838edeb9dd1de7a1010a13a4">glm::orthoRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_gab219d28a8f178d4517448fcd6395a073"><div class="ttname"><a href="a00814.html#gab219d28a8f178d4517448fcd6395a073">glm::orthoNO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoNO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FO...</div></div>
+<div class="ttc" id="aa00814_html_gaca32af88c2719005c02817ad1142986c"><div class="ttname"><a href="a00814.html#gaca32af88c2719005c02817ad1142986c">glm::perspectiveLH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveLH_ZO(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left-handed, symmetric perspective-view frustum.</div></div>
+<div class="ttc" id="aa00814_html_ga7dcbb25331676f5b0795aced1a905c44"><div class="ttname"><a href="a00814.html#ga7dcbb25331676f5b0795aced1a905c44">glm::perspectiveFovRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovRH_ZO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using right-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_gaf32bf563f28379c68554a44ee60c6a85"><div class="ttname"><a href="a00814.html#gaf32bf563f28379c68554a44ee60c6a85">glm::perspectiveFovRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovRH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a right-handed perspective projection matrix based on a field of view.</div></div>
+<div class="ttc" id="aa00814_html_ga259520cad03b3f8bca9417920035ed01"><div class="ttname"><a href="a00814.html#ga259520cad03b3f8bca9417920035ed01">glm::frustumLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumLH_NO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left-handed frustum matrix.</div></div>
+<div class="ttc" id="aa00814_html_ga0bcd4542e0affc63a0b8c08fcb839ea9"><div class="ttname"><a href="a00814.html#ga0bcd4542e0affc63a0b8c08fcb839ea9">glm::frustum</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustum(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix with default handedness, using the default handedness and default near and f...</div></div>
+<div class="ttc" id="aa00814_html_gaea11a70817af2c0801c869dea0b7a5bc"><div class="ttname"><a href="a00814.html#gaea11a70817af2c0801c869dea0b7a5bc">glm::orthoZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoZO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_ga4366ab45880c6c5f8b3e8c371ca4b136"><div class="ttname"><a href="a00814.html#ga4366ab45880c6c5f8b3e8c371ca4b136">glm::frustumRH</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumRH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right-handed frustum matrix.</div></div>
+<div class="ttc" id="aa00814_html_gad18a4495b77530317327e8d466488c1a"><div class="ttname"><a href="a00814.html#gad18a4495b77530317327e8d466488c1a">glm::perspectiveFovLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; perspectiveFovLH_NO(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view using left-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_gaf50823c0bed37d4f07891888f42a3a06"><div class="ttname"><a href="a00814.html#gaf50823c0bed37d4f07891888f42a3a06">glm::infinitePerspectiveRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; infinitePerspectiveRH_NO(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.</div></div>
+<div class="ttc" id="aa00814_html_gaf5b3c85ff6737030a1d2214474ffa7a8"><div class="ttname"><a href="a00814.html#gaf5b3c85ff6737030a1d2214474ffa7a8">glm::tweakedInfinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...</div></div>
+<div class="ttc" id="aa00814_html_gaa2f7a1373170bf0a4a2ddef9b0706780"><div class="ttname"><a href="a00814.html#gaa2f7a1373170bf0a4a2ddef9b0706780">glm::orthoRH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoRH_NO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_ga526416735ea7c5c5cd255bf99d051bd8"><div class="ttname"><a href="a00814.html#ga526416735ea7c5c5cd255bf99d051bd8">glm::orthoLH_NO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; orthoLH_NO(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume using left-handed coordinates.</div></div>
+<div class="ttc" id="aa00814_html_ga7654a9227f14d5382786b9fc0eb5692d"><div class="ttname"><a href="a00814.html#ga7654a9227f14d5382786b9fc0eb5692d">glm::frustumRH_ZO</a></div><div class="ttdeci">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt; frustumRH_ZO(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right-handed frustum matrix.</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 6 - 18
doc/api/a00095.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x2.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_common.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -66,31 +66,19 @@ $(function() {
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="summary">
-<a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double2x2.hpp File Reference</div>  </div>
+<div class="title">matrix_common.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00815.html">GLM_EXT_matrix_common</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00095_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga21dbd1f987775d7cc7607c139531c7e6"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga21dbd1f987775d7cc7607c139531c7e6">dmat2</a></td></tr>
-<tr class="memdesc:ga21dbd1f987775d7cc7607c139531c7e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga21dbd1f987775d7cc7607c139531c7e6">More...</a><br /></td></tr>
-<tr class="separator:ga21dbd1f987775d7cc7607c139531c7e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga66b6a9af787e468a46dfe24189e87f9b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga66b6a9af787e468a46dfe24189e87f9b">dmat2x2</a></td></tr>
-<tr class="memdesc:ga66b6a9af787e468a46dfe24189e87f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga66b6a9af787e468a46dfe24189e87f9b">More...</a><br /></td></tr>
-<tr class="separator:ga66b6a9af787e468a46dfe24189e87f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00815.html">GLM_EXT_matrix_common</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00095_source.html">matrix_double2x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00095_source.html">matrix_common.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 28 - 15
doc/api/a00095_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x2.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_common.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,24 +67,37 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double2x2.hpp</div>  </div>
+<div class="title">matrix_common.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00095.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga66b6a9af787e468a46dfe24189e87f9b">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, defaultp&gt;             <a class="code" href="a00892.html#ga66b6a9af787e468a46dfe24189e87f9b">dmat2x2</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00892.html#ga21dbd1f987775d7cc7607c139531c7e6">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, defaultp&gt;             <a class="code" href="a00892.html#ga21dbd1f987775d7cc7607c139531c7e6">dmat2</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;../detail/qualifier.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;../detail/_fixes.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#       pragma message(&quot;GLM: GLM_EXT_matrix_common extension included&quot;)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span>glm</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        GLM_FUNC_DECL mat&lt;C, R, T, Q&gt; <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; x, mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; y, mat&lt;C, R, U, Q&gt; <span class="keyword">const</span>&amp; a);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keyword">template</span>&lt;length_t C, length_t R, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        GLM_FUNC_DECL mat&lt;C, R, T, Q&gt; <a class="code" href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">mix</a>(mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; x, mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; y, U a);</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">template</span> &lt;length_t C, length_t R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        GLM_FUNC_DECL GLM_CONSTEXPR mat&lt;C, R, T, Q&gt; <a class="code" href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">abs</a>(mat&lt;C, R, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;matrix_common.inl&quot;</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga66b6a9af787e468a46dfe24189e87f9b"><div class="ttname"><a href="a00892.html#ga66b6a9af787e468a46dfe24189e87f9b">glm::dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, defaultp &gt; dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00015">matrix_double2x2.hpp:15</a></div></div>
-<div class="ttc" id="aa00892_html_ga21dbd1f987775d7cc7607c139531c7e6"><div class="ttname"><a href="a00892.html#ga21dbd1f987775d7cc7607c139531c7e6">glm::dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, defaultp &gt; dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00020">matrix_double2x2.hpp:20</a></div></div>
+<div class="ttc" id="aa00812_html_ga439e60a72eadecfeda2df5449c613a64"><div class="ttname"><a href="a00812.html#ga439e60a72eadecfeda2df5449c613a64">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x)</div><div class="ttdoc">Returns x if x &gt;= 0; otherwise, it returns -x.</div></div>
+<div class="ttc" id="aa00812_html_ga6b6e0c7ecb4a5b78f929566355bb7416"><div class="ttname"><a href="a00812.html#ga6b6e0c7ecb4a5b78f929566355bb7416">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 12 - 24
doc/api/a00098.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x2_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double2x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,40 +69,28 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double2x2_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double2x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00098_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga369b447bb1b312449b679ea1f90f3cea"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga369b447bb1b312449b679ea1f90f3cea">highp_dmat2</a></td></tr>
-<tr class="memdesc:ga369b447bb1b312449b679ea1f90f3cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga369b447bb1b312449b679ea1f90f3cea">More...</a><br /></td></tr>
-<tr class="separator:ga369b447bb1b312449b679ea1f90f3cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae27ac20302c2e39b6c78e7fe18e62ef7"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gae27ac20302c2e39b6c78e7fe18e62ef7">highp_dmat2x2</a></td></tr>
-<tr class="memdesc:gae27ac20302c2e39b6c78e7fe18e62ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gae27ac20302c2e39b6c78e7fe18e62ef7">More...</a><br /></td></tr>
-<tr class="separator:gae27ac20302c2e39b6c78e7fe18e62ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad8e2727a6e7aa68280245bb0022118e1"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gad8e2727a6e7aa68280245bb0022118e1">lowp_dmat2</a></td></tr>
-<tr class="memdesc:gad8e2727a6e7aa68280245bb0022118e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gad8e2727a6e7aa68280245bb0022118e1">More...</a><br /></td></tr>
-<tr class="separator:gad8e2727a6e7aa68280245bb0022118e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac61b94f5d9775f83f321bac899322fe2"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gac61b94f5d9775f83f321bac899322fe2">lowp_dmat2x2</a></td></tr>
-<tr class="memdesc:gac61b94f5d9775f83f321bac899322fe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gac61b94f5d9775f83f321bac899322fe2">More...</a><br /></td></tr>
-<tr class="separator:gac61b94f5d9775f83f321bac899322fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6205fd19be355600334edef6af0b27cb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga6205fd19be355600334edef6af0b27cb">mediump_dmat2</a></td></tr>
-<tr class="memdesc:ga6205fd19be355600334edef6af0b27cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga6205fd19be355600334edef6af0b27cb">More...</a><br /></td></tr>
-<tr class="separator:ga6205fd19be355600334edef6af0b27cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51dc36a7719cb458fa5114831c20d64f"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga51dc36a7719cb458fa5114831c20d64f">mediump_dmat2x2</a></td></tr>
-<tr class="memdesc:ga51dc36a7719cb458fa5114831c20d64f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga51dc36a7719cb458fa5114831c20d64f">More...</a><br /></td></tr>
-<tr class="separator:ga51dc36a7719cb458fa5114831c20d64f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21dbd1f987775d7cc7607c139531c7e6"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga21dbd1f987775d7cc7607c139531c7e6">dmat2</a></td></tr>
+<tr class="memdesc:ga21dbd1f987775d7cc7607c139531c7e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga21dbd1f987775d7cc7607c139531c7e6">More...</a><br /></td></tr>
+<tr class="separator:ga21dbd1f987775d7cc7607c139531c7e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga66b6a9af787e468a46dfe24189e87f9b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga66b6a9af787e468a46dfe24189e87f9b">dmat2x2</a></td></tr>
+<tr class="memdesc:ga66b6a9af787e468a46dfe24189e87f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga66b6a9af787e468a46dfe24189e87f9b">More...</a><br /></td></tr>
+<tr class="separator:ga66b6a9af787e468a46dfe24189e87f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00098_source.html">matrix_double2x2_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00098_source.html">matrix_double2x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 10 - 22
doc/api/a00098_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x2_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double2x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double2x2_precision.hpp</div>  </div>
+<div class="title">matrix_double2x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00098.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,26 +77,14 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#gad8e2727a6e7aa68280245bb0022118e1">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, lowp&gt;         <a class="code" href="a00893.html#gad8e2727a6e7aa68280245bb0022118e1">lowp_dmat2</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga6205fd19be355600334edef6af0b27cb">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, mediump&gt;      <a class="code" href="a00893.html#ga6205fd19be355600334edef6af0b27cb">mediump_dmat2</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga369b447bb1b312449b679ea1f90f3cea">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, highp&gt;        <a class="code" href="a00893.html#ga369b447bb1b312449b679ea1f90f3cea">highp_dmat2</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00893.html#gac61b94f5d9775f83f321bac899322fe2">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, lowp&gt;         <a class="code" href="a00893.html#gac61b94f5d9775f83f321bac899322fe2">lowp_dmat2x2</a>;</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00893.html#ga51dc36a7719cb458fa5114831c20d64f">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, mediump&gt;      <a class="code" href="a00893.html#ga51dc36a7719cb458fa5114831c20d64f">mediump_dmat2x2</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00893.html#gae27ac20302c2e39b6c78e7fe18e62ef7">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, highp&gt;        <a class="code" href="a00893.html#gae27ac20302c2e39b6c78e7fe18e62ef7">highp_dmat2x2</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga66b6a9af787e468a46dfe24189e87f9b">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, defaultp&gt;             <a class="code" href="a00901.html#ga66b6a9af787e468a46dfe24189e87f9b">dmat2x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00901.html#ga21dbd1f987775d7cc7607c139531c7e6">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, defaultp&gt;             <a class="code" href="a00901.html#ga21dbd1f987775d7cc7607c139531c7e6">dmat2</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga6205fd19be355600334edef6af0b27cb"><div class="ttname"><a href="a00893.html#ga6205fd19be355600334edef6af0b27cb">glm::mediump_dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, mediump &gt; mediump_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00022">matrix_double2x2_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_gae27ac20302c2e39b6c78e7fe18e62ef7"><div class="ttname"><a href="a00893.html#gae27ac20302c2e39b6c78e7fe18e62ef7">glm::highp_dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, highp &gt; highp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00046">matrix_double2x2_precision.hpp:46</a></div></div>
-<div class="ttc" id="aa00893_html_gac61b94f5d9775f83f321bac899322fe2"><div class="ttname"><a href="a00893.html#gac61b94f5d9775f83f321bac899322fe2">glm::lowp_dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, lowp &gt; lowp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00034">matrix_double2x2_precision.hpp:34</a></div></div>
-<div class="ttc" id="aa00893_html_gad8e2727a6e7aa68280245bb0022118e1"><div class="ttname"><a href="a00893.html#gad8e2727a6e7aa68280245bb0022118e1">glm::lowp_dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, lowp &gt; lowp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00016">matrix_double2x2_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_ga51dc36a7719cb458fa5114831c20d64f"><div class="ttname"><a href="a00893.html#ga51dc36a7719cb458fa5114831c20d64f">glm::mediump_dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, mediump &gt; mediump_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00040">matrix_double2x2_precision.hpp:40</a></div></div>
-<div class="ttc" id="aa00893_html_ga369b447bb1b312449b679ea1f90f3cea"><div class="ttname"><a href="a00893.html#ga369b447bb1b312449b679ea1f90f3cea">glm::highp_dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, highp &gt; highp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00028">matrix_double2x2_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00901_html_ga66b6a9af787e468a46dfe24189e87f9b"><div class="ttname"><a href="a00901.html#ga66b6a9af787e468a46dfe24189e87f9b">glm::dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, defaultp &gt; dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00015">matrix_double2x2.hpp:15</a></div></div>
+<div class="ttc" id="aa00901_html_ga21dbd1f987775d7cc7607c139531c7e6"><div class="ttname"><a href="a00901.html#ga21dbd1f987775d7cc7607c139531c7e6">glm::dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, defaultp &gt; dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00020">matrix_double2x2.hpp:20</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 24 - 9
doc/api/a00101.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x3.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double2x2_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,40 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double2x3.hpp File Reference</div>  </div>
+<div class="title">matrix_double2x2_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00101_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga92cd388753d48e20de69ea2dbedf826a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga92cd388753d48e20de69ea2dbedf826a">dmat2x3</a></td></tr>
-<tr class="memdesc:ga92cd388753d48e20de69ea2dbedf826a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga92cd388753d48e20de69ea2dbedf826a">More...</a><br /></td></tr>
-<tr class="separator:ga92cd388753d48e20de69ea2dbedf826a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga369b447bb1b312449b679ea1f90f3cea"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga369b447bb1b312449b679ea1f90f3cea">highp_dmat2</a></td></tr>
+<tr class="memdesc:ga369b447bb1b312449b679ea1f90f3cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga369b447bb1b312449b679ea1f90f3cea">More...</a><br /></td></tr>
+<tr class="separator:ga369b447bb1b312449b679ea1f90f3cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae27ac20302c2e39b6c78e7fe18e62ef7"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gae27ac20302c2e39b6c78e7fe18e62ef7">highp_dmat2x2</a></td></tr>
+<tr class="memdesc:gae27ac20302c2e39b6c78e7fe18e62ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gae27ac20302c2e39b6c78e7fe18e62ef7">More...</a><br /></td></tr>
+<tr class="separator:gae27ac20302c2e39b6c78e7fe18e62ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad8e2727a6e7aa68280245bb0022118e1"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gad8e2727a6e7aa68280245bb0022118e1">lowp_dmat2</a></td></tr>
+<tr class="memdesc:gad8e2727a6e7aa68280245bb0022118e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#gad8e2727a6e7aa68280245bb0022118e1">More...</a><br /></td></tr>
+<tr class="separator:gad8e2727a6e7aa68280245bb0022118e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac61b94f5d9775f83f321bac899322fe2"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gac61b94f5d9775f83f321bac899322fe2">lowp_dmat2x2</a></td></tr>
+<tr class="memdesc:gac61b94f5d9775f83f321bac899322fe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#gac61b94f5d9775f83f321bac899322fe2">More...</a><br /></td></tr>
+<tr class="separator:gac61b94f5d9775f83f321bac899322fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6205fd19be355600334edef6af0b27cb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga6205fd19be355600334edef6af0b27cb">mediump_dmat2</a></td></tr>
+<tr class="memdesc:ga6205fd19be355600334edef6af0b27cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga6205fd19be355600334edef6af0b27cb">More...</a><br /></td></tr>
+<tr class="separator:ga6205fd19be355600334edef6af0b27cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51dc36a7719cb458fa5114831c20d64f"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga51dc36a7719cb458fa5114831c20d64f">mediump_dmat2x2</a></td></tr>
+<tr class="memdesc:ga51dc36a7719cb458fa5114831c20d64f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga51dc36a7719cb458fa5114831c20d64f">More...</a><br /></td></tr>
+<tr class="separator:ga51dc36a7719cb458fa5114831c20d64f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00101_source.html">matrix_double2x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00101_source.html">matrix_double2x2_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 23 - 8
doc/api/a00101_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x3.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double2x2_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,36 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double2x3.hpp</div>  </div>
+<div class="title">matrix_double2x2_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00101.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x2.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga92cd388753d48e20de69ea2dbedf826a">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, defaultp&gt;             <a class="code" href="a00892.html#ga92cd388753d48e20de69ea2dbedf826a">dmat2x3</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#gad8e2727a6e7aa68280245bb0022118e1">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, lowp&gt;         <a class="code" href="a00902.html#gad8e2727a6e7aa68280245bb0022118e1">lowp_dmat2</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga6205fd19be355600334edef6af0b27cb">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, mediump&gt;      <a class="code" href="a00902.html#ga6205fd19be355600334edef6af0b27cb">mediump_dmat2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga369b447bb1b312449b679ea1f90f3cea">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, highp&gt;        <a class="code" href="a00902.html#ga369b447bb1b312449b679ea1f90f3cea">highp_dmat2</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00902.html#gac61b94f5d9775f83f321bac899322fe2">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, lowp&gt;         <a class="code" href="a00902.html#gac61b94f5d9775f83f321bac899322fe2">lowp_dmat2x2</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00902.html#ga51dc36a7719cb458fa5114831c20d64f">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, mediump&gt;      <a class="code" href="a00902.html#ga51dc36a7719cb458fa5114831c20d64f">mediump_dmat2x2</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00902.html#gae27ac20302c2e39b6c78e7fe18e62ef7">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, double, highp&gt;        <a class="code" href="a00902.html#gae27ac20302c2e39b6c78e7fe18e62ef7">highp_dmat2x2</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga92cd388753d48e20de69ea2dbedf826a"><div class="ttname"><a href="a00892.html#ga92cd388753d48e20de69ea2dbedf826a">glm::dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, defaultp &gt; dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00015">matrix_double2x3.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_gae27ac20302c2e39b6c78e7fe18e62ef7"><div class="ttname"><a href="a00902.html#gae27ac20302c2e39b6c78e7fe18e62ef7">glm::highp_dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, highp &gt; highp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00046">matrix_double2x2_precision.hpp:46</a></div></div>
+<div class="ttc" id="aa00902_html_gad8e2727a6e7aa68280245bb0022118e1"><div class="ttname"><a href="a00902.html#gad8e2727a6e7aa68280245bb0022118e1">glm::lowp_dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, lowp &gt; lowp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00016">matrix_double2x2_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_ga369b447bb1b312449b679ea1f90f3cea"><div class="ttname"><a href="a00902.html#ga369b447bb1b312449b679ea1f90f3cea">glm::highp_dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, highp &gt; highp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00028">matrix_double2x2_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga6205fd19be355600334edef6af0b27cb"><div class="ttname"><a href="a00902.html#ga6205fd19be355600334edef6af0b27cb">glm::mediump_dmat2</a></div><div class="ttdeci">mat&lt; 2, 2, double, mediump &gt; mediump_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00022">matrix_double2x2_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_gac61b94f5d9775f83f321bac899322fe2"><div class="ttname"><a href="a00902.html#gac61b94f5d9775f83f321bac899322fe2">glm::lowp_dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, lowp &gt; lowp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00034">matrix_double2x2_precision.hpp:34</a></div></div>
+<div class="ttc" id="aa00902_html_ga51dc36a7719cb458fa5114831c20d64f"><div class="ttname"><a href="a00902.html#ga51dc36a7719cb458fa5114831c20d64f">glm::mediump_dmat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, mediump &gt; mediump_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00040">matrix_double2x2_precision.hpp:40</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00104.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x3_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double2x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double2x3_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double2x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00104_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:gad4689ec33bc2c26e10132b174b49001a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gad4689ec33bc2c26e10132b174b49001a">highp_dmat2x3</a></td></tr>
-<tr class="memdesc:gad4689ec33bc2c26e10132b174b49001a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gad4689ec33bc2c26e10132b174b49001a">More...</a><br /></td></tr>
-<tr class="separator:gad4689ec33bc2c26e10132b174b49001a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf6bf2f5bde7ad5b9c289f777b93094af"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gaf6bf2f5bde7ad5b9c289f777b93094af">lowp_dmat2x3</a></td></tr>
-<tr class="memdesc:gaf6bf2f5bde7ad5b9c289f777b93094af"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gaf6bf2f5bde7ad5b9c289f777b93094af">More...</a><br /></td></tr>
-<tr class="separator:gaf6bf2f5bde7ad5b9c289f777b93094af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga741e05adf1f12d5d913f67088db1009a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga741e05adf1f12d5d913f67088db1009a">mediump_dmat2x3</a></td></tr>
-<tr class="memdesc:ga741e05adf1f12d5d913f67088db1009a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga741e05adf1f12d5d913f67088db1009a">More...</a><br /></td></tr>
-<tr class="separator:ga741e05adf1f12d5d913f67088db1009a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92cd388753d48e20de69ea2dbedf826a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga92cd388753d48e20de69ea2dbedf826a">dmat2x3</a></td></tr>
+<tr class="memdesc:ga92cd388753d48e20de69ea2dbedf826a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga92cd388753d48e20de69ea2dbedf826a">More...</a><br /></td></tr>
+<tr class="separator:ga92cd388753d48e20de69ea2dbedf826a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00104_source.html">matrix_double2x3_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00104_source.html">matrix_double2x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00104_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x3_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double2x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double2x3_precision.hpp</div>  </div>
+<div class="title">matrix_double2x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00104.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#gaf6bf2f5bde7ad5b9c289f777b93094af">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, lowp&gt;         <a class="code" href="a00893.html#gaf6bf2f5bde7ad5b9c289f777b93094af">lowp_dmat2x3</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga741e05adf1f12d5d913f67088db1009a">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, mediump&gt;      <a class="code" href="a00893.html#ga741e05adf1f12d5d913f67088db1009a">mediump_dmat2x3</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#gad4689ec33bc2c26e10132b174b49001a">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, highp&gt;        <a class="code" href="a00893.html#gad4689ec33bc2c26e10132b174b49001a">highp_dmat2x3</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga92cd388753d48e20de69ea2dbedf826a">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, defaultp&gt;             <a class="code" href="a00901.html#ga92cd388753d48e20de69ea2dbedf826a">dmat2x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_gaf6bf2f5bde7ad5b9c289f777b93094af"><div class="ttname"><a href="a00893.html#gaf6bf2f5bde7ad5b9c289f777b93094af">glm::lowp_dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, lowp &gt; lowp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00016">matrix_double2x3_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_gad4689ec33bc2c26e10132b174b49001a"><div class="ttname"><a href="a00893.html#gad4689ec33bc2c26e10132b174b49001a">glm::highp_dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, highp &gt; highp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00028">matrix_double2x3_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga741e05adf1f12d5d913f67088db1009a"><div class="ttname"><a href="a00893.html#ga741e05adf1f12d5d913f67088db1009a">glm::mediump_dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, mediump &gt; mediump_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00022">matrix_double2x3_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00901_html_ga92cd388753d48e20de69ea2dbedf826a"><div class="ttname"><a href="a00901.html#ga92cd388753d48e20de69ea2dbedf826a">glm::dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, defaultp &gt; dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00015">matrix_double2x3.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 9
doc/api/a00107.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x4.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double2x3_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double2x4.hpp File Reference</div>  </div>
+<div class="title">matrix_double2x3_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00107_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:gaef2198807e937072803ae0ae45e1965e"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#gaef2198807e937072803ae0ae45e1965e">dmat2x4</a></td></tr>
-<tr class="memdesc:gaef2198807e937072803ae0ae45e1965e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00892.html#gaef2198807e937072803ae0ae45e1965e">More...</a><br /></td></tr>
-<tr class="separator:gaef2198807e937072803ae0ae45e1965e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4689ec33bc2c26e10132b174b49001a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gad4689ec33bc2c26e10132b174b49001a">highp_dmat2x3</a></td></tr>
+<tr class="memdesc:gad4689ec33bc2c26e10132b174b49001a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gad4689ec33bc2c26e10132b174b49001a">More...</a><br /></td></tr>
+<tr class="separator:gad4689ec33bc2c26e10132b174b49001a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf6bf2f5bde7ad5b9c289f777b93094af"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gaf6bf2f5bde7ad5b9c289f777b93094af">lowp_dmat2x3</a></td></tr>
+<tr class="memdesc:gaf6bf2f5bde7ad5b9c289f777b93094af"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#gaf6bf2f5bde7ad5b9c289f777b93094af">More...</a><br /></td></tr>
+<tr class="separator:gaf6bf2f5bde7ad5b9c289f777b93094af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga741e05adf1f12d5d913f67088db1009a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga741e05adf1f12d5d913f67088db1009a">mediump_dmat2x3</a></td></tr>
+<tr class="memdesc:ga741e05adf1f12d5d913f67088db1009a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga741e05adf1f12d5d913f67088db1009a">More...</a><br /></td></tr>
+<tr class="separator:ga741e05adf1f12d5d913f67088db1009a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00107_source.html">matrix_double2x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00107_source.html">matrix_double2x3_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 8
doc/api/a00107_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x4.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double2x3_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double2x4.hpp</div>  </div>
+<div class="title">matrix_double2x3_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00107.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x3.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#gaef2198807e937072803ae0ae45e1965e">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, defaultp&gt;             <a class="code" href="a00892.html#gaef2198807e937072803ae0ae45e1965e">dmat2x4</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#gaf6bf2f5bde7ad5b9c289f777b93094af">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, lowp&gt;         <a class="code" href="a00902.html#gaf6bf2f5bde7ad5b9c289f777b93094af">lowp_dmat2x3</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga741e05adf1f12d5d913f67088db1009a">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, mediump&gt;      <a class="code" href="a00902.html#ga741e05adf1f12d5d913f67088db1009a">mediump_dmat2x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#gad4689ec33bc2c26e10132b174b49001a">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, double, highp&gt;        <a class="code" href="a00902.html#gad4689ec33bc2c26e10132b174b49001a">highp_dmat2x3</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_gaef2198807e937072803ae0ae45e1965e"><div class="ttname"><a href="a00892.html#gaef2198807e937072803ae0ae45e1965e">glm::dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, defaultp &gt; dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00107_source.html#l00015">matrix_double2x4.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_gaf6bf2f5bde7ad5b9c289f777b93094af"><div class="ttname"><a href="a00902.html#gaf6bf2f5bde7ad5b9c289f777b93094af">glm::lowp_dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, lowp &gt; lowp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00107_source.html#l00016">matrix_double2x3_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_gad4689ec33bc2c26e10132b174b49001a"><div class="ttname"><a href="a00902.html#gad4689ec33bc2c26e10132b174b49001a">glm::highp_dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, highp &gt; highp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00107_source.html#l00028">matrix_double2x3_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga741e05adf1f12d5d913f67088db1009a"><div class="ttname"><a href="a00902.html#ga741e05adf1f12d5d913f67088db1009a">glm::mediump_dmat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, mediump &gt; mediump_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00107_source.html#l00022">matrix_double2x3_precision.hpp:22</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00110.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x4_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double2x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double2x4_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double2x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00110_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga5ceeb46670fdc000a0701910cc5061c9"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga5ceeb46670fdc000a0701910cc5061c9">highp_dmat2x4</a></td></tr>
-<tr class="memdesc:ga5ceeb46670fdc000a0701910cc5061c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga5ceeb46670fdc000a0701910cc5061c9">More...</a><br /></td></tr>
-<tr class="separator:ga5ceeb46670fdc000a0701910cc5061c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga97507a31ecee8609887d0f23bbde92c7"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga97507a31ecee8609887d0f23bbde92c7">lowp_dmat2x4</a></td></tr>
-<tr class="memdesc:ga97507a31ecee8609887d0f23bbde92c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga97507a31ecee8609887d0f23bbde92c7">More...</a><br /></td></tr>
-<tr class="separator:ga97507a31ecee8609887d0f23bbde92c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga685bda24922d112786af385deb4deb43"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga685bda24922d112786af385deb4deb43">mediump_dmat2x4</a></td></tr>
-<tr class="memdesc:ga685bda24922d112786af385deb4deb43"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga685bda24922d112786af385deb4deb43">More...</a><br /></td></tr>
-<tr class="separator:ga685bda24922d112786af385deb4deb43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef2198807e937072803ae0ae45e1965e"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#gaef2198807e937072803ae0ae45e1965e">dmat2x4</a></td></tr>
+<tr class="memdesc:gaef2198807e937072803ae0ae45e1965e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00901.html#gaef2198807e937072803ae0ae45e1965e">More...</a><br /></td></tr>
+<tr class="separator:gaef2198807e937072803ae0ae45e1965e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00110_source.html">matrix_double2x4_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00110_source.html">matrix_double2x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00110_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double2x4_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double2x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double2x4_precision.hpp</div>  </div>
+<div class="title">matrix_double2x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00110.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga97507a31ecee8609887d0f23bbde92c7">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, lowp&gt;         <a class="code" href="a00893.html#ga97507a31ecee8609887d0f23bbde92c7">lowp_dmat2x4</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga685bda24922d112786af385deb4deb43">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, mediump&gt;      <a class="code" href="a00893.html#ga685bda24922d112786af385deb4deb43">mediump_dmat2x4</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga5ceeb46670fdc000a0701910cc5061c9">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, highp&gt;        <a class="code" href="a00893.html#ga5ceeb46670fdc000a0701910cc5061c9">highp_dmat2x4</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#gaef2198807e937072803ae0ae45e1965e">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, defaultp&gt;             <a class="code" href="a00901.html#gaef2198807e937072803ae0ae45e1965e">dmat2x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga97507a31ecee8609887d0f23bbde92c7"><div class="ttname"><a href="a00893.html#ga97507a31ecee8609887d0f23bbde92c7">glm::lowp_dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, lowp &gt; lowp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00016">matrix_double2x4_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_ga5ceeb46670fdc000a0701910cc5061c9"><div class="ttname"><a href="a00893.html#ga5ceeb46670fdc000a0701910cc5061c9">glm::highp_dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, highp &gt; highp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00028">matrix_double2x4_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga685bda24922d112786af385deb4deb43"><div class="ttname"><a href="a00893.html#ga685bda24922d112786af385deb4deb43">glm::mediump_dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, mediump &gt; mediump_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00022">matrix_double2x4_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00901_html_gaef2198807e937072803ae0ae45e1965e"><div class="ttname"><a href="a00901.html#gaef2198807e937072803ae0ae45e1965e">glm::dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, defaultp &gt; dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00015">matrix_double2x4.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 9
doc/api/a00113.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x2.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double2x4_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double3x2.hpp File Reference</div>  </div>
+<div class="title">matrix_double2x4_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00113_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga001e3e0638fbf8719788fc64c5b8cf39"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga001e3e0638fbf8719788fc64c5b8cf39">dmat3x2</a></td></tr>
-<tr class="memdesc:ga001e3e0638fbf8719788fc64c5b8cf39"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga001e3e0638fbf8719788fc64c5b8cf39">More...</a><br /></td></tr>
-<tr class="separator:ga001e3e0638fbf8719788fc64c5b8cf39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ceeb46670fdc000a0701910cc5061c9"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga5ceeb46670fdc000a0701910cc5061c9">highp_dmat2x4</a></td></tr>
+<tr class="memdesc:ga5ceeb46670fdc000a0701910cc5061c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga5ceeb46670fdc000a0701910cc5061c9">More...</a><br /></td></tr>
+<tr class="separator:ga5ceeb46670fdc000a0701910cc5061c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97507a31ecee8609887d0f23bbde92c7"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga97507a31ecee8609887d0f23bbde92c7">lowp_dmat2x4</a></td></tr>
+<tr class="memdesc:ga97507a31ecee8609887d0f23bbde92c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga97507a31ecee8609887d0f23bbde92c7">More...</a><br /></td></tr>
+<tr class="separator:ga97507a31ecee8609887d0f23bbde92c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga685bda24922d112786af385deb4deb43"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga685bda24922d112786af385deb4deb43">mediump_dmat2x4</a></td></tr>
+<tr class="memdesc:ga685bda24922d112786af385deb4deb43"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga685bda24922d112786af385deb4deb43">More...</a><br /></td></tr>
+<tr class="separator:ga685bda24922d112786af385deb4deb43"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00113_source.html">matrix_double3x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00113_source.html">matrix_double2x4_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 8
doc/api/a00113_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x2.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double2x4_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double3x2.hpp</div>  </div>
+<div class="title">matrix_double2x4_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00113.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x4.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga001e3e0638fbf8719788fc64c5b8cf39">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, defaultp&gt;             <a class="code" href="a00892.html#ga001e3e0638fbf8719788fc64c5b8cf39">dmat3x2</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga97507a31ecee8609887d0f23bbde92c7">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, lowp&gt;         <a class="code" href="a00902.html#ga97507a31ecee8609887d0f23bbde92c7">lowp_dmat2x4</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga685bda24922d112786af385deb4deb43">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, mediump&gt;      <a class="code" href="a00902.html#ga685bda24922d112786af385deb4deb43">mediump_dmat2x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga5ceeb46670fdc000a0701910cc5061c9">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, double, highp&gt;        <a class="code" href="a00902.html#ga5ceeb46670fdc000a0701910cc5061c9">highp_dmat2x4</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga001e3e0638fbf8719788fc64c5b8cf39"><div class="ttname"><a href="a00892.html#ga001e3e0638fbf8719788fc64c5b8cf39">glm::dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, defaultp &gt; dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00015">matrix_double3x2.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga5ceeb46670fdc000a0701910cc5061c9"><div class="ttname"><a href="a00902.html#ga5ceeb46670fdc000a0701910cc5061c9">glm::highp_dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, highp &gt; highp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00028">matrix_double2x4_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga685bda24922d112786af385deb4deb43"><div class="ttname"><a href="a00902.html#ga685bda24922d112786af385deb4deb43">glm::mediump_dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, mediump &gt; mediump_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00022">matrix_double2x4_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_ga97507a31ecee8609887d0f23bbde92c7"><div class="ttname"><a href="a00902.html#ga97507a31ecee8609887d0f23bbde92c7">glm::lowp_dmat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, lowp &gt; lowp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00016">matrix_double2x4_precision.hpp:16</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00116.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x2_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double3x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double3x2_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double3x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00116_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga3647309010a2160e9ec89bc6f7c95c35"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga3647309010a2160e9ec89bc6f7c95c35">highp_dmat3x2</a></td></tr>
-<tr class="memdesc:ga3647309010a2160e9ec89bc6f7c95c35"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga3647309010a2160e9ec89bc6f7c95c35">More...</a><br /></td></tr>
-<tr class="separator:ga3647309010a2160e9ec89bc6f7c95c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e0ea3fba496bc7c6f620d2590acb66b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga1e0ea3fba496bc7c6f620d2590acb66b">lowp_dmat3x2</a></td></tr>
-<tr class="memdesc:ga1e0ea3fba496bc7c6f620d2590acb66b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga1e0ea3fba496bc7c6f620d2590acb66b">More...</a><br /></td></tr>
-<tr class="separator:ga1e0ea3fba496bc7c6f620d2590acb66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2076157df85e49b8c021e03e46a376c1"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga2076157df85e49b8c021e03e46a376c1">mediump_dmat3x2</a></td></tr>
-<tr class="memdesc:ga2076157df85e49b8c021e03e46a376c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga2076157df85e49b8c021e03e46a376c1">More...</a><br /></td></tr>
-<tr class="separator:ga2076157df85e49b8c021e03e46a376c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga001e3e0638fbf8719788fc64c5b8cf39"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga001e3e0638fbf8719788fc64c5b8cf39">dmat3x2</a></td></tr>
+<tr class="memdesc:ga001e3e0638fbf8719788fc64c5b8cf39"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga001e3e0638fbf8719788fc64c5b8cf39">More...</a><br /></td></tr>
+<tr class="separator:ga001e3e0638fbf8719788fc64c5b8cf39"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00116_source.html">matrix_double3x2_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00116_source.html">matrix_double3x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00116_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x2_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double3x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double3x2_precision.hpp</div>  </div>
+<div class="title">matrix_double3x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00116.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga1e0ea3fba496bc7c6f620d2590acb66b">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, lowp&gt;         <a class="code" href="a00893.html#ga1e0ea3fba496bc7c6f620d2590acb66b">lowp_dmat3x2</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga2076157df85e49b8c021e03e46a376c1">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, mediump&gt;      <a class="code" href="a00893.html#ga2076157df85e49b8c021e03e46a376c1">mediump_dmat3x2</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga3647309010a2160e9ec89bc6f7c95c35">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, highp&gt;        <a class="code" href="a00893.html#ga3647309010a2160e9ec89bc6f7c95c35">highp_dmat3x2</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga001e3e0638fbf8719788fc64c5b8cf39">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, defaultp&gt;             <a class="code" href="a00901.html#ga001e3e0638fbf8719788fc64c5b8cf39">dmat3x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga3647309010a2160e9ec89bc6f7c95c35"><div class="ttname"><a href="a00893.html#ga3647309010a2160e9ec89bc6f7c95c35">glm::highp_dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, highp &gt; highp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00028">matrix_double3x2_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga2076157df85e49b8c021e03e46a376c1"><div class="ttname"><a href="a00893.html#ga2076157df85e49b8c021e03e46a376c1">glm::mediump_dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, mediump &gt; mediump_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00022">matrix_double3x2_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_ga1e0ea3fba496bc7c6f620d2590acb66b"><div class="ttname"><a href="a00893.html#ga1e0ea3fba496bc7c6f620d2590acb66b">glm::lowp_dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, lowp &gt; lowp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00016">matrix_double3x2_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00901_html_ga001e3e0638fbf8719788fc64c5b8cf39"><div class="ttname"><a href="a00901.html#ga001e3e0638fbf8719788fc64c5b8cf39">glm::dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, defaultp &gt; dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00015">matrix_double3x2.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 12
doc/api/a00119.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x3.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double3x2_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,28 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double3x3.hpp File Reference</div>  </div>
+<div class="title">matrix_double3x2_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00119_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga6f40aa56265b4b0ccad41b86802efe33"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga6f40aa56265b4b0ccad41b86802efe33">dmat3</a></td></tr>
-<tr class="memdesc:ga6f40aa56265b4b0ccad41b86802efe33"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga6f40aa56265b4b0ccad41b86802efe33">More...</a><br /></td></tr>
-<tr class="separator:ga6f40aa56265b4b0ccad41b86802efe33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga970cb3306be25a5ca5db5a9456831228"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga970cb3306be25a5ca5db5a9456831228">dmat3x3</a></td></tr>
-<tr class="memdesc:ga970cb3306be25a5ca5db5a9456831228"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga970cb3306be25a5ca5db5a9456831228">More...</a><br /></td></tr>
-<tr class="separator:ga970cb3306be25a5ca5db5a9456831228"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3647309010a2160e9ec89bc6f7c95c35"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga3647309010a2160e9ec89bc6f7c95c35">highp_dmat3x2</a></td></tr>
+<tr class="memdesc:ga3647309010a2160e9ec89bc6f7c95c35"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga3647309010a2160e9ec89bc6f7c95c35">More...</a><br /></td></tr>
+<tr class="separator:ga3647309010a2160e9ec89bc6f7c95c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e0ea3fba496bc7c6f620d2590acb66b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga1e0ea3fba496bc7c6f620d2590acb66b">lowp_dmat3x2</a></td></tr>
+<tr class="memdesc:ga1e0ea3fba496bc7c6f620d2590acb66b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga1e0ea3fba496bc7c6f620d2590acb66b">More...</a><br /></td></tr>
+<tr class="separator:ga1e0ea3fba496bc7c6f620d2590acb66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2076157df85e49b8c021e03e46a376c1"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga2076157df85e49b8c021e03e46a376c1">mediump_dmat3x2</a></td></tr>
+<tr class="memdesc:ga2076157df85e49b8c021e03e46a376c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga2076157df85e49b8c021e03e46a376c1">More...</a><br /></td></tr>
+<tr class="separator:ga2076157df85e49b8c021e03e46a376c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00119_source.html">matrix_double3x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00119_source.html">matrix_double3x2_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 11
doc/api/a00119_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x3.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double3x2_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,24 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double3x3.hpp</div>  </div>
+<div class="title">matrix_double3x2_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00119.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x2.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga970cb3306be25a5ca5db5a9456831228">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, defaultp&gt;             <a class="code" href="a00892.html#ga970cb3306be25a5ca5db5a9456831228">dmat3x3</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00892.html#ga6f40aa56265b4b0ccad41b86802efe33">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, defaultp&gt;             <a class="code" href="a00892.html#ga6f40aa56265b4b0ccad41b86802efe33">dmat3</a>;</div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga1e0ea3fba496bc7c6f620d2590acb66b">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, lowp&gt;         <a class="code" href="a00902.html#ga1e0ea3fba496bc7c6f620d2590acb66b">lowp_dmat3x2</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga2076157df85e49b8c021e03e46a376c1">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, mediump&gt;      <a class="code" href="a00902.html#ga2076157df85e49b8c021e03e46a376c1">mediump_dmat3x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga3647309010a2160e9ec89bc6f7c95c35">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, double, highp&gt;        <a class="code" href="a00902.html#ga3647309010a2160e9ec89bc6f7c95c35">highp_dmat3x2</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga6f40aa56265b4b0ccad41b86802efe33"><div class="ttname"><a href="a00892.html#ga6f40aa56265b4b0ccad41b86802efe33">glm::dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, defaultp &gt; dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00020">matrix_double3x3.hpp:20</a></div></div>
-<div class="ttc" id="aa00892_html_ga970cb3306be25a5ca5db5a9456831228"><div class="ttname"><a href="a00892.html#ga970cb3306be25a5ca5db5a9456831228">glm::dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, defaultp &gt; dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00015">matrix_double3x3.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga3647309010a2160e9ec89bc6f7c95c35"><div class="ttname"><a href="a00902.html#ga3647309010a2160e9ec89bc6f7c95c35">glm::highp_dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, highp &gt; highp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00028">matrix_double3x2_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga1e0ea3fba496bc7c6f620d2590acb66b"><div class="ttname"><a href="a00902.html#ga1e0ea3fba496bc7c6f620d2590acb66b">glm::lowp_dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, lowp &gt; lowp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00016">matrix_double3x2_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_ga2076157df85e49b8c021e03e46a376c1"><div class="ttname"><a href="a00902.html#ga2076157df85e49b8c021e03e46a376c1">glm::mediump_dmat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, mediump &gt; mediump_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00022">matrix_double3x2_precision.hpp:22</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 12 - 24
doc/api/a00122.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x3_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double3x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,40 +69,28 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double3x3_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double3x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00122_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga86d6d4dbad92ffdcc759773340e15a97"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga86d6d4dbad92ffdcc759773340e15a97">highp_dmat3</a></td></tr>
-<tr class="memdesc:ga86d6d4dbad92ffdcc759773340e15a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga86d6d4dbad92ffdcc759773340e15a97">More...</a><br /></td></tr>
-<tr class="separator:ga86d6d4dbad92ffdcc759773340e15a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae367ea93c4ad8a7c101dd27b8b2b04ce"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">highp_dmat3x3</a></td></tr>
-<tr class="memdesc:gae367ea93c4ad8a7c101dd27b8b2b04ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">More...</a><br /></td></tr>
-<tr class="separator:gae367ea93c4ad8a7c101dd27b8b2b04ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0cab80beee64a5f8d2ae4e823983063a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga0cab80beee64a5f8d2ae4e823983063a">lowp_dmat3</a></td></tr>
-<tr class="memdesc:ga0cab80beee64a5f8d2ae4e823983063a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga0cab80beee64a5f8d2ae4e823983063a">More...</a><br /></td></tr>
-<tr class="separator:ga0cab80beee64a5f8d2ae4e823983063a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac017848a9df570f60916a21a297b1e8e"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gac017848a9df570f60916a21a297b1e8e">lowp_dmat3x3</a></td></tr>
-<tr class="memdesc:gac017848a9df570f60916a21a297b1e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gac017848a9df570f60916a21a297b1e8e">More...</a><br /></td></tr>
-<tr class="separator:gac017848a9df570f60916a21a297b1e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga939fbf9c53008a8e84c7dd7cf8de29e2"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">mediump_dmat3</a></td></tr>
-<tr class="memdesc:ga939fbf9c53008a8e84c7dd7cf8de29e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">More...</a><br /></td></tr>
-<tr class="separator:ga939fbf9c53008a8e84c7dd7cf8de29e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga47bd2aae4701ee2fc865674a9df3d7a6"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga47bd2aae4701ee2fc865674a9df3d7a6">mediump_dmat3x3</a></td></tr>
-<tr class="memdesc:ga47bd2aae4701ee2fc865674a9df3d7a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga47bd2aae4701ee2fc865674a9df3d7a6">More...</a><br /></td></tr>
-<tr class="separator:ga47bd2aae4701ee2fc865674a9df3d7a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6f40aa56265b4b0ccad41b86802efe33"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga6f40aa56265b4b0ccad41b86802efe33">dmat3</a></td></tr>
+<tr class="memdesc:ga6f40aa56265b4b0ccad41b86802efe33"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga6f40aa56265b4b0ccad41b86802efe33">More...</a><br /></td></tr>
+<tr class="separator:ga6f40aa56265b4b0ccad41b86802efe33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga970cb3306be25a5ca5db5a9456831228"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga970cb3306be25a5ca5db5a9456831228">dmat3x3</a></td></tr>
+<tr class="memdesc:ga970cb3306be25a5ca5db5a9456831228"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga970cb3306be25a5ca5db5a9456831228">More...</a><br /></td></tr>
+<tr class="separator:ga970cb3306be25a5ca5db5a9456831228"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00122_source.html">matrix_double3x3_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00122_source.html">matrix_double3x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 10 - 22
doc/api/a00122_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x3_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double3x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double3x3_precision.hpp</div>  </div>
+<div class="title">matrix_double3x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00122.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,26 +77,14 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga0cab80beee64a5f8d2ae4e823983063a">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, lowp&gt;         <a class="code" href="a00893.html#ga0cab80beee64a5f8d2ae4e823983063a">lowp_dmat3</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, mediump&gt;      <a class="code" href="a00893.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">mediump_dmat3</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga86d6d4dbad92ffdcc759773340e15a97">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, highp&gt;        <a class="code" href="a00893.html#ga86d6d4dbad92ffdcc759773340e15a97">highp_dmat3</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00893.html#gac017848a9df570f60916a21a297b1e8e">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, lowp&gt;         <a class="code" href="a00893.html#gac017848a9df570f60916a21a297b1e8e">lowp_dmat3x3</a>;</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00893.html#ga47bd2aae4701ee2fc865674a9df3d7a6">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, mediump&gt;      <a class="code" href="a00893.html#ga47bd2aae4701ee2fc865674a9df3d7a6">mediump_dmat3x3</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00893.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, highp&gt;        <a class="code" href="a00893.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">highp_dmat3x3</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga970cb3306be25a5ca5db5a9456831228">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, defaultp&gt;             <a class="code" href="a00901.html#ga970cb3306be25a5ca5db5a9456831228">dmat3x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00901.html#ga6f40aa56265b4b0ccad41b86802efe33">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, defaultp&gt;             <a class="code" href="a00901.html#ga6f40aa56265b4b0ccad41b86802efe33">dmat3</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_gae367ea93c4ad8a7c101dd27b8b2b04ce"><div class="ttname"><a href="a00893.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">glm::highp_dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, highp &gt; highp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00046">matrix_double3x3_precision.hpp:46</a></div></div>
-<div class="ttc" id="aa00893_html_ga86d6d4dbad92ffdcc759773340e15a97"><div class="ttname"><a href="a00893.html#ga86d6d4dbad92ffdcc759773340e15a97">glm::highp_dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, highp &gt; highp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00028">matrix_double3x3_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_gac017848a9df570f60916a21a297b1e8e"><div class="ttname"><a href="a00893.html#gac017848a9df570f60916a21a297b1e8e">glm::lowp_dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, lowp &gt; lowp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00034">matrix_double3x3_precision.hpp:34</a></div></div>
-<div class="ttc" id="aa00893_html_ga939fbf9c53008a8e84c7dd7cf8de29e2"><div class="ttname"><a href="a00893.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">glm::mediump_dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, mediump &gt; mediump_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00022">matrix_double3x3_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_ga47bd2aae4701ee2fc865674a9df3d7a6"><div class="ttname"><a href="a00893.html#ga47bd2aae4701ee2fc865674a9df3d7a6">glm::mediump_dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, mediump &gt; mediump_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00040">matrix_double3x3_precision.hpp:40</a></div></div>
-<div class="ttc" id="aa00893_html_ga0cab80beee64a5f8d2ae4e823983063a"><div class="ttname"><a href="a00893.html#ga0cab80beee64a5f8d2ae4e823983063a">glm::lowp_dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, lowp &gt; lowp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00016">matrix_double3x3_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00901_html_ga970cb3306be25a5ca5db5a9456831228"><div class="ttname"><a href="a00901.html#ga970cb3306be25a5ca5db5a9456831228">glm::dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, defaultp &gt; dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00015">matrix_double3x3.hpp:15</a></div></div>
+<div class="ttc" id="aa00901_html_ga6f40aa56265b4b0ccad41b86802efe33"><div class="ttname"><a href="a00901.html#ga6f40aa56265b4b0ccad41b86802efe33">glm::dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, defaultp &gt; dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00122_source.html#l00020">matrix_double3x3.hpp:20</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 24 - 9
doc/api/a00125.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x4.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double3x3_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,40 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double3x4.hpp File Reference</div>  </div>
+<div class="title">matrix_double3x3_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00125_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga0412a634d183587e6188e9b11869f8f4"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga0412a634d183587e6188e9b11869f8f4">dmat3x4</a></td></tr>
-<tr class="memdesc:ga0412a634d183587e6188e9b11869f8f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga0412a634d183587e6188e9b11869f8f4">More...</a><br /></td></tr>
-<tr class="separator:ga0412a634d183587e6188e9b11869f8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86d6d4dbad92ffdcc759773340e15a97"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga86d6d4dbad92ffdcc759773340e15a97">highp_dmat3</a></td></tr>
+<tr class="memdesc:ga86d6d4dbad92ffdcc759773340e15a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga86d6d4dbad92ffdcc759773340e15a97">More...</a><br /></td></tr>
+<tr class="separator:ga86d6d4dbad92ffdcc759773340e15a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae367ea93c4ad8a7c101dd27b8b2b04ce"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">highp_dmat3x3</a></td></tr>
+<tr class="memdesc:gae367ea93c4ad8a7c101dd27b8b2b04ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">More...</a><br /></td></tr>
+<tr class="separator:gae367ea93c4ad8a7c101dd27b8b2b04ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0cab80beee64a5f8d2ae4e823983063a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga0cab80beee64a5f8d2ae4e823983063a">lowp_dmat3</a></td></tr>
+<tr class="memdesc:ga0cab80beee64a5f8d2ae4e823983063a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga0cab80beee64a5f8d2ae4e823983063a">More...</a><br /></td></tr>
+<tr class="separator:ga0cab80beee64a5f8d2ae4e823983063a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac017848a9df570f60916a21a297b1e8e"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gac017848a9df570f60916a21a297b1e8e">lowp_dmat3x3</a></td></tr>
+<tr class="memdesc:gac017848a9df570f60916a21a297b1e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#gac017848a9df570f60916a21a297b1e8e">More...</a><br /></td></tr>
+<tr class="separator:gac017848a9df570f60916a21a297b1e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga939fbf9c53008a8e84c7dd7cf8de29e2"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">mediump_dmat3</a></td></tr>
+<tr class="memdesc:ga939fbf9c53008a8e84c7dd7cf8de29e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">More...</a><br /></td></tr>
+<tr class="separator:ga939fbf9c53008a8e84c7dd7cf8de29e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47bd2aae4701ee2fc865674a9df3d7a6"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga47bd2aae4701ee2fc865674a9df3d7a6">mediump_dmat3x3</a></td></tr>
+<tr class="memdesc:ga47bd2aae4701ee2fc865674a9df3d7a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga47bd2aae4701ee2fc865674a9df3d7a6">More...</a><br /></td></tr>
+<tr class="separator:ga47bd2aae4701ee2fc865674a9df3d7a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00125_source.html">matrix_double3x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00125_source.html">matrix_double3x3_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 23 - 8
doc/api/a00125_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x4.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double3x3_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,36 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double3x4.hpp</div>  </div>
+<div class="title">matrix_double3x3_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00125.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x3.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga0412a634d183587e6188e9b11869f8f4">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, defaultp&gt;             <a class="code" href="a00892.html#ga0412a634d183587e6188e9b11869f8f4">dmat3x4</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga0cab80beee64a5f8d2ae4e823983063a">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, lowp&gt;         <a class="code" href="a00902.html#ga0cab80beee64a5f8d2ae4e823983063a">lowp_dmat3</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, mediump&gt;      <a class="code" href="a00902.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">mediump_dmat3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga86d6d4dbad92ffdcc759773340e15a97">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, highp&gt;        <a class="code" href="a00902.html#ga86d6d4dbad92ffdcc759773340e15a97">highp_dmat3</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00902.html#gac017848a9df570f60916a21a297b1e8e">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, lowp&gt;         <a class="code" href="a00902.html#gac017848a9df570f60916a21a297b1e8e">lowp_dmat3x3</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00902.html#ga47bd2aae4701ee2fc865674a9df3d7a6">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, mediump&gt;      <a class="code" href="a00902.html#ga47bd2aae4701ee2fc865674a9df3d7a6">mediump_dmat3x3</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00902.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 3, double, highp&gt;        <a class="code" href="a00902.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">highp_dmat3x3</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga0412a634d183587e6188e9b11869f8f4"><div class="ttname"><a href="a00892.html#ga0412a634d183587e6188e9b11869f8f4">glm::dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, defaultp &gt; dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00015">matrix_double3x4.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_gac017848a9df570f60916a21a297b1e8e"><div class="ttname"><a href="a00902.html#gac017848a9df570f60916a21a297b1e8e">glm::lowp_dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, lowp &gt; lowp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00034">matrix_double3x3_precision.hpp:34</a></div></div>
+<div class="ttc" id="aa00902_html_ga939fbf9c53008a8e84c7dd7cf8de29e2"><div class="ttname"><a href="a00902.html#ga939fbf9c53008a8e84c7dd7cf8de29e2">glm::mediump_dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, mediump &gt; mediump_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00022">matrix_double3x3_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_ga47bd2aae4701ee2fc865674a9df3d7a6"><div class="ttname"><a href="a00902.html#ga47bd2aae4701ee2fc865674a9df3d7a6">glm::mediump_dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, mediump &gt; mediump_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00040">matrix_double3x3_precision.hpp:40</a></div></div>
+<div class="ttc" id="aa00902_html_ga0cab80beee64a5f8d2ae4e823983063a"><div class="ttname"><a href="a00902.html#ga0cab80beee64a5f8d2ae4e823983063a">glm::lowp_dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, lowp &gt; lowp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00016">matrix_double3x3_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_gae367ea93c4ad8a7c101dd27b8b2b04ce"><div class="ttname"><a href="a00902.html#gae367ea93c4ad8a7c101dd27b8b2b04ce">glm::highp_dmat3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, highp &gt; highp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00046">matrix_double3x3_precision.hpp:46</a></div></div>
+<div class="ttc" id="aa00902_html_ga86d6d4dbad92ffdcc759773340e15a97"><div class="ttname"><a href="a00902.html#ga86d6d4dbad92ffdcc759773340e15a97">glm::highp_dmat3</a></div><div class="ttdeci">mat&lt; 3, 3, double, highp &gt; highp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00028">matrix_double3x3_precision.hpp:28</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00128.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x4_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double3x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double3x4_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double3x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00128_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga6543eeeb64f48d79a0b96484308c50f0"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga6543eeeb64f48d79a0b96484308c50f0">highp_dmat3x4</a></td></tr>
-<tr class="memdesc:ga6543eeeb64f48d79a0b96484308c50f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga6543eeeb64f48d79a0b96484308c50f0">More...</a><br /></td></tr>
-<tr class="separator:ga6543eeeb64f48d79a0b96484308c50f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93add35d2a44c5830978b827e8c295e8"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga93add35d2a44c5830978b827e8c295e8">lowp_dmat3x4</a></td></tr>
-<tr class="memdesc:ga93add35d2a44c5830978b827e8c295e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga93add35d2a44c5830978b827e8c295e8">More...</a><br /></td></tr>
-<tr class="separator:ga93add35d2a44c5830978b827e8c295e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3a132bd05675c2e46556f67cf738600b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga3a132bd05675c2e46556f67cf738600b">mediump_dmat3x4</a></td></tr>
-<tr class="memdesc:ga3a132bd05675c2e46556f67cf738600b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga3a132bd05675c2e46556f67cf738600b">More...</a><br /></td></tr>
-<tr class="separator:ga3a132bd05675c2e46556f67cf738600b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0412a634d183587e6188e9b11869f8f4"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga0412a634d183587e6188e9b11869f8f4">dmat3x4</a></td></tr>
+<tr class="memdesc:ga0412a634d183587e6188e9b11869f8f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga0412a634d183587e6188e9b11869f8f4">More...</a><br /></td></tr>
+<tr class="separator:ga0412a634d183587e6188e9b11869f8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00128_source.html">matrix_double3x4_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00128_source.html">matrix_double3x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00128_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double3x4_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double3x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double3x4_precision.hpp</div>  </div>
+<div class="title">matrix_double3x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00128.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga93add35d2a44c5830978b827e8c295e8">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, lowp&gt;         <a class="code" href="a00893.html#ga93add35d2a44c5830978b827e8c295e8">lowp_dmat3x4</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga3a132bd05675c2e46556f67cf738600b">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, mediump&gt;      <a class="code" href="a00893.html#ga3a132bd05675c2e46556f67cf738600b">mediump_dmat3x4</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga6543eeeb64f48d79a0b96484308c50f0">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, highp&gt;        <a class="code" href="a00893.html#ga6543eeeb64f48d79a0b96484308c50f0">highp_dmat3x4</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga0412a634d183587e6188e9b11869f8f4">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, defaultp&gt;             <a class="code" href="a00901.html#ga0412a634d183587e6188e9b11869f8f4">dmat3x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga6543eeeb64f48d79a0b96484308c50f0"><div class="ttname"><a href="a00893.html#ga6543eeeb64f48d79a0b96484308c50f0">glm::highp_dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, highp &gt; highp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00128_source.html#l00028">matrix_double3x4_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga93add35d2a44c5830978b827e8c295e8"><div class="ttname"><a href="a00893.html#ga93add35d2a44c5830978b827e8c295e8">glm::lowp_dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, lowp &gt; lowp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00128_source.html#l00016">matrix_double3x4_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_ga3a132bd05675c2e46556f67cf738600b"><div class="ttname"><a href="a00893.html#ga3a132bd05675c2e46556f67cf738600b">glm::mediump_dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, mediump &gt; mediump_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00128_source.html#l00022">matrix_double3x4_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00901_html_ga0412a634d183587e6188e9b11869f8f4"><div class="ttname"><a href="a00901.html#ga0412a634d183587e6188e9b11869f8f4">glm::dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, defaultp &gt; dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00128_source.html#l00015">matrix_double3x4.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 9
doc/api/a00131.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x2.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double3x4_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double4x2.hpp File Reference</div>  </div>
+<div class="title">matrix_double3x4_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00131_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">dmat4x2</a></td></tr>
-<tr class="memdesc:ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">More...</a><br /></td></tr>
-<tr class="separator:ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6543eeeb64f48d79a0b96484308c50f0"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga6543eeeb64f48d79a0b96484308c50f0">highp_dmat3x4</a></td></tr>
+<tr class="memdesc:ga6543eeeb64f48d79a0b96484308c50f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga6543eeeb64f48d79a0b96484308c50f0">More...</a><br /></td></tr>
+<tr class="separator:ga6543eeeb64f48d79a0b96484308c50f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93add35d2a44c5830978b827e8c295e8"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga93add35d2a44c5830978b827e8c295e8">lowp_dmat3x4</a></td></tr>
+<tr class="memdesc:ga93add35d2a44c5830978b827e8c295e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga93add35d2a44c5830978b827e8c295e8">More...</a><br /></td></tr>
+<tr class="separator:ga93add35d2a44c5830978b827e8c295e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a132bd05675c2e46556f67cf738600b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga3a132bd05675c2e46556f67cf738600b">mediump_dmat3x4</a></td></tr>
+<tr class="memdesc:ga3a132bd05675c2e46556f67cf738600b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga3a132bd05675c2e46556f67cf738600b">More...</a><br /></td></tr>
+<tr class="separator:ga3a132bd05675c2e46556f67cf738600b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00131_source.html">matrix_double4x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00131_source.html">matrix_double3x4_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 8
doc/api/a00131_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x2.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double3x4_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double4x2.hpp</div>  </div>
+<div class="title">matrix_double3x4_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00131.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x4.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, defaultp&gt;             <a class="code" href="a00892.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">dmat4x2</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga93add35d2a44c5830978b827e8c295e8">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, lowp&gt;         <a class="code" href="a00902.html#ga93add35d2a44c5830978b827e8c295e8">lowp_dmat3x4</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga3a132bd05675c2e46556f67cf738600b">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, mediump&gt;      <a class="code" href="a00902.html#ga3a132bd05675c2e46556f67cf738600b">mediump_dmat3x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga6543eeeb64f48d79a0b96484308c50f0">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 4, double, highp&gt;        <a class="code" href="a00902.html#ga6543eeeb64f48d79a0b96484308c50f0">highp_dmat3x4</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><div class="ttname"><a href="a00892.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">glm::dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, defaultp &gt; dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00131_source.html#l00015">matrix_double4x2.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga3a132bd05675c2e46556f67cf738600b"><div class="ttname"><a href="a00902.html#ga3a132bd05675c2e46556f67cf738600b">glm::mediump_dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, mediump &gt; mediump_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00131_source.html#l00022">matrix_double3x4_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_ga6543eeeb64f48d79a0b96484308c50f0"><div class="ttname"><a href="a00902.html#ga6543eeeb64f48d79a0b96484308c50f0">glm::highp_dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, highp &gt; highp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00131_source.html#l00028">matrix_double3x4_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga93add35d2a44c5830978b827e8c295e8"><div class="ttname"><a href="a00902.html#ga93add35d2a44c5830978b827e8c295e8">glm::lowp_dmat3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, lowp &gt; lowp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00131_source.html#l00016">matrix_double3x4_precision.hpp:16</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00134.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x2_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double4x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double4x2_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double4x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00134_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:gaeda1f474c668eaecc443bea85a4a4eca"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gaeda1f474c668eaecc443bea85a4a4eca">highp_dmat4x2</a></td></tr>
-<tr class="memdesc:gaeda1f474c668eaecc443bea85a4a4eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gaeda1f474c668eaecc443bea85a4a4eca">More...</a><br /></td></tr>
-<tr class="separator:gaeda1f474c668eaecc443bea85a4a4eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga382dc5295cead78766239a8457abfa98"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga382dc5295cead78766239a8457abfa98">lowp_dmat4x2</a></td></tr>
-<tr class="memdesc:ga382dc5295cead78766239a8457abfa98"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga382dc5295cead78766239a8457abfa98">More...</a><br /></td></tr>
-<tr class="separator:ga382dc5295cead78766239a8457abfa98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae220fa4c5a7b13ef2ab0420340de645c"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gae220fa4c5a7b13ef2ab0420340de645c">mediump_dmat4x2</a></td></tr>
-<tr class="memdesc:gae220fa4c5a7b13ef2ab0420340de645c"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gae220fa4c5a7b13ef2ab0420340de645c">More...</a><br /></td></tr>
-<tr class="separator:gae220fa4c5a7b13ef2ab0420340de645c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">dmat4x2</a></td></tr>
+<tr class="memdesc:ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">More...</a><br /></td></tr>
+<tr class="separator:ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00134_source.html">matrix_double4x2_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00134_source.html">matrix_double4x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00134_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x2_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double4x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double4x2_precision.hpp</div>  </div>
+<div class="title">matrix_double4x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00134.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga382dc5295cead78766239a8457abfa98">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, lowp&gt;         <a class="code" href="a00893.html#ga382dc5295cead78766239a8457abfa98">lowp_dmat4x2</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#gae220fa4c5a7b13ef2ab0420340de645c">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, mediump&gt;      <a class="code" href="a00893.html#gae220fa4c5a7b13ef2ab0420340de645c">mediump_dmat4x2</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#gaeda1f474c668eaecc443bea85a4a4eca">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, highp&gt;        <a class="code" href="a00893.html#gaeda1f474c668eaecc443bea85a4a4eca">highp_dmat4x2</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, defaultp&gt;             <a class="code" href="a00901.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">dmat4x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga382dc5295cead78766239a8457abfa98"><div class="ttname"><a href="a00893.html#ga382dc5295cead78766239a8457abfa98">glm::lowp_dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, lowp &gt; lowp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00134_source.html#l00016">matrix_double4x2_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_gaeda1f474c668eaecc443bea85a4a4eca"><div class="ttname"><a href="a00893.html#gaeda1f474c668eaecc443bea85a4a4eca">glm::highp_dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, highp &gt; highp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00134_source.html#l00028">matrix_double4x2_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_gae220fa4c5a7b13ef2ab0420340de645c"><div class="ttname"><a href="a00893.html#gae220fa4c5a7b13ef2ab0420340de645c">glm::mediump_dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, mediump &gt; mediump_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00134_source.html#l00022">matrix_double4x2_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00901_html_ga9bc0b3ab8b6ba2cb6782e179ad7ad156"><div class="ttname"><a href="a00901.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156">glm::dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, defaultp &gt; dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00134_source.html#l00015">matrix_double4x2.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 9
doc/api/a00137.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x3.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double4x2_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double4x3.hpp File Reference</div>  </div>
+<div class="title">matrix_double4x2_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00137_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:gacd18864049f8c83799babe7e596ca05b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#gacd18864049f8c83799babe7e596ca05b">dmat4x3</a></td></tr>
-<tr class="memdesc:gacd18864049f8c83799babe7e596ca05b"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00892.html#gacd18864049f8c83799babe7e596ca05b">More...</a><br /></td></tr>
-<tr class="separator:gacd18864049f8c83799babe7e596ca05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeda1f474c668eaecc443bea85a4a4eca"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gaeda1f474c668eaecc443bea85a4a4eca">highp_dmat4x2</a></td></tr>
+<tr class="memdesc:gaeda1f474c668eaecc443bea85a4a4eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gaeda1f474c668eaecc443bea85a4a4eca">More...</a><br /></td></tr>
+<tr class="separator:gaeda1f474c668eaecc443bea85a4a4eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga382dc5295cead78766239a8457abfa98"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga382dc5295cead78766239a8457abfa98">lowp_dmat4x2</a></td></tr>
+<tr class="memdesc:ga382dc5295cead78766239a8457abfa98"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga382dc5295cead78766239a8457abfa98">More...</a><br /></td></tr>
+<tr class="separator:ga382dc5295cead78766239a8457abfa98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae220fa4c5a7b13ef2ab0420340de645c"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 2, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gae220fa4c5a7b13ef2ab0420340de645c">mediump_dmat4x2</a></td></tr>
+<tr class="memdesc:gae220fa4c5a7b13ef2ab0420340de645c"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gae220fa4c5a7b13ef2ab0420340de645c">More...</a><br /></td></tr>
+<tr class="separator:gae220fa4c5a7b13ef2ab0420340de645c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00137_source.html">matrix_double4x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00137_source.html">matrix_double4x2_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 8
doc/api/a00137_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x3.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double4x2_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double4x3.hpp</div>  </div>
+<div class="title">matrix_double4x2_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00137.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x2.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#gacd18864049f8c83799babe7e596ca05b">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, defaultp&gt;             <a class="code" href="a00892.html#gacd18864049f8c83799babe7e596ca05b">dmat4x3</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga382dc5295cead78766239a8457abfa98">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, lowp&gt;         <a class="code" href="a00902.html#ga382dc5295cead78766239a8457abfa98">lowp_dmat4x2</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#gae220fa4c5a7b13ef2ab0420340de645c">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, mediump&gt;      <a class="code" href="a00902.html#gae220fa4c5a7b13ef2ab0420340de645c">mediump_dmat4x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#gaeda1f474c668eaecc443bea85a4a4eca">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 2, double, highp&gt;        <a class="code" href="a00902.html#gaeda1f474c668eaecc443bea85a4a4eca">highp_dmat4x2</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_gacd18864049f8c83799babe7e596ca05b"><div class="ttname"><a href="a00892.html#gacd18864049f8c83799babe7e596ca05b">glm::dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, defaultp &gt; dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00137_source.html#l00015">matrix_double4x3.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga382dc5295cead78766239a8457abfa98"><div class="ttname"><a href="a00902.html#ga382dc5295cead78766239a8457abfa98">glm::lowp_dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, lowp &gt; lowp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00137_source.html#l00016">matrix_double4x2_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_gaeda1f474c668eaecc443bea85a4a4eca"><div class="ttname"><a href="a00902.html#gaeda1f474c668eaecc443bea85a4a4eca">glm::highp_dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, highp &gt; highp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00137_source.html#l00028">matrix_double4x2_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_gae220fa4c5a7b13ef2ab0420340de645c"><div class="ttname"><a href="a00902.html#gae220fa4c5a7b13ef2ab0420340de645c">glm::mediump_dmat4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, mediump &gt; mediump_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00137_source.html#l00022">matrix_double4x2_precision.hpp:22</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00140.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x3_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double4x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double4x3_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double4x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00140_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:gacf237c2d8832fe8db2d7e187585d34bd"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gacf237c2d8832fe8db2d7e187585d34bd">highp_dmat4x3</a></td></tr>
-<tr class="memdesc:gacf237c2d8832fe8db2d7e187585d34bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gacf237c2d8832fe8db2d7e187585d34bd">More...</a><br /></td></tr>
-<tr class="separator:gacf237c2d8832fe8db2d7e187585d34bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">lowp_dmat4x3</a></td></tr>
-<tr class="memdesc:ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">More...</a><br /></td></tr>
-<tr class="separator:ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga43ef60e4d996db15c9c8f069a96ff763"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga43ef60e4d996db15c9c8f069a96ff763">mediump_dmat4x3</a></td></tr>
-<tr class="memdesc:ga43ef60e4d996db15c9c8f069a96ff763"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga43ef60e4d996db15c9c8f069a96ff763">More...</a><br /></td></tr>
-<tr class="separator:ga43ef60e4d996db15c9c8f069a96ff763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd18864049f8c83799babe7e596ca05b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#gacd18864049f8c83799babe7e596ca05b">dmat4x3</a></td></tr>
+<tr class="memdesc:gacd18864049f8c83799babe7e596ca05b"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers.  <a href="a00901.html#gacd18864049f8c83799babe7e596ca05b">More...</a><br /></td></tr>
+<tr class="separator:gacd18864049f8c83799babe7e596ca05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00140_source.html">matrix_double4x3_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00140_source.html">matrix_double4x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00140_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x3_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double4x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double4x3_precision.hpp</div>  </div>
+<div class="title">matrix_double4x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00140.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, lowp&gt;         <a class="code" href="a00893.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">lowp_dmat4x3</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga43ef60e4d996db15c9c8f069a96ff763">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, mediump&gt;      <a class="code" href="a00893.html#ga43ef60e4d996db15c9c8f069a96ff763">mediump_dmat4x3</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#gacf237c2d8832fe8db2d7e187585d34bd">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, highp&gt;        <a class="code" href="a00893.html#gacf237c2d8832fe8db2d7e187585d34bd">highp_dmat4x3</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#gacd18864049f8c83799babe7e596ca05b">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, defaultp&gt;             <a class="code" href="a00901.html#gacd18864049f8c83799babe7e596ca05b">dmat4x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_gacf237c2d8832fe8db2d7e187585d34bd"><div class="ttname"><a href="a00893.html#gacf237c2d8832fe8db2d7e187585d34bd">glm::highp_dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, highp &gt; highp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00140_source.html#l00028">matrix_double4x3_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga43ef60e4d996db15c9c8f069a96ff763"><div class="ttname"><a href="a00893.html#ga43ef60e4d996db15c9c8f069a96ff763">glm::mediump_dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, mediump &gt; mediump_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00140_source.html#l00022">matrix_double4x3_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><div class="ttname"><a href="a00893.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">glm::lowp_dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, lowp &gt; lowp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00140_source.html#l00016">matrix_double4x3_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00901_html_gacd18864049f8c83799babe7e596ca05b"><div class="ttname"><a href="a00901.html#gacd18864049f8c83799babe7e596ca05b">glm::dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, defaultp &gt; dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00140_source.html#l00015">matrix_double4x3.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 12
doc/api/a00143.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x4.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double4x3_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,28 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double4x4.hpp File Reference</div>  </div>
+<div class="title">matrix_double4x3_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00143_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga0f34486bb7fec8e5a5b3830b6a6cbeca"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">dmat4</a></td></tr>
-<tr class="memdesc:ga0f34486bb7fec8e5a5b3830b6a6cbeca"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00892.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">More...</a><br /></td></tr>
-<tr class="separator:ga0f34486bb7fec8e5a5b3830b6a6cbeca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad5a6484b983b74f9d801cab8bc4e6a10"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#gad5a6484b983b74f9d801cab8bc4e6a10">dmat4x4</a></td></tr>
-<tr class="memdesc:gad5a6484b983b74f9d801cab8bc4e6a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00892.html#gad5a6484b983b74f9d801cab8bc4e6a10">More...</a><br /></td></tr>
-<tr class="separator:gad5a6484b983b74f9d801cab8bc4e6a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf237c2d8832fe8db2d7e187585d34bd"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gacf237c2d8832fe8db2d7e187585d34bd">highp_dmat4x3</a></td></tr>
+<tr class="memdesc:gacf237c2d8832fe8db2d7e187585d34bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gacf237c2d8832fe8db2d7e187585d34bd">More...</a><br /></td></tr>
+<tr class="separator:gacf237c2d8832fe8db2d7e187585d34bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">lowp_dmat4x3</a></td></tr>
+<tr class="memdesc:ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">More...</a><br /></td></tr>
+<tr class="separator:ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga43ef60e4d996db15c9c8f069a96ff763"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 3, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga43ef60e4d996db15c9c8f069a96ff763">mediump_dmat4x3</a></td></tr>
+<tr class="memdesc:ga43ef60e4d996db15c9c8f069a96ff763"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga43ef60e4d996db15c9c8f069a96ff763">More...</a><br /></td></tr>
+<tr class="separator:ga43ef60e4d996db15c9c8f069a96ff763"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00143_source.html">matrix_double4x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00143_source.html">matrix_double4x3_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 11
doc/api/a00143_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x4.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double4x3_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,24 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double4x4.hpp</div>  </div>
+<div class="title">matrix_double4x3_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00143.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x3.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#gad5a6484b983b74f9d801cab8bc4e6a10">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, defaultp&gt;             <a class="code" href="a00892.html#gad5a6484b983b74f9d801cab8bc4e6a10">dmat4x4</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00892.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, defaultp&gt;             <a class="code" href="a00892.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">dmat4</a>;</div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, lowp&gt;         <a class="code" href="a00902.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">lowp_dmat4x3</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga43ef60e4d996db15c9c8f069a96ff763">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, mediump&gt;      <a class="code" href="a00902.html#ga43ef60e4d996db15c9c8f069a96ff763">mediump_dmat4x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#gacf237c2d8832fe8db2d7e187585d34bd">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 3, double, highp&gt;        <a class="code" href="a00902.html#gacf237c2d8832fe8db2d7e187585d34bd">highp_dmat4x3</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga0f34486bb7fec8e5a5b3830b6a6cbeca"><div class="ttname"><a href="a00892.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">glm::dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, defaultp &gt; dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00143_source.html#l00020">matrix_double4x4.hpp:20</a></div></div>
-<div class="ttc" id="aa00892_html_gad5a6484b983b74f9d801cab8bc4e6a10"><div class="ttname"><a href="a00892.html#gad5a6484b983b74f9d801cab8bc4e6a10">glm::dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, defaultp &gt; dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00143_source.html#l00015">matrix_double4x4.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_gacf237c2d8832fe8db2d7e187585d34bd"><div class="ttname"><a href="a00902.html#gacf237c2d8832fe8db2d7e187585d34bd">glm::highp_dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, highp &gt; highp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00143_source.html#l00028">matrix_double4x3_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga3d7ea07da7c6e5c81a3f4c8b3d44056e"><div class="ttname"><a href="a00902.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e">glm::lowp_dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, lowp &gt; lowp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00143_source.html#l00016">matrix_double4x3_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_ga43ef60e4d996db15c9c8f069a96ff763"><div class="ttname"><a href="a00902.html#ga43ef60e4d996db15c9c8f069a96ff763">glm::mediump_dmat4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, mediump &gt; mediump_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00143_source.html#l00022">matrix_double4x3_precision.hpp:22</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 12 - 24
doc/api/a00146.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x4_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double4x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,40 +69,28 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_double4x4_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_double4x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00146_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga945254f459860741138bceb74da496b9"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga945254f459860741138bceb74da496b9">highp_dmat4</a></td></tr>
-<tr class="memdesc:ga945254f459860741138bceb74da496b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga945254f459860741138bceb74da496b9">More...</a><br /></td></tr>
-<tr class="separator:ga945254f459860741138bceb74da496b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga118d24a3d12c034e7cccef7bf2f01b8a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga118d24a3d12c034e7cccef7bf2f01b8a">highp_dmat4x4</a></td></tr>
-<tr class="memdesc:ga118d24a3d12c034e7cccef7bf2f01b8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga118d24a3d12c034e7cccef7bf2f01b8a">More...</a><br /></td></tr>
-<tr class="separator:ga118d24a3d12c034e7cccef7bf2f01b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga708bc5b91bbfedd21debac8dcf2a64cd"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga708bc5b91bbfedd21debac8dcf2a64cd">lowp_dmat4</a></td></tr>
-<tr class="memdesc:ga708bc5b91bbfedd21debac8dcf2a64cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga708bc5b91bbfedd21debac8dcf2a64cd">More...</a><br /></td></tr>
-<tr class="separator:ga708bc5b91bbfedd21debac8dcf2a64cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5b0413198b7e9f061f7534a221c9dac9"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga5b0413198b7e9f061f7534a221c9dac9">lowp_dmat4x4</a></td></tr>
-<tr class="memdesc:ga5b0413198b7e9f061f7534a221c9dac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga5b0413198b7e9f061f7534a221c9dac9">More...</a><br /></td></tr>
-<tr class="separator:ga5b0413198b7e9f061f7534a221c9dac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf650bc667bf2a0e496b5a9182bc8d378"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gaf650bc667bf2a0e496b5a9182bc8d378">mediump_dmat4</a></td></tr>
-<tr class="memdesc:gaf650bc667bf2a0e496b5a9182bc8d378"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gaf650bc667bf2a0e496b5a9182bc8d378">More...</a><br /></td></tr>
-<tr class="separator:gaf650bc667bf2a0e496b5a9182bc8d378"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5389b3ab32dc0d72bea00057ab6d1dd3"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">mediump_dmat4x4</a></td></tr>
-<tr class="memdesc:ga5389b3ab32dc0d72bea00057ab6d1dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">More...</a><br /></td></tr>
-<tr class="separator:ga5389b3ab32dc0d72bea00057ab6d1dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f34486bb7fec8e5a5b3830b6a6cbeca"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">dmat4</a></td></tr>
+<tr class="memdesc:ga0f34486bb7fec8e5a5b3830b6a6cbeca"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00901.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">More...</a><br /></td></tr>
+<tr class="separator:ga0f34486bb7fec8e5a5b3830b6a6cbeca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5a6484b983b74f9d801cab8bc4e6a10"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#gad5a6484b983b74f9d801cab8bc4e6a10">dmat4x4</a></td></tr>
+<tr class="memdesc:gad5a6484b983b74f9d801cab8bc4e6a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers.  <a href="a00901.html#gad5a6484b983b74f9d801cab8bc4e6a10">More...</a><br /></td></tr>
+<tr class="separator:gad5a6484b983b74f9d801cab8bc4e6a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00146_source.html">matrix_double4x4_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00146_source.html">matrix_double4x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 10 - 22
doc/api/a00146_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_double4x4_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double4x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_double4x4_precision.hpp</div>  </div>
+<div class="title">matrix_double4x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00146.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,26 +77,14 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga708bc5b91bbfedd21debac8dcf2a64cd">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, lowp&gt;         <a class="code" href="a00893.html#ga708bc5b91bbfedd21debac8dcf2a64cd">lowp_dmat4</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#gaf650bc667bf2a0e496b5a9182bc8d378">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, mediump&gt;      <a class="code" href="a00893.html#gaf650bc667bf2a0e496b5a9182bc8d378">mediump_dmat4</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga945254f459860741138bceb74da496b9">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, highp&gt;        <a class="code" href="a00893.html#ga945254f459860741138bceb74da496b9">highp_dmat4</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00893.html#ga5b0413198b7e9f061f7534a221c9dac9">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, lowp&gt;         <a class="code" href="a00893.html#ga5b0413198b7e9f061f7534a221c9dac9">lowp_dmat4x4</a>;</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00893.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, mediump&gt;      <a class="code" href="a00893.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">mediump_dmat4x4</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00893.html#ga118d24a3d12c034e7cccef7bf2f01b8a">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, highp&gt;        <a class="code" href="a00893.html#ga118d24a3d12c034e7cccef7bf2f01b8a">highp_dmat4x4</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#gad5a6484b983b74f9d801cab8bc4e6a10">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, defaultp&gt;             <a class="code" href="a00901.html#gad5a6484b983b74f9d801cab8bc4e6a10">dmat4x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00901.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, defaultp&gt;             <a class="code" href="a00901.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">dmat4</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga708bc5b91bbfedd21debac8dcf2a64cd"><div class="ttname"><a href="a00893.html#ga708bc5b91bbfedd21debac8dcf2a64cd">glm::lowp_dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, lowp &gt; lowp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00016">matrix_double4x4_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_ga118d24a3d12c034e7cccef7bf2f01b8a"><div class="ttname"><a href="a00893.html#ga118d24a3d12c034e7cccef7bf2f01b8a">glm::highp_dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, highp &gt; highp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00046">matrix_double4x4_precision.hpp:46</a></div></div>
-<div class="ttc" id="aa00893_html_gaf650bc667bf2a0e496b5a9182bc8d378"><div class="ttname"><a href="a00893.html#gaf650bc667bf2a0e496b5a9182bc8d378">glm::mediump_dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, mediump &gt; mediump_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00022">matrix_double4x4_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_ga5b0413198b7e9f061f7534a221c9dac9"><div class="ttname"><a href="a00893.html#ga5b0413198b7e9f061f7534a221c9dac9">glm::lowp_dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, lowp &gt; lowp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00034">matrix_double4x4_precision.hpp:34</a></div></div>
-<div class="ttc" id="aa00893_html_ga945254f459860741138bceb74da496b9"><div class="ttname"><a href="a00893.html#ga945254f459860741138bceb74da496b9">glm::highp_dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, highp &gt; highp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00028">matrix_double4x4_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga5389b3ab32dc0d72bea00057ab6d1dd3"><div class="ttname"><a href="a00893.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">glm::mediump_dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, mediump &gt; mediump_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00040">matrix_double4x4_precision.hpp:40</a></div></div>
+<div class="ttc" id="aa00901_html_ga0f34486bb7fec8e5a5b3830b6a6cbeca"><div class="ttname"><a href="a00901.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca">glm::dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, defaultp &gt; dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00020">matrix_double4x4.hpp:20</a></div></div>
+<div class="ttc" id="aa00901_html_gad5a6484b983b74f9d801cab8bc4e6a10"><div class="ttname"><a href="a00901.html#gad5a6484b983b74f9d801cab8bc4e6a10">glm::dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, defaultp &gt; dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00015">matrix_double4x4.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 24 - 12
doc/api/a00149.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x2.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_double4x4_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,28 +69,40 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float2x2.hpp File Reference</div>  </div>
+<div class="title">matrix_double4x4_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00149_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga8dd59e7fc6913ac5d61b86553e9148ba"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga8dd59e7fc6913ac5d61b86553e9148ba">mat2</a></td></tr>
-<tr class="memdesc:ga8dd59e7fc6913ac5d61b86553e9148ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers.  <a href="a00892.html#ga8dd59e7fc6913ac5d61b86553e9148ba">More...</a><br /></td></tr>
-<tr class="separator:ga8dd59e7fc6913ac5d61b86553e9148ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa17ef6bfa4e4f2692348b1460c8efcb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">mat2x2</a></td></tr>
-<tr class="memdesc:gaaa17ef6bfa4e4f2692348b1460c8efcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers.  <a href="a00892.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">More...</a><br /></td></tr>
-<tr class="separator:gaaa17ef6bfa4e4f2692348b1460c8efcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga945254f459860741138bceb74da496b9"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga945254f459860741138bceb74da496b9">highp_dmat4</a></td></tr>
+<tr class="memdesc:ga945254f459860741138bceb74da496b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga945254f459860741138bceb74da496b9">More...</a><br /></td></tr>
+<tr class="separator:ga945254f459860741138bceb74da496b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga118d24a3d12c034e7cccef7bf2f01b8a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga118d24a3d12c034e7cccef7bf2f01b8a">highp_dmat4x4</a></td></tr>
+<tr class="memdesc:ga118d24a3d12c034e7cccef7bf2f01b8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga118d24a3d12c034e7cccef7bf2f01b8a">More...</a><br /></td></tr>
+<tr class="separator:ga118d24a3d12c034e7cccef7bf2f01b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga708bc5b91bbfedd21debac8dcf2a64cd"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga708bc5b91bbfedd21debac8dcf2a64cd">lowp_dmat4</a></td></tr>
+<tr class="memdesc:ga708bc5b91bbfedd21debac8dcf2a64cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga708bc5b91bbfedd21debac8dcf2a64cd">More...</a><br /></td></tr>
+<tr class="separator:ga708bc5b91bbfedd21debac8dcf2a64cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b0413198b7e9f061f7534a221c9dac9"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga5b0413198b7e9f061f7534a221c9dac9">lowp_dmat4x4</a></td></tr>
+<tr class="memdesc:ga5b0413198b7e9f061f7534a221c9dac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga5b0413198b7e9f061f7534a221c9dac9">More...</a><br /></td></tr>
+<tr class="separator:ga5b0413198b7e9f061f7534a221c9dac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf650bc667bf2a0e496b5a9182bc8d378"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gaf650bc667bf2a0e496b5a9182bc8d378">mediump_dmat4</a></td></tr>
+<tr class="memdesc:gaf650bc667bf2a0e496b5a9182bc8d378"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gaf650bc667bf2a0e496b5a9182bc8d378">More...</a><br /></td></tr>
+<tr class="separator:gaf650bc667bf2a0e496b5a9182bc8d378"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5389b3ab32dc0d72bea00057ab6d1dd3"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 4, 4, double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">mediump_dmat4x4</a></td></tr>
+<tr class="memdesc:ga5389b3ab32dc0d72bea00057ab6d1dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">More...</a><br /></td></tr>
+<tr class="separator:ga5389b3ab32dc0d72bea00057ab6d1dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00149_source.html">matrix_float2x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00149_source.html">matrix_double4x4_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 23 - 11
doc/api/a00149_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x2.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_double4x4_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,24 +67,36 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float2x2.hpp</div>  </div>
+<div class="title">matrix_double4x4_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00149.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x4.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, defaultp&gt;              <a class="code" href="a00892.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">mat2x2</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00892.html#ga8dd59e7fc6913ac5d61b86553e9148ba">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, defaultp&gt;              <a class="code" href="a00892.html#ga8dd59e7fc6913ac5d61b86553e9148ba">mat2</a>;</div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga708bc5b91bbfedd21debac8dcf2a64cd">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, lowp&gt;         <a class="code" href="a00902.html#ga708bc5b91bbfedd21debac8dcf2a64cd">lowp_dmat4</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#gaf650bc667bf2a0e496b5a9182bc8d378">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, mediump&gt;      <a class="code" href="a00902.html#gaf650bc667bf2a0e496b5a9182bc8d378">mediump_dmat4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga945254f459860741138bceb74da496b9">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, highp&gt;        <a class="code" href="a00902.html#ga945254f459860741138bceb74da496b9">highp_dmat4</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00902.html#ga5b0413198b7e9f061f7534a221c9dac9">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, lowp&gt;         <a class="code" href="a00902.html#ga5b0413198b7e9f061f7534a221c9dac9">lowp_dmat4x4</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00902.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, mediump&gt;      <a class="code" href="a00902.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">mediump_dmat4x4</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00902.html#ga118d24a3d12c034e7cccef7bf2f01b8a">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;4, 4, double, highp&gt;        <a class="code" href="a00902.html#ga118d24a3d12c034e7cccef7bf2f01b8a">highp_dmat4x4</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_gaaa17ef6bfa4e4f2692348b1460c8efcb"><div class="ttname"><a href="a00892.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">glm::mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, defaultp &gt; mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00015">matrix_float2x2.hpp:15</a></div></div>
-<div class="ttc" id="aa00892_html_ga8dd59e7fc6913ac5d61b86553e9148ba"><div class="ttname"><a href="a00892.html#ga8dd59e7fc6913ac5d61b86553e9148ba">glm::mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, defaultp &gt; mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00020">matrix_float2x2.hpp:20</a></div></div>
+<div class="ttc" id="aa00902_html_ga945254f459860741138bceb74da496b9"><div class="ttname"><a href="a00902.html#ga945254f459860741138bceb74da496b9">glm::highp_dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, highp &gt; highp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00028">matrix_double4x4_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga5389b3ab32dc0d72bea00057ab6d1dd3"><div class="ttname"><a href="a00902.html#ga5389b3ab32dc0d72bea00057ab6d1dd3">glm::mediump_dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, mediump &gt; mediump_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00040">matrix_double4x4_precision.hpp:40</a></div></div>
+<div class="ttc" id="aa00902_html_ga5b0413198b7e9f061f7534a221c9dac9"><div class="ttname"><a href="a00902.html#ga5b0413198b7e9f061f7534a221c9dac9">glm::lowp_dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, lowp &gt; lowp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00034">matrix_double4x4_precision.hpp:34</a></div></div>
+<div class="ttc" id="aa00902_html_gaf650bc667bf2a0e496b5a9182bc8d378"><div class="ttname"><a href="a00902.html#gaf650bc667bf2a0e496b5a9182bc8d378">glm::mediump_dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, mediump &gt; mediump_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00022">matrix_double4x4_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_ga118d24a3d12c034e7cccef7bf2f01b8a"><div class="ttname"><a href="a00902.html#ga118d24a3d12c034e7cccef7bf2f01b8a">glm::highp_dmat4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, highp &gt; highp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00046">matrix_double4x4_precision.hpp:46</a></div></div>
+<div class="ttc" id="aa00902_html_ga708bc5b91bbfedd21debac8dcf2a64cd"><div class="ttname"><a href="a00902.html#ga708bc5b91bbfedd21debac8dcf2a64cd">glm::lowp_dmat4</a></div><div class="ttdeci">mat&lt; 4, 4, double, lowp &gt; lowp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00149_source.html#l00016">matrix_double4x4_precision.hpp:16</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 12 - 24
doc/api/a00152.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x2_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float2x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,40 +69,28 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float2x2_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_float2x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00152_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga4d5a0055544a516237dcdace049b143d"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga4d5a0055544a516237dcdace049b143d">highp_mat2</a></td></tr>
-<tr class="memdesc:ga4d5a0055544a516237dcdace049b143d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00893.html#ga4d5a0055544a516237dcdace049b143d">More...</a><br /></td></tr>
-<tr class="separator:ga4d5a0055544a516237dcdace049b143d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2352ae43b284c9f71446674c0208c05d"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga2352ae43b284c9f71446674c0208c05d">highp_mat2x2</a></td></tr>
-<tr class="memdesc:ga2352ae43b284c9f71446674c0208c05d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00893.html#ga2352ae43b284c9f71446674c0208c05d">More...</a><br /></td></tr>
-<tr class="separator:ga2352ae43b284c9f71446674c0208c05d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae400c4ce1f5f3e1fa12861b2baed331a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gae400c4ce1f5f3e1fa12861b2baed331a">lowp_mat2</a></td></tr>
-<tr class="memdesc:gae400c4ce1f5f3e1fa12861b2baed331a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gae400c4ce1f5f3e1fa12861b2baed331a">More...</a><br /></td></tr>
-<tr class="separator:gae400c4ce1f5f3e1fa12861b2baed331a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2df7cdaf9a571ce7a1b09435f502c694"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga2df7cdaf9a571ce7a1b09435f502c694">lowp_mat2x2</a></td></tr>
-<tr class="memdesc:ga2df7cdaf9a571ce7a1b09435f502c694"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga2df7cdaf9a571ce7a1b09435f502c694">More...</a><br /></td></tr>
-<tr class="separator:ga2df7cdaf9a571ce7a1b09435f502c694"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga745452bd9c89f5ad948203e4fb4b4ea3"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga745452bd9c89f5ad948203e4fb4b4ea3">mediump_mat2</a></td></tr>
-<tr class="memdesc:ga745452bd9c89f5ad948203e4fb4b4ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga745452bd9c89f5ad948203e4fb4b4ea3">More...</a><br /></td></tr>
-<tr class="separator:ga745452bd9c89f5ad948203e4fb4b4ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0cdf57d29f9448864237b2fb3e39aa1d"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga0cdf57d29f9448864237b2fb3e39aa1d">mediump_mat2x2</a></td></tr>
-<tr class="memdesc:ga0cdf57d29f9448864237b2fb3e39aa1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga0cdf57d29f9448864237b2fb3e39aa1d">More...</a><br /></td></tr>
-<tr class="separator:ga0cdf57d29f9448864237b2fb3e39aa1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8dd59e7fc6913ac5d61b86553e9148ba"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga8dd59e7fc6913ac5d61b86553e9148ba">mat2</a></td></tr>
+<tr class="memdesc:ga8dd59e7fc6913ac5d61b86553e9148ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers.  <a href="a00901.html#ga8dd59e7fc6913ac5d61b86553e9148ba">More...</a><br /></td></tr>
+<tr class="separator:ga8dd59e7fc6913ac5d61b86553e9148ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa17ef6bfa4e4f2692348b1460c8efcb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">mat2x2</a></td></tr>
+<tr class="memdesc:gaaa17ef6bfa4e4f2692348b1460c8efcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers.  <a href="a00901.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">More...</a><br /></td></tr>
+<tr class="separator:gaaa17ef6bfa4e4f2692348b1460c8efcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00152_source.html">matrix_float2x2_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00152_source.html">matrix_float2x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 10 - 22
doc/api/a00152_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x2_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_float2x2.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float2x2_precision.hpp</div>  </div>
+<div class="title">matrix_float2x2.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00152.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,26 +77,14 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#gae400c4ce1f5f3e1fa12861b2baed331a">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, lowp&gt;          <a class="code" href="a00893.html#gae400c4ce1f5f3e1fa12861b2baed331a">lowp_mat2</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga745452bd9c89f5ad948203e4fb4b4ea3">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, mediump&gt;       <a class="code" href="a00893.html#ga745452bd9c89f5ad948203e4fb4b4ea3">mediump_mat2</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga4d5a0055544a516237dcdace049b143d">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, highp&gt;         <a class="code" href="a00893.html#ga4d5a0055544a516237dcdace049b143d">highp_mat2</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00893.html#ga2df7cdaf9a571ce7a1b09435f502c694">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, lowp&gt;          <a class="code" href="a00893.html#ga2df7cdaf9a571ce7a1b09435f502c694">lowp_mat2x2</a>;</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00893.html#ga0cdf57d29f9448864237b2fb3e39aa1d">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, mediump&gt;       <a class="code" href="a00893.html#ga0cdf57d29f9448864237b2fb3e39aa1d">mediump_mat2x2</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00893.html#ga2352ae43b284c9f71446674c0208c05d">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, highp&gt;         <a class="code" href="a00893.html#ga2352ae43b284c9f71446674c0208c05d">highp_mat2x2</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, defaultp&gt;              <a class="code" href="a00901.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">mat2x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="a00901.html#ga8dd59e7fc6913ac5d61b86553e9148ba">   20</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, defaultp&gt;              <a class="code" href="a00901.html#ga8dd59e7fc6913ac5d61b86553e9148ba">mat2</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga4d5a0055544a516237dcdace049b143d"><div class="ttname"><a href="a00893.html#ga4d5a0055544a516237dcdace049b143d">glm::highp_mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, highp &gt; highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00028">matrix_float2x2_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga2352ae43b284c9f71446674c0208c05d"><div class="ttname"><a href="a00893.html#ga2352ae43b284c9f71446674c0208c05d">glm::highp_mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, highp &gt; highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00046">matrix_float2x2_precision.hpp:46</a></div></div>
-<div class="ttc" id="aa00893_html_ga745452bd9c89f5ad948203e4fb4b4ea3"><div class="ttname"><a href="a00893.html#ga745452bd9c89f5ad948203e4fb4b4ea3">glm::mediump_mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, mediump &gt; mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00022">matrix_float2x2_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_ga0cdf57d29f9448864237b2fb3e39aa1d"><div class="ttname"><a href="a00893.html#ga0cdf57d29f9448864237b2fb3e39aa1d">glm::mediump_mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, mediump &gt; mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00040">matrix_float2x2_precision.hpp:40</a></div></div>
-<div class="ttc" id="aa00893_html_gae400c4ce1f5f3e1fa12861b2baed331a"><div class="ttname"><a href="a00893.html#gae400c4ce1f5f3e1fa12861b2baed331a">glm::lowp_mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, lowp &gt; lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00016">matrix_float2x2_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_ga2df7cdaf9a571ce7a1b09435f502c694"><div class="ttname"><a href="a00893.html#ga2df7cdaf9a571ce7a1b09435f502c694">glm::lowp_mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, lowp &gt; lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00034">matrix_float2x2_precision.hpp:34</a></div></div>
+<div class="ttc" id="aa00901_html_gaaa17ef6bfa4e4f2692348b1460c8efcb"><div class="ttname"><a href="a00901.html#gaaa17ef6bfa4e4f2692348b1460c8efcb">glm::mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, defaultp &gt; mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00015">matrix_float2x2.hpp:15</a></div></div>
+<div class="ttc" id="aa00901_html_ga8dd59e7fc6913ac5d61b86553e9148ba"><div class="ttname"><a href="a00901.html#ga8dd59e7fc6913ac5d61b86553e9148ba">glm::mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, defaultp &gt; mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00152_source.html#l00020">matrix_float2x2.hpp:20</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 24 - 9
doc/api/a00155.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x3.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float2x2_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,40 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float2x3.hpp File Reference</div>  </div>
+<div class="title">matrix_float2x2_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00155_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga493ab21243abe564b3f7d381e677d29a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga493ab21243abe564b3f7d381e677d29a">mat2x3</a></td></tr>
-<tr class="memdesc:ga493ab21243abe564b3f7d381e677d29a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers.  <a href="a00892.html#ga493ab21243abe564b3f7d381e677d29a">More...</a><br /></td></tr>
-<tr class="separator:ga493ab21243abe564b3f7d381e677d29a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d5a0055544a516237dcdace049b143d"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga4d5a0055544a516237dcdace049b143d">highp_mat2</a></td></tr>
+<tr class="memdesc:ga4d5a0055544a516237dcdace049b143d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00902.html#ga4d5a0055544a516237dcdace049b143d">More...</a><br /></td></tr>
+<tr class="separator:ga4d5a0055544a516237dcdace049b143d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2352ae43b284c9f71446674c0208c05d"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga2352ae43b284c9f71446674c0208c05d">highp_mat2x2</a></td></tr>
+<tr class="memdesc:ga2352ae43b284c9f71446674c0208c05d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00902.html#ga2352ae43b284c9f71446674c0208c05d">More...</a><br /></td></tr>
+<tr class="separator:ga2352ae43b284c9f71446674c0208c05d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae400c4ce1f5f3e1fa12861b2baed331a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gae400c4ce1f5f3e1fa12861b2baed331a">lowp_mat2</a></td></tr>
+<tr class="memdesc:gae400c4ce1f5f3e1fa12861b2baed331a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#gae400c4ce1f5f3e1fa12861b2baed331a">More...</a><br /></td></tr>
+<tr class="separator:gae400c4ce1f5f3e1fa12861b2baed331a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2df7cdaf9a571ce7a1b09435f502c694"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga2df7cdaf9a571ce7a1b09435f502c694">lowp_mat2x2</a></td></tr>
+<tr class="memdesc:ga2df7cdaf9a571ce7a1b09435f502c694"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga2df7cdaf9a571ce7a1b09435f502c694">More...</a><br /></td></tr>
+<tr class="separator:ga2df7cdaf9a571ce7a1b09435f502c694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga745452bd9c89f5ad948203e4fb4b4ea3"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga745452bd9c89f5ad948203e4fb4b4ea3">mediump_mat2</a></td></tr>
+<tr class="memdesc:ga745452bd9c89f5ad948203e4fb4b4ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga745452bd9c89f5ad948203e4fb4b4ea3">More...</a><br /></td></tr>
+<tr class="separator:ga745452bd9c89f5ad948203e4fb4b4ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0cdf57d29f9448864237b2fb3e39aa1d"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 2, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga0cdf57d29f9448864237b2fb3e39aa1d">mediump_mat2x2</a></td></tr>
+<tr class="memdesc:ga0cdf57d29f9448864237b2fb3e39aa1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga0cdf57d29f9448864237b2fb3e39aa1d">More...</a><br /></td></tr>
+<tr class="separator:ga0cdf57d29f9448864237b2fb3e39aa1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00155_source.html">matrix_float2x3.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00155_source.html">matrix_float2x2_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 23 - 8
doc/api/a00155_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x3.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_float2x2_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,36 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float2x3.hpp</div>  </div>
+<div class="title">matrix_float2x2_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00155.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x2.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga493ab21243abe564b3f7d381e677d29a">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, defaultp&gt;              <a class="code" href="a00892.html#ga493ab21243abe564b3f7d381e677d29a">mat2x3</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#gae400c4ce1f5f3e1fa12861b2baed331a">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, lowp&gt;          <a class="code" href="a00902.html#gae400c4ce1f5f3e1fa12861b2baed331a">lowp_mat2</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga745452bd9c89f5ad948203e4fb4b4ea3">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, mediump&gt;       <a class="code" href="a00902.html#ga745452bd9c89f5ad948203e4fb4b4ea3">mediump_mat2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga4d5a0055544a516237dcdace049b143d">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, highp&gt;         <a class="code" href="a00902.html#ga4d5a0055544a516237dcdace049b143d">highp_mat2</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00902.html#ga2df7cdaf9a571ce7a1b09435f502c694">   34</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, lowp&gt;          <a class="code" href="a00902.html#ga2df7cdaf9a571ce7a1b09435f502c694">lowp_mat2x2</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00902.html#ga0cdf57d29f9448864237b2fb3e39aa1d">   40</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, mediump&gt;       <a class="code" href="a00902.html#ga0cdf57d29f9448864237b2fb3e39aa1d">mediump_mat2x2</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00902.html#ga2352ae43b284c9f71446674c0208c05d">   46</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 2, float, highp&gt;         <a class="code" href="a00902.html#ga2352ae43b284c9f71446674c0208c05d">highp_mat2x2</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga493ab21243abe564b3f7d381e677d29a"><div class="ttname"><a href="a00892.html#ga493ab21243abe564b3f7d381e677d29a">glm::mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, defaultp &gt; mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00015">matrix_float2x3.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga2352ae43b284c9f71446674c0208c05d"><div class="ttname"><a href="a00902.html#ga2352ae43b284c9f71446674c0208c05d">glm::highp_mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, highp &gt; highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00046">matrix_float2x2_precision.hpp:46</a></div></div>
+<div class="ttc" id="aa00902_html_gae400c4ce1f5f3e1fa12861b2baed331a"><div class="ttname"><a href="a00902.html#gae400c4ce1f5f3e1fa12861b2baed331a">glm::lowp_mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, lowp &gt; lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00016">matrix_float2x2_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_ga4d5a0055544a516237dcdace049b143d"><div class="ttname"><a href="a00902.html#ga4d5a0055544a516237dcdace049b143d">glm::highp_mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, highp &gt; highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00028">matrix_float2x2_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_ga0cdf57d29f9448864237b2fb3e39aa1d"><div class="ttname"><a href="a00902.html#ga0cdf57d29f9448864237b2fb3e39aa1d">glm::mediump_mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, mediump &gt; mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00040">matrix_float2x2_precision.hpp:40</a></div></div>
+<div class="ttc" id="aa00902_html_ga745452bd9c89f5ad948203e4fb4b4ea3"><div class="ttname"><a href="a00902.html#ga745452bd9c89f5ad948203e4fb4b4ea3">glm::mediump_mat2</a></div><div class="ttdeci">mat&lt; 2, 2, float, mediump &gt; mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00022">matrix_float2x2_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_ga2df7cdaf9a571ce7a1b09435f502c694"><div class="ttname"><a href="a00902.html#ga2df7cdaf9a571ce7a1b09435f502c694">glm::lowp_mat2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, lowp &gt; lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00155_source.html#l00034">matrix_float2x2_precision.hpp:34</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00158.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x3_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float2x3.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float2x3_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_float2x3.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00158_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga7a0e3fe41512b0494e598f5c58722f19"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga7a0e3fe41512b0494e598f5c58722f19">highp_mat2x3</a></td></tr>
-<tr class="memdesc:ga7a0e3fe41512b0494e598f5c58722f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00893.html#ga7a0e3fe41512b0494e598f5c58722f19">More...</a><br /></td></tr>
-<tr class="separator:ga7a0e3fe41512b0494e598f5c58722f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3eee3a74d0f1de8635d846dfb29ec4bb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">lowp_mat2x3</a></td></tr>
-<tr class="memdesc:ga3eee3a74d0f1de8635d846dfb29ec4bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">More...</a><br /></td></tr>
-<tr class="separator:ga3eee3a74d0f1de8635d846dfb29ec4bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga497d513d552d927537d61fa11e3701ab"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga497d513d552d927537d61fa11e3701ab">mediump_mat2x3</a></td></tr>
-<tr class="memdesc:ga497d513d552d927537d61fa11e3701ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga497d513d552d927537d61fa11e3701ab">More...</a><br /></td></tr>
-<tr class="separator:ga497d513d552d927537d61fa11e3701ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga493ab21243abe564b3f7d381e677d29a"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga493ab21243abe564b3f7d381e677d29a">mat2x3</a></td></tr>
+<tr class="memdesc:ga493ab21243abe564b3f7d381e677d29a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers.  <a href="a00901.html#ga493ab21243abe564b3f7d381e677d29a">More...</a><br /></td></tr>
+<tr class="separator:ga493ab21243abe564b3f7d381e677d29a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00158_source.html">matrix_float2x3_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00158_source.html">matrix_float2x3.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00158_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x3_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_float2x3.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float2x3_precision.hpp</div>  </div>
+<div class="title">matrix_float2x3.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00158.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, lowp&gt;          <a class="code" href="a00893.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">lowp_mat2x3</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#ga497d513d552d927537d61fa11e3701ab">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, mediump&gt;       <a class="code" href="a00893.html#ga497d513d552d927537d61fa11e3701ab">mediump_mat2x3</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga7a0e3fe41512b0494e598f5c58722f19">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, highp&gt;         <a class="code" href="a00893.html#ga7a0e3fe41512b0494e598f5c58722f19">highp_mat2x3</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga493ab21243abe564b3f7d381e677d29a">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, defaultp&gt;              <a class="code" href="a00901.html#ga493ab21243abe564b3f7d381e677d29a">mat2x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga3eee3a74d0f1de8635d846dfb29ec4bb"><div class="ttname"><a href="a00893.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">glm::lowp_mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, lowp &gt; lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00158_source.html#l00016">matrix_float2x3_precision.hpp:16</a></div></div>
-<div class="ttc" id="aa00893_html_ga7a0e3fe41512b0494e598f5c58722f19"><div class="ttname"><a href="a00893.html#ga7a0e3fe41512b0494e598f5c58722f19">glm::highp_mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, highp &gt; highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00158_source.html#l00028">matrix_float2x3_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_ga497d513d552d927537d61fa11e3701ab"><div class="ttname"><a href="a00893.html#ga497d513d552d927537d61fa11e3701ab">glm::mediump_mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, mediump &gt; mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00158_source.html#l00022">matrix_float2x3_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00901_html_ga493ab21243abe564b3f7d381e677d29a"><div class="ttname"><a href="a00901.html#ga493ab21243abe564b3f7d381e677d29a">glm::mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, defaultp &gt; mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00158_source.html#l00015">matrix_float2x3.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 9
doc/api/a00161.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x4.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float2x3_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float2x4.hpp File Reference</div>  </div>
+<div class="title">matrix_float2x3_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00161_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga8e879b57ddd81e5bf5a88929844e8b40"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga8e879b57ddd81e5bf5a88929844e8b40">mat2x4</a></td></tr>
-<tr class="memdesc:ga8e879b57ddd81e5bf5a88929844e8b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers.  <a href="a00892.html#ga8e879b57ddd81e5bf5a88929844e8b40">More...</a><br /></td></tr>
-<tr class="separator:ga8e879b57ddd81e5bf5a88929844e8b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a0e3fe41512b0494e598f5c58722f19"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga7a0e3fe41512b0494e598f5c58722f19">highp_mat2x3</a></td></tr>
+<tr class="memdesc:ga7a0e3fe41512b0494e598f5c58722f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00902.html#ga7a0e3fe41512b0494e598f5c58722f19">More...</a><br /></td></tr>
+<tr class="separator:ga7a0e3fe41512b0494e598f5c58722f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3eee3a74d0f1de8635d846dfb29ec4bb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">lowp_mat2x3</a></td></tr>
+<tr class="memdesc:ga3eee3a74d0f1de8635d846dfb29ec4bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">More...</a><br /></td></tr>
+<tr class="separator:ga3eee3a74d0f1de8635d846dfb29ec4bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga497d513d552d927537d61fa11e3701ab"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 3, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga497d513d552d927537d61fa11e3701ab">mediump_mat2x3</a></td></tr>
+<tr class="memdesc:ga497d513d552d927537d61fa11e3701ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#ga497d513d552d927537d61fa11e3701ab">More...</a><br /></td></tr>
+<tr class="separator:ga497d513d552d927537d61fa11e3701ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00161_source.html">matrix_float2x4.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00161_source.html">matrix_float2x3_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 8
doc/api/a00161_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x4.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_float2x3_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float2x4.hpp</div>  </div>
+<div class="title">matrix_float2x3_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00161.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x3.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga8e879b57ddd81e5bf5a88929844e8b40">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, defaultp&gt;              <a class="code" href="a00892.html#ga8e879b57ddd81e5bf5a88929844e8b40">mat2x4</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, lowp&gt;          <a class="code" href="a00902.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">lowp_mat2x3</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#ga497d513d552d927537d61fa11e3701ab">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, mediump&gt;       <a class="code" href="a00902.html#ga497d513d552d927537d61fa11e3701ab">mediump_mat2x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga7a0e3fe41512b0494e598f5c58722f19">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 3, float, highp&gt;         <a class="code" href="a00902.html#ga7a0e3fe41512b0494e598f5c58722f19">highp_mat2x3</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga8e879b57ddd81e5bf5a88929844e8b40"><div class="ttname"><a href="a00892.html#ga8e879b57ddd81e5bf5a88929844e8b40">glm::mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, defaultp &gt; mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00161_source.html#l00015">matrix_float2x4.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga497d513d552d927537d61fa11e3701ab"><div class="ttname"><a href="a00902.html#ga497d513d552d927537d61fa11e3701ab">glm::mediump_mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, mediump &gt; mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00161_source.html#l00022">matrix_float2x3_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_ga3eee3a74d0f1de8635d846dfb29ec4bb"><div class="ttname"><a href="a00902.html#ga3eee3a74d0f1de8635d846dfb29ec4bb">glm::lowp_mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, lowp &gt; lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00161_source.html#l00016">matrix_float2x3_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00902_html_ga7a0e3fe41512b0494e598f5c58722f19"><div class="ttname"><a href="a00902.html#ga7a0e3fe41512b0494e598f5c58722f19">glm::highp_mat2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, highp &gt; highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00161_source.html#l00028">matrix_float2x3_precision.hpp:28</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00164.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x4_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float2x4.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float2x4_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_float2x4.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00164_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">highp_mat2x4</a></td></tr>
-<tr class="memdesc:ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00893.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">More...</a><br /></td></tr>
-<tr class="separator:ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade27f8324a16626cbce5d3e7da66b070"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gade27f8324a16626cbce5d3e7da66b070">lowp_mat2x4</a></td></tr>
-<tr class="memdesc:gade27f8324a16626cbce5d3e7da66b070"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gade27f8324a16626cbce5d3e7da66b070">More...</a><br /></td></tr>
-<tr class="separator:gade27f8324a16626cbce5d3e7da66b070"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7b75ea2e09fa686a79bbe9b6ca68ee5"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">mediump_mat2x4</a></td></tr>
-<tr class="memdesc:gae7b75ea2e09fa686a79bbe9b6ca68ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">More...</a><br /></td></tr>
-<tr class="separator:gae7b75ea2e09fa686a79bbe9b6ca68ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e879b57ddd81e5bf5a88929844e8b40"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga8e879b57ddd81e5bf5a88929844e8b40">mat2x4</a></td></tr>
+<tr class="memdesc:ga8e879b57ddd81e5bf5a88929844e8b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers.  <a href="a00901.html#ga8e879b57ddd81e5bf5a88929844e8b40">More...</a><br /></td></tr>
+<tr class="separator:ga8e879b57ddd81e5bf5a88929844e8b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00164_source.html">matrix_float2x4_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00164_source.html">matrix_float2x4.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 13
doc/api/a00164_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float2x4_precision.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_float2x4.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float2x4_precision.hpp</div>  </div>
+<div class="title">matrix_float2x4.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00164.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
@@ -77,17 +77,11 @@ $(function() {
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00893.html#gade27f8324a16626cbce5d3e7da66b070">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, lowp&gt;          <a class="code" href="a00893.html#gade27f8324a16626cbce5d3e7da66b070">lowp_mat2x4</a>;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00893.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, mediump&gt;       <a class="code" href="a00893.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">mediump_mat2x4</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00893.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, highp&gt;         <a class="code" href="a00893.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">highp_mat2x4</a>;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00901.html#ga8e879b57ddd81e5bf5a88929844e8b40">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, defaultp&gt;              <a class="code" href="a00901.html#ga8e879b57ddd81e5bf5a88929844e8b40">mat2x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00893_html_ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><div class="ttname"><a href="a00893.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">glm::highp_mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, highp &gt; highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00164_source.html#l00028">matrix_float2x4_precision.hpp:28</a></div></div>
-<div class="ttc" id="aa00893_html_gae7b75ea2e09fa686a79bbe9b6ca68ee5"><div class="ttname"><a href="a00893.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">glm::mediump_mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, mediump &gt; mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00164_source.html#l00022">matrix_float2x4_precision.hpp:22</a></div></div>
-<div class="ttc" id="aa00893_html_gade27f8324a16626cbce5d3e7da66b070"><div class="ttname"><a href="a00893.html#gade27f8324a16626cbce5d3e7da66b070">glm::lowp_mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, lowp &gt; lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00164_source.html#l00016">matrix_float2x4_precision.hpp:16</a></div></div>
+<div class="ttc" id="aa00901_html_ga8e879b57ddd81e5bf5a88929844e8b40"><div class="ttname"><a href="a00901.html#ga8e879b57ddd81e5bf5a88929844e8b40">glm::mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, defaultp &gt; mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00164_source.html#l00015">matrix_float2x4.hpp:15</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 15 - 9
doc/api/a00167.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float3x2.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float2x4_precision.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,25 +69,31 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float3x2.hpp File Reference</div>  </div>
+<div class="title">matrix_float2x4_precision.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00167_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga2c27aea32de57d58aec8e92d5d2181e2"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00892.html#ga2c27aea32de57d58aec8e92d5d2181e2">mat3x2</a></td></tr>
-<tr class="memdesc:ga2c27aea32de57d58aec8e92d5d2181e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of single-precision floating-point numbers.  <a href="a00892.html#ga2c27aea32de57d58aec8e92d5d2181e2">More...</a><br /></td></tr>
-<tr class="separator:ga2c27aea32de57d58aec8e92d5d2181e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">highp_mat2x4</a></td></tr>
+<tr class="memdesc:ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00902.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">More...</a><br /></td></tr>
+<tr class="separator:ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade27f8324a16626cbce5d3e7da66b070"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gade27f8324a16626cbce5d3e7da66b070">lowp_mat2x4</a></td></tr>
+<tr class="memdesc:gade27f8324a16626cbce5d3e7da66b070"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00902.html#gade27f8324a16626cbce5d3e7da66b070">More...</a><br /></td></tr>
+<tr class="separator:gade27f8324a16626cbce5d3e7da66b070"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7b75ea2e09fa686a79bbe9b6ca68ee5"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 2, 4, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00902.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">mediump_mat2x4</a></td></tr>
+<tr class="memdesc:gae7b75ea2e09fa686a79bbe9b6ca68ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00902.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">More...</a><br /></td></tr>
+<tr class="separator:gae7b75ea2e09fa686a79bbe9b6ca68ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00167_source.html">matrix_float3x2.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00167_source.html">matrix_float2x4_precision.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 14 - 8
doc/api/a00167_source.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float3x2.hpp Source File</title>
+<title>1.0.2 API documentation: matrix_float2x4_precision.hpp Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -67,21 +67,27 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">matrix_float3x2.hpp</div>  </div>
+<div class="title">matrix_float2x4_precision.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
 <a href="a00167.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x4.hpp&quot;</span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span>glm</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
 <div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="a00892.html#ga2c27aea32de57d58aec8e92d5d2181e2">   15</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;3, 2, float, defaultp&gt;                      <a class="code" href="a00892.html#ga2c27aea32de57d58aec8e92d5d2181e2">mat3x2</a>;</div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="a00902.html#gade27f8324a16626cbce5d3e7da66b070">   16</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, lowp&gt;          <a class="code" href="a00902.html#gade27f8324a16626cbce5d3e7da66b070">lowp_mat2x4</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="a00902.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">   22</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, mediump&gt;       <a class="code" href="a00902.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">mediump_mat2x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="a00902.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">   28</a></span>&#160;        <span class="keyword">typedef</span> mat&lt;2, 4, float, highp&gt;         <a class="code" href="a00902.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">highp_mat2x4</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}<span class="comment">//namespace glm</span></div>
 </div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aa00892_html_ga2c27aea32de57d58aec8e92d5d2181e2"><div class="ttname"><a href="a00892.html#ga2c27aea32de57d58aec8e92d5d2181e2">glm::mat3x2</a></div><div class="ttdeci">mat&lt; 3, 2, float, defaultp &gt; mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of single-precision floating-point numbers.</div><div class="ttdef"><b>Definition:</b> <a href="a00167_source.html#l00015">matrix_float3x2.hpp:15</a></div></div>
+<div class="ttc" id="aa00902_html_ga61f36a81f2ed1b5f9fc8bc3b26faec8f"><div class="ttname"><a href="a00902.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f">glm::highp_mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, highp &gt; highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...</div><div class="ttdef"><b>Definition:</b> <a href="a00167_source.html#l00028">matrix_float2x4_precision.hpp:28</a></div></div>
+<div class="ttc" id="aa00902_html_gae7b75ea2e09fa686a79bbe9b6ca68ee5"><div class="ttname"><a href="a00902.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5">glm::mediump_mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, mediump &gt; mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...</div><div class="ttdef"><b>Definition:</b> <a href="a00167_source.html#l00022">matrix_float2x4_precision.hpp:22</a></div></div>
+<div class="ttc" id="aa00902_html_gade27f8324a16626cbce5d3e7da66b070"><div class="ttname"><a href="a00902.html#gade27f8324a16626cbce5d3e7da66b070">glm::lowp_mat2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, lowp &gt; lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...</div><div class="ttdef"><b>Definition:</b> <a href="a00167_source.html#l00016">matrix_float2x4_precision.hpp:16</a></div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">

+ 9 - 15
doc/api/a00170.html

@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.18"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>1.0.0 API documentation: matrix_float3x2_precision.hpp File Reference</title>
+<title>1.0.2 API documentation: matrix_float3x2.hpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
   <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">1.0.0 API documentation
+   <div id="projectname">1.0.2 API documentation
    </div>
   </td>
  </tr>
@@ -69,31 +69,25 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a>  </div>
   <div class="headertitle">
-<div class="title">matrix_float3x2_precision.hpp File Reference</div>  </div>
+<div class="title">matrix_float3x2.hpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="a00889.html">Core features</a>  
+<p><a class="el" href="a00898.html">Core features</a>  
 <a href="#details">More...</a></p>
 
 <p><a href="a00170_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga1eda47a00027ec440eac05d63739c71b"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga1eda47a00027ec440eac05d63739c71b">highp_mat3x2</a></td></tr>
-<tr class="memdesc:ga1eda47a00027ec440eac05d63739c71b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.  <a href="a00893.html#ga1eda47a00027ec440eac05d63739c71b">More...</a><br /></td></tr>
-<tr class="separator:ga1eda47a00027ec440eac05d63739c71b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabf6cf90fd31efe25c94965507e98390"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#gaabf6cf90fd31efe25c94965507e98390">lowp_mat3x2</a></td></tr>
-<tr class="memdesc:gaabf6cf90fd31efe25c94965507e98390"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.  <a href="a00893.html#gaabf6cf90fd31efe25c94965507e98390">More...</a><br /></td></tr>
-<tr class="separator:gaabf6cf90fd31efe25c94965507e98390"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e1c9ee65fef547bde793e69723e24eb"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00893.html#ga9e1c9ee65fef547bde793e69723e24eb">mediump_mat3x2</a></td></tr>
-<tr class="memdesc:ga9e1c9ee65fef547bde793e69723e24eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.  <a href="a00893.html#ga9e1c9ee65fef547bde793e69723e24eb">More...</a><br /></td></tr>
-<tr class="separator:ga9e1c9ee65fef547bde793e69723e24eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c27aea32de57d58aec8e92d5d2181e2"><td class="memItemLeft" align="right" valign="top">typedef mat&lt; 3, 2, float, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00901.html#ga2c27aea32de57d58aec8e92d5d2181e2">mat3x2</a></td></tr>
+<tr class="memdesc:ga2c27aea32de57d58aec8e92d5d2181e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of single-precision floating-point numbers.  <a href="a00901.html#ga2c27aea32de57d58aec8e92d5d2181e2">More...</a><br /></td></tr>
+<tr class="separator:ga2c27aea32de57d58aec8e92d5d2181e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p><a class="el" href="a00889.html">Core features</a> </p>
+<div class="textblock"><p><a class="el" href="a00898.html">Core features</a> </p>
 
-<p class="definition">Definition in file <a class="el" href="a00170_source.html">matrix_float3x2_precision.hpp</a>.</p>
+<p class="definition">Definition in file <a class="el" href="a00170_source.html">matrix_float3x2.hpp</a>.</p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä