master
ブランチ master
VulkanExample / dep / include / glm / gtc / type_aligned.hpp
70.8 KB、1378行 生 Blame 履歴
1/// @ref gtc_type_aligned
2/// @file glm/gtc/type_aligned.hpp
3///
4/// @see core (dependence)
5///
6/// @defgroup gtc_type_aligned GLM_GTC_type_aligned
7/// @ingroup gtc
8///
9/// Include <glm/gtc/type_aligned.hpp> to use the features of this extension.
10///
11/// Aligned types allowing SIMD optimizations of vectors and matrices types
12
13#pragma once
14
15#if (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)
16# error "GLM: Aligned gentypes require to enable C++ language extensions. Define GLM_FORCE_ALIGNED_GENTYPES before including GLM headers to use aligned types."
17#endif
18
19#if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20# pragma message("GLM: GLM_GTC_type_aligned extension included")
21#endif
22
23#include "../mat4x4.hpp"
24#include "../mat4x3.hpp"
25#include "../mat4x2.hpp"
26#include "../mat3x4.hpp"
27#include "../mat3x3.hpp"
28#include "../mat3x2.hpp"
29#include "../mat2x4.hpp"
30#include "../mat2x3.hpp"
31#include "../mat2x2.hpp"
32#include "../gtc/quaternion.hpp"
33#include "../gtc/vec1.hpp"
34#include "../vec2.hpp"
35#include "../vec3.hpp"
36#include "../vec4.hpp"
37
38namespace glm
39{
40 /// @addtogroup gtc_type_aligned
41 /// @{
42
43 // -- *vec1 --
44
45 /// 1 component vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
46 typedef vec<1, float, aligned_highp> aligned_highp_vec1;
47
48 /// 1 component vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
49 typedef vec<1, float, aligned_mediump> aligned_mediump_vec1;
50
51 /// 1 component vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
52 typedef vec<1, float, aligned_lowp> aligned_lowp_vec1;
53
54 /// 1 component vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
55 typedef vec<1, double, aligned_highp> aligned_highp_dvec1;
56
57 /// 1 component vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
58 typedef vec<1, double, aligned_mediump> aligned_mediump_dvec1;
59
60 /// 1 component vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
61 typedef vec<1, double, aligned_lowp> aligned_lowp_dvec1;
62
63 /// 1 component vector aligned in memory of signed integer numbers.
64 typedef vec<1, int, aligned_highp> aligned_highp_ivec1;
65
66 /// 1 component vector aligned in memory of signed integer numbers.
67 typedef vec<1, int, aligned_mediump> aligned_mediump_ivec1;
68
69 /// 1 component vector aligned in memory of signed integer numbers.
70 typedef vec<1, int, aligned_lowp> aligned_lowp_ivec1;
71
72 /// 1 component vector aligned in memory of unsigned integer numbers.
73 typedef vec<1, uint, aligned_highp> aligned_highp_uvec1;
74
75 /// 1 component vector aligned in memory of unsigned integer numbers.
76 typedef vec<1, uint, aligned_mediump> aligned_mediump_uvec1;
77
78 /// 1 component vector aligned in memory of unsigned integer numbers.
79 typedef vec<1, uint, aligned_lowp> aligned_lowp_uvec1;
80
81 /// 1 component vector aligned in memory of bool values.
82 typedef vec<1, bool, aligned_highp> aligned_highp_bvec1;
83
84 /// 1 component vector aligned in memory of bool values.
85 typedef vec<1, bool, aligned_mediump> aligned_mediump_bvec1;
86
87 /// 1 component vector aligned in memory of bool values.
88 typedef vec<1, bool, aligned_lowp> aligned_lowp_bvec1;
89
90 /// 1 component vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
91 typedef vec<1, float, packed_highp> packed_highp_vec1;
92
93 /// 1 component vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
94 typedef vec<1, float, packed_mediump> packed_mediump_vec1;
95
96 /// 1 component vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
97 typedef vec<1, float, packed_lowp> packed_lowp_vec1;
98
99 /// 1 component vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
100 typedef vec<1, double, packed_highp> packed_highp_dvec1;
101
102 /// 1 component vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
103 typedef vec<1, double, packed_mediump> packed_mediump_dvec1;
104
105 /// 1 component vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
106 typedef vec<1, double, packed_lowp> packed_lowp_dvec1;
107
108 /// 1 component vector tightly packed in memory of signed integer numbers.
109 typedef vec<1, int, packed_highp> packed_highp_ivec1;
110
111 /// 1 component vector tightly packed in memory of signed integer numbers.
112 typedef vec<1, int, packed_mediump> packed_mediump_ivec1;
113
114 /// 1 component vector tightly packed in memory of signed integer numbers.
115 typedef vec<1, int, packed_lowp> packed_lowp_ivec1;
116
117 /// 1 component vector tightly packed in memory of unsigned integer numbers.
118 typedef vec<1, uint, packed_highp> packed_highp_uvec1;
119
120 /// 1 component vector tightly packed in memory of unsigned integer numbers.
121 typedef vec<1, uint, packed_mediump> packed_mediump_uvec1;
122
123 /// 1 component vector tightly packed in memory of unsigned integer numbers.
124 typedef vec<1, uint, packed_lowp> packed_lowp_uvec1;
125
126 /// 1 component vector tightly packed in memory of bool values.
127 typedef vec<1, bool, packed_highp> packed_highp_bvec1;
128
129 /// 1 component vector tightly packed in memory of bool values.
130 typedef vec<1, bool, packed_mediump> packed_mediump_bvec1;
131
132 /// 1 component vector tightly packed in memory of bool values.
133 typedef vec<1, bool, packed_lowp> packed_lowp_bvec1;
134
135 // -- *vec2 --
136
137 /// 2 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
138 typedef vec<2, float, aligned_highp> aligned_highp_vec2;
139
140 /// 2 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
141 typedef vec<2, float, aligned_mediump> aligned_mediump_vec2;
142
143 /// 2 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
144 typedef vec<2, float, aligned_lowp> aligned_lowp_vec2;
145
146 /// 2 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
147 typedef vec<2, double, aligned_highp> aligned_highp_dvec2;
148
149 /// 2 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
150 typedef vec<2, double, aligned_mediump> aligned_mediump_dvec2;
151
152 /// 2 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
153 typedef vec<2, double, aligned_lowp> aligned_lowp_dvec2;
154
155 /// 2 components vector aligned in memory of signed integer numbers.
156 typedef vec<2, int, aligned_highp> aligned_highp_ivec2;
157
158 /// 2 components vector aligned in memory of signed integer numbers.
159 typedef vec<2, int, aligned_mediump> aligned_mediump_ivec2;
160
161 /// 2 components vector aligned in memory of signed integer numbers.
162 typedef vec<2, int, aligned_lowp> aligned_lowp_ivec2;
163
164 /// 2 components vector aligned in memory of unsigned integer numbers.
165 typedef vec<2, uint, aligned_highp> aligned_highp_uvec2;
166
167 /// 2 components vector aligned in memory of unsigned integer numbers.
168 typedef vec<2, uint, aligned_mediump> aligned_mediump_uvec2;
169
170 /// 2 components vector aligned in memory of unsigned integer numbers.
171 typedef vec<2, uint, aligned_lowp> aligned_lowp_uvec2;
172
173 /// 2 components vector aligned in memory of bool values.
174 typedef vec<2, bool, aligned_highp> aligned_highp_bvec2;
175
176 /// 2 components vector aligned in memory of bool values.
177 typedef vec<2, bool, aligned_mediump> aligned_mediump_bvec2;
178
179 /// 2 components vector aligned in memory of bool values.
180 typedef vec<2, bool, aligned_lowp> aligned_lowp_bvec2;
181
182 /// 2 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
183 typedef vec<2, float, packed_highp> packed_highp_vec2;
184
185 /// 2 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
186 typedef vec<2, float, packed_mediump> packed_mediump_vec2;
187
188 /// 2 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
189 typedef vec<2, float, packed_lowp> packed_lowp_vec2;
190
191 /// 2 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
192 typedef vec<2, double, packed_highp> packed_highp_dvec2;
193
194 /// 2 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
195 typedef vec<2, double, packed_mediump> packed_mediump_dvec2;
196
197 /// 2 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
198 typedef vec<2, double, packed_lowp> packed_lowp_dvec2;
199
200 /// 2 components vector tightly packed in memory of signed integer numbers.
201 typedef vec<2, int, packed_highp> packed_highp_ivec2;
202
203 /// 2 components vector tightly packed in memory of signed integer numbers.
204 typedef vec<2, int, packed_mediump> packed_mediump_ivec2;
205
206 /// 2 components vector tightly packed in memory of signed integer numbers.
207 typedef vec<2, int, packed_lowp> packed_lowp_ivec2;
208
209 /// 2 components vector tightly packed in memory of unsigned integer numbers.
210 typedef vec<2, uint, packed_highp> packed_highp_uvec2;
211
212 /// 2 components vector tightly packed in memory of unsigned integer numbers.
213 typedef vec<2, uint, packed_mediump> packed_mediump_uvec2;
214
215 /// 2 components vector tightly packed in memory of unsigned integer numbers.
216 typedef vec<2, uint, packed_lowp> packed_lowp_uvec2;
217
218 /// 2 components vector tightly packed in memory of bool values.
219 typedef vec<2, bool, packed_highp> packed_highp_bvec2;
220
221 /// 2 components vector tightly packed in memory of bool values.
222 typedef vec<2, bool, packed_mediump> packed_mediump_bvec2;
223
224 /// 2 components vector tightly packed in memory of bool values.
225 typedef vec<2, bool, packed_lowp> packed_lowp_bvec2;
226
227 // -- *vec3 --
228
229 /// 3 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
230 typedef vec<3, float, aligned_highp> aligned_highp_vec3;
231
232 /// 3 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
233 typedef vec<3, float, aligned_mediump> aligned_mediump_vec3;
234
235 /// 3 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
236 typedef vec<3, float, aligned_lowp> aligned_lowp_vec3;
237
238 /// 3 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
239 typedef vec<3, double, aligned_highp> aligned_highp_dvec3;
240
241 /// 3 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
242 typedef vec<3, double, aligned_mediump> aligned_mediump_dvec3;
243
244 /// 3 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
245 typedef vec<3, double, aligned_lowp> aligned_lowp_dvec3;
246
247 /// 3 components vector aligned in memory of signed integer numbers.
248 typedef vec<3, int, aligned_highp> aligned_highp_ivec3;
249
250 /// 3 components vector aligned in memory of signed integer numbers.
251 typedef vec<3, int, aligned_mediump> aligned_mediump_ivec3;
252
253 /// 3 components vector aligned in memory of signed integer numbers.
254 typedef vec<3, int, aligned_lowp> aligned_lowp_ivec3;
255
256 /// 3 components vector aligned in memory of unsigned integer numbers.
257 typedef vec<3, uint, aligned_highp> aligned_highp_uvec3;
258
259 /// 3 components vector aligned in memory of unsigned integer numbers.
260 typedef vec<3, uint, aligned_mediump> aligned_mediump_uvec3;
261
262 /// 3 components vector aligned in memory of unsigned integer numbers.
263 typedef vec<3, uint, aligned_lowp> aligned_lowp_uvec3;
264
265 /// 3 components vector aligned in memory of bool values.
266 typedef vec<3, bool, aligned_highp> aligned_highp_bvec3;
267
268 /// 3 components vector aligned in memory of bool values.
269 typedef vec<3, bool, aligned_mediump> aligned_mediump_bvec3;
270
271 /// 3 components vector aligned in memory of bool values.
272 typedef vec<3, bool, aligned_lowp> aligned_lowp_bvec3;
273
274 /// 3 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
275 typedef vec<3, float, packed_highp> packed_highp_vec3;
276
277 /// 3 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
278 typedef vec<3, float, packed_mediump> packed_mediump_vec3;
279
280 /// 3 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
281 typedef vec<3, float, packed_lowp> packed_lowp_vec3;
282
283 /// 3 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
284 typedef vec<3, double, packed_highp> packed_highp_dvec3;
285
286 /// 3 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
287 typedef vec<3, double, packed_mediump> packed_mediump_dvec3;
288
289 /// 3 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
290 typedef vec<3, double, packed_lowp> packed_lowp_dvec3;
291
292 /// 3 components vector tightly packed in memory of signed integer numbers.
293 typedef vec<3, int, packed_highp> packed_highp_ivec3;
294
295 /// 3 components vector tightly packed in memory of signed integer numbers.
296 typedef vec<3, int, packed_mediump> packed_mediump_ivec3;
297
298 /// 3 components vector tightly packed in memory of signed integer numbers.
299 typedef vec<3, int, packed_lowp> packed_lowp_ivec3;
300
301 /// 3 components vector tightly packed in memory of unsigned integer numbers.
302 typedef vec<3, uint, packed_highp> packed_highp_uvec3;
303
304 /// 3 components vector tightly packed in memory of unsigned integer numbers.
305 typedef vec<3, uint, packed_mediump> packed_mediump_uvec3;
306
307 /// 3 components vector tightly packed in memory of unsigned integer numbers.
308 typedef vec<3, uint, packed_lowp> packed_lowp_uvec3;
309
310 /// 3 components vector tightly packed in memory of bool values.
311 typedef vec<3, bool, packed_highp> packed_highp_bvec3;
312
313 /// 3 components vector tightly packed in memory of bool values.
314 typedef vec<3, bool, packed_mediump> packed_mediump_bvec3;
315
316 /// 3 components vector tightly packed in memory of bool values.
317 typedef vec<3, bool, packed_lowp> packed_lowp_bvec3;
318
319 // -- *vec4 --
320
321 /// 4 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
322 typedef vec<4, float, aligned_highp> aligned_highp_vec4;
323
324 /// 4 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
325 typedef vec<4, float, aligned_mediump> aligned_mediump_vec4;
326
327 /// 4 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
328 typedef vec<4, float, aligned_lowp> aligned_lowp_vec4;
329
330 /// 4 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
331 typedef vec<4, double, aligned_highp> aligned_highp_dvec4;
332
333 /// 4 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
334 typedef vec<4, double, aligned_mediump> aligned_mediump_dvec4;
335
336 /// 4 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
337 typedef vec<4, double, aligned_lowp> aligned_lowp_dvec4;
338
339 /// 4 components vector aligned in memory of signed integer numbers.
340 typedef vec<4, int, aligned_highp> aligned_highp_ivec4;
341
342 /// 4 components vector aligned in memory of signed integer numbers.
343 typedef vec<4, int, aligned_mediump> aligned_mediump_ivec4;
344
345 /// 4 components vector aligned in memory of signed integer numbers.
346 typedef vec<4, int, aligned_lowp> aligned_lowp_ivec4;
347
348 /// 4 components vector aligned in memory of unsigned integer numbers.
349 typedef vec<4, uint, aligned_highp> aligned_highp_uvec4;
350
351 /// 4 components vector aligned in memory of unsigned integer numbers.
352 typedef vec<4, uint, aligned_mediump> aligned_mediump_uvec4;
353
354 /// 4 components vector aligned in memory of unsigned integer numbers.
355 typedef vec<4, uint, aligned_lowp> aligned_lowp_uvec4;
356
357 /// 4 components vector aligned in memory of bool values.
358 typedef vec<4, bool, aligned_highp> aligned_highp_bvec4;
359
360 /// 4 components vector aligned in memory of bool values.
361 typedef vec<4, bool, aligned_mediump> aligned_mediump_bvec4;
362
363 /// 4 components vector aligned in memory of bool values.
364 typedef vec<4, bool, aligned_lowp> aligned_lowp_bvec4;
365
366 /// 4 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
367 typedef vec<4, float, packed_highp> packed_highp_vec4;
368
369 /// 4 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
370 typedef vec<4, float, packed_mediump> packed_mediump_vec4;
371
372 /// 4 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
373 typedef vec<4, float, packed_lowp> packed_lowp_vec4;
374
375 /// 4 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
376 typedef vec<4, double, packed_highp> packed_highp_dvec4;
377
378 /// 4 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
379 typedef vec<4, double, packed_mediump> packed_mediump_dvec4;
380
381 /// 4 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
382 typedef vec<4, double, packed_lowp> packed_lowp_dvec4;
383
384 /// 4 components vector tightly packed in memory of signed integer numbers.
385 typedef vec<4, int, packed_highp> packed_highp_ivec4;
386
387 /// 4 components vector tightly packed in memory of signed integer numbers.
388 typedef vec<4, int, packed_mediump> packed_mediump_ivec4;
389
390 /// 4 components vector tightly packed in memory of signed integer numbers.
391 typedef vec<4, int, packed_lowp> packed_lowp_ivec4;
392
393 /// 4 components vector tightly packed in memory of unsigned integer numbers.
394 typedef vec<4, uint, packed_highp> packed_highp_uvec4;
395
396 /// 4 components vector tightly packed in memory of unsigned integer numbers.
397 typedef vec<4, uint, packed_mediump> packed_mediump_uvec4;
398
399 /// 4 components vector tightly packed in memory of unsigned integer numbers.
400 typedef vec<4, uint, packed_lowp> packed_lowp_uvec4;
401
402 /// 4 components vector tightly packed in memory of bool values.
403 typedef vec<4, bool, packed_highp> packed_highp_bvec4;
404
405 /// 4 components vector tightly packed in memory of bool values.
406 typedef vec<4, bool, packed_mediump> packed_mediump_bvec4;
407
408 /// 4 components vector tightly packed in memory of bool values.
409 typedef vec<4, bool, packed_lowp> packed_lowp_bvec4;
410
411 // -- *mat2 --
412
413 /// 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
414 typedef mat<2, 2, float, aligned_highp> aligned_highp_mat2;
415
416 /// 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
417 typedef mat<2, 2, float, aligned_mediump> aligned_mediump_mat2;
418
419 /// 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
420 typedef mat<2, 2, float, aligned_lowp> aligned_lowp_mat2;
421
422 /// 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
423 typedef mat<2, 2, double, aligned_highp> aligned_highp_dmat2;
424
425 /// 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
426 typedef mat<2, 2, double, aligned_mediump> aligned_mediump_dmat2;
427
428 /// 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
429 typedef mat<2, 2, double, aligned_lowp> aligned_lowp_dmat2;
430
431 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
432 typedef mat<2, 2, float, packed_highp> packed_highp_mat2;
433
434 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
435 typedef mat<2, 2, float, packed_mediump> packed_mediump_mat2;
436
437 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
438 typedef mat<2, 2, float, packed_lowp> packed_lowp_mat2;
439
440 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
441 typedef mat<2, 2, double, packed_highp> packed_highp_dmat2;
442
443 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
444 typedef mat<2, 2, double, packed_mediump> packed_mediump_dmat2;
445
446 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
447 typedef mat<2, 2, double, packed_lowp> packed_lowp_dmat2;
448
449 // -- *mat3 --
450
451 /// 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
452 typedef mat<3, 3, float, aligned_highp> aligned_highp_mat3;
453
454 /// 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
455 typedef mat<3, 3, float, aligned_mediump> aligned_mediump_mat3;
456
457 /// 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
458 typedef mat<3, 3, float, aligned_lowp> aligned_lowp_mat3;
459
460 /// 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
461 typedef mat<3, 3, double, aligned_highp> aligned_highp_dmat3;
462
463 /// 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
464 typedef mat<3, 3, double, aligned_mediump> aligned_mediump_dmat3;
465
466 /// 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
467 typedef mat<3, 3, double, aligned_lowp> aligned_lowp_dmat3;
468
469 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
470 typedef mat<3, 3, float, packed_highp> packed_highp_mat3;
471
472 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
473 typedef mat<3, 3, float, packed_mediump> packed_mediump_mat3;
474
475 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
476 typedef mat<3, 3, float, packed_lowp> packed_lowp_mat3;
477
478 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
479 typedef mat<3, 3, double, packed_highp> packed_highp_dmat3;
480
481 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
482 typedef mat<3, 3, double, packed_mediump> packed_mediump_dmat3;
483
484 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
485 typedef mat<3, 3, double, packed_lowp> packed_lowp_dmat3;
486
487 // -- *mat4 --
488
489 /// 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
490 typedef mat<4, 4, float, aligned_highp> aligned_highp_mat4;
491
492 /// 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
493 typedef mat<4, 4, float, aligned_mediump> aligned_mediump_mat4;
494
495 /// 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
496 typedef mat<4, 4, float, aligned_lowp> aligned_lowp_mat4;
497
498 /// 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
499 typedef mat<4, 4, double, aligned_highp> aligned_highp_dmat4;
500
501 /// 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
502 typedef mat<4, 4, double, aligned_mediump> aligned_mediump_dmat4;
503
504 /// 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
505 typedef mat<4, 4, double, aligned_lowp> aligned_lowp_dmat4;
506
507 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
508 typedef mat<4, 4, float, packed_highp> packed_highp_mat4;
509
510 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
511 typedef mat<4, 4, float, packed_mediump> packed_mediump_mat4;
512
513 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
514 typedef mat<4, 4, float, packed_lowp> packed_lowp_mat4;
515
516 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
517 typedef mat<4, 4, double, packed_highp> packed_highp_dmat4;
518
519 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
520 typedef mat<4, 4, double, packed_mediump> packed_mediump_dmat4;
521
522 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
523 typedef mat<4, 4, double, packed_lowp> packed_lowp_dmat4;
524
525 // -- *mat2x2 --
526
527 /// 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
528 typedef mat<2, 2, float, aligned_highp> aligned_highp_mat2x2;
529
530 /// 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
531 typedef mat<2, 2, float, aligned_mediump> aligned_mediump_mat2x2;
532
533 /// 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
534 typedef mat<2, 2, float, aligned_lowp> aligned_lowp_mat2x2;
535
536 /// 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
537 typedef mat<2, 2, double, aligned_highp> aligned_highp_dmat2x2;
538
539 /// 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
540 typedef mat<2, 2, double, aligned_mediump> aligned_mediump_dmat2x2;
541
542 /// 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
543 typedef mat<2, 2, double, aligned_lowp> aligned_lowp_dmat2x2;
544
545 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
546 typedef mat<2, 2, float, packed_highp> packed_highp_mat2x2;
547
548 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
549 typedef mat<2, 2, float, packed_mediump> packed_mediump_mat2x2;
550
551 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
552 typedef mat<2, 2, float, packed_lowp> packed_lowp_mat2x2;
553
554 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
555 typedef mat<2, 2, double, packed_highp> packed_highp_dmat2x2;
556
557 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
558 typedef mat<2, 2, double, packed_mediump> packed_mediump_dmat2x2;
559
560 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
561 typedef mat<2, 2, double, packed_lowp> packed_lowp_dmat2x2;
562
563 // -- *mat2x3 --
564
565 /// 2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
566 typedef mat<2, 3, float, aligned_highp> aligned_highp_mat2x3;
567
568 /// 2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
569 typedef mat<2, 3, float, aligned_mediump> aligned_mediump_mat2x3;
570
571 /// 2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
572 typedef mat<2, 3, float, aligned_lowp> aligned_lowp_mat2x3;
573
574 /// 2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
575 typedef mat<2, 3, double, aligned_highp> aligned_highp_dmat2x3;
576
577 /// 2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
578 typedef mat<2, 3, double, aligned_mediump> aligned_mediump_dmat2x3;
579
580 /// 2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
581 typedef mat<2, 3, double, aligned_lowp> aligned_lowp_dmat2x3;
582
583 /// 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
584 typedef mat<2, 3, float, packed_highp> packed_highp_mat2x3;
585
586 /// 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
587 typedef mat<2, 3, float, packed_mediump> packed_mediump_mat2x3;
588
589 /// 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
590 typedef mat<2, 3, float, packed_lowp> packed_lowp_mat2x3;
591
592 /// 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
593 typedef mat<2, 3, double, packed_highp> packed_highp_dmat2x3;
594
595 /// 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
596 typedef mat<2, 3, double, packed_mediump> packed_mediump_dmat2x3;
597
598 /// 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
599 typedef mat<2, 3, double, packed_lowp> packed_lowp_dmat2x3;
600
601 // -- *mat2x4 --
602
603 /// 2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
604 typedef mat<2, 4, float, aligned_highp> aligned_highp_mat2x4;
605
606 /// 2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
607 typedef mat<2, 4, float, aligned_mediump> aligned_mediump_mat2x4;
608
609 /// 2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
610 typedef mat<2, 4, float, aligned_lowp> aligned_lowp_mat2x4;
611
612 /// 2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
613 typedef mat<2, 4, double, aligned_highp> aligned_highp_dmat2x4;
614
615 /// 2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
616 typedef mat<2, 4, double, aligned_mediump> aligned_mediump_dmat2x4;
617
618 /// 2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
619 typedef mat<2, 4, double, aligned_lowp> aligned_lowp_dmat2x4;
620
621 /// 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
622 typedef mat<2, 4, float, packed_highp> packed_highp_mat2x4;
623
624 /// 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
625 typedef mat<2, 4, float, packed_mediump> packed_mediump_mat2x4;
626
627 /// 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
628 typedef mat<2, 4, float, packed_lowp> packed_lowp_mat2x4;
629
630 /// 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
631 typedef mat<2, 4, double, packed_highp> packed_highp_dmat2x4;
632
633 /// 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
634 typedef mat<2, 4, double, packed_mediump> packed_mediump_dmat2x4;
635
636 /// 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
637 typedef mat<2, 4, double, packed_lowp> packed_lowp_dmat2x4;
638
639 // -- *mat3x2 --
640
641 /// 3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
642 typedef mat<3, 2, float, aligned_highp> aligned_highp_mat3x2;
643
644 /// 3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
645 typedef mat<3, 2, float, aligned_mediump> aligned_mediump_mat3x2;
646
647 /// 3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
648 typedef mat<3, 2, float, aligned_lowp> aligned_lowp_mat3x2;
649
650 /// 3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
651 typedef mat<3, 2, double, aligned_highp> aligned_highp_dmat3x2;
652
653 /// 3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
654 typedef mat<3, 2, double, aligned_mediump> aligned_mediump_dmat3x2;
655
656 /// 3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
657 typedef mat<3, 2, double, aligned_lowp> aligned_lowp_dmat3x2;
658
659 /// 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
660 typedef mat<3, 2, float, packed_highp> packed_highp_mat3x2;
661
662 /// 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
663 typedef mat<3, 2, float, packed_mediump> packed_mediump_mat3x2;
664
665 /// 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
666 typedef mat<3, 2, float, packed_lowp> packed_lowp_mat3x2;
667
668 /// 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
669 typedef mat<3, 2, double, packed_highp> packed_highp_dmat3x2;
670
671 /// 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
672 typedef mat<3, 2, double, packed_mediump> packed_mediump_dmat3x2;
673
674 /// 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
675 typedef mat<3, 2, double, packed_lowp> packed_lowp_dmat3x2;
676
677 // -- *mat3x3 --
678
679 /// 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
680 typedef mat<3, 3, float, aligned_highp> aligned_highp_mat3x3;
681
682 /// 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
683 typedef mat<3, 3, float, aligned_mediump> aligned_mediump_mat3x3;
684
685 /// 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
686 typedef mat<3, 3, float, aligned_lowp> aligned_lowp_mat3x3;
687
688 /// 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
689 typedef mat<3, 3, double, aligned_highp> aligned_highp_dmat3x3;
690
691 /// 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
692 typedef mat<3, 3, double, aligned_mediump> aligned_mediump_dmat3x3;
693
694 /// 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
695 typedef mat<3, 3, double, aligned_lowp> aligned_lowp_dmat3x3;
696
697 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
698 typedef mat<3, 3, float, packed_highp> packed_highp_mat3x3;
699
700 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
701 typedef mat<3, 3, float, packed_mediump> packed_mediump_mat3x3;
702
703 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
704 typedef mat<3, 3, float, packed_lowp> packed_lowp_mat3x3;
705
706 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
707 typedef mat<3, 3, double, packed_highp> packed_highp_dmat3x3;
708
709 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
710 typedef mat<3, 3, double, packed_mediump> packed_mediump_dmat3x3;
711
712 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
713 typedef mat<3, 3, double, packed_lowp> packed_lowp_dmat3x3;
714
715 // -- *mat3x4 --
716
717 /// 3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
718 typedef mat<3, 4, float, aligned_highp> aligned_highp_mat3x4;
719
720 /// 3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
721 typedef mat<3, 4, float, aligned_mediump> aligned_mediump_mat3x4;
722
723 /// 3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
724 typedef mat<3, 4, float, aligned_lowp> aligned_lowp_mat3x4;
725
726 /// 3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
727 typedef mat<3, 4, double, aligned_highp> aligned_highp_dmat3x4;
728
729 /// 3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
730 typedef mat<3, 4, double, aligned_mediump> aligned_mediump_dmat3x4;
731
732 /// 3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
733 typedef mat<3, 4, double, aligned_lowp> aligned_lowp_dmat3x4;
734
735 /// 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
736 typedef mat<3, 4, float, packed_highp> packed_highp_mat3x4;
737
738 /// 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
739 typedef mat<3, 4, float, packed_mediump> packed_mediump_mat3x4;
740
741 /// 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
742 typedef mat<3, 4, float, packed_lowp> packed_lowp_mat3x4;
743
744 /// 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
745 typedef mat<3, 4, double, packed_highp> packed_highp_dmat3x4;
746
747 /// 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
748 typedef mat<3, 4, double, packed_mediump> packed_mediump_dmat3x4;
749
750 /// 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
751 typedef mat<3, 4, double, packed_lowp> packed_lowp_dmat3x4;
752
753 // -- *mat4x2 --
754
755 /// 4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
756 typedef mat<4, 2, float, aligned_highp> aligned_highp_mat4x2;
757
758 /// 4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
759 typedef mat<4, 2, float, aligned_mediump> aligned_mediump_mat4x2;
760
761 /// 4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
762 typedef mat<4, 2, float, aligned_lowp> aligned_lowp_mat4x2;
763
764 /// 4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
765 typedef mat<4, 2, double, aligned_highp> aligned_highp_dmat4x2;
766
767 /// 4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
768 typedef mat<4, 2, double, aligned_mediump> aligned_mediump_dmat4x2;
769
770 /// 4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
771 typedef mat<4, 2, double, aligned_lowp> aligned_lowp_dmat4x2;
772
773 /// 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
774 typedef mat<4, 2, float, packed_highp> packed_highp_mat4x2;
775
776 /// 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
777 typedef mat<4, 2, float, packed_mediump> packed_mediump_mat4x2;
778
779 /// 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
780 typedef mat<4, 2, float, packed_lowp> packed_lowp_mat4x2;
781
782 /// 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
783 typedef mat<4, 2, double, packed_highp> packed_highp_dmat4x2;
784
785 /// 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
786 typedef mat<4, 2, double, packed_mediump> packed_mediump_dmat4x2;
787
788 /// 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
789 typedef mat<4, 2, double, packed_lowp> packed_lowp_dmat4x2;
790
791 // -- *mat4x3 --
792
793 /// 4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
794 typedef mat<4, 3, float, aligned_highp> aligned_highp_mat4x3;
795
796 /// 4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
797 typedef mat<4, 3, float, aligned_mediump> aligned_mediump_mat4x3;
798
799 /// 4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
800 typedef mat<4, 3, float, aligned_lowp> aligned_lowp_mat4x3;
801
802 /// 4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
803 typedef mat<4, 3, double, aligned_highp> aligned_highp_dmat4x3;
804
805 /// 4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
806 typedef mat<4, 3, double, aligned_mediump> aligned_mediump_dmat4x3;
807
808 /// 4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
809 typedef mat<4, 3, double, aligned_lowp> aligned_lowp_dmat4x3;
810
811 /// 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
812 typedef mat<4, 3, float, packed_highp> packed_highp_mat4x3;
813
814 /// 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
815 typedef mat<4, 3, float, packed_mediump> packed_mediump_mat4x3;
816
817 /// 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
818 typedef mat<4, 3, float, packed_lowp> packed_lowp_mat4x3;
819
820 /// 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
821 typedef mat<4, 3, double, packed_highp> packed_highp_dmat4x3;
822
823 /// 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
824 typedef mat<4, 3, double, packed_mediump> packed_mediump_dmat4x3;
825
826 /// 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
827 typedef mat<4, 3, double, packed_lowp> packed_lowp_dmat4x3;
828
829 // -- *mat4x4 --
830
831 /// 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
832 typedef mat<4, 4, float, aligned_highp> aligned_highp_mat4x4;
833
834 /// 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
835 typedef mat<4, 4, float, aligned_mediump> aligned_mediump_mat4x4;
836
837 /// 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
838 typedef mat<4, 4, float, aligned_lowp> aligned_lowp_mat4x4;
839
840 /// 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
841 typedef mat<4, 4, double, aligned_highp> aligned_highp_dmat4x4;
842
843 /// 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
844 typedef mat<4, 4, double, aligned_mediump> aligned_mediump_dmat4x4;
845
846 /// 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
847 typedef mat<4, 4, double, aligned_lowp> aligned_lowp_dmat4x4;
848
849 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
850 typedef mat<4, 4, float, packed_highp> packed_highp_mat4x4;
851
852 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
853 typedef mat<4, 4, float, packed_mediump> packed_mediump_mat4x4;
854
855 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
856 typedef mat<4, 4, float, packed_lowp> packed_lowp_mat4x4;
857
858 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
859 typedef mat<4, 4, double, packed_highp> packed_highp_dmat4x4;
860
861 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
862 typedef mat<4, 4, double, packed_mediump> packed_mediump_dmat4x4;
863
864 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
865 typedef mat<4, 4, double, packed_lowp> packed_lowp_dmat4x4;
866
867 // -- *quat --
868
869 /// quaternion aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
870 typedef qua<float, aligned_highp> aligned_highp_quat;
871
872 /// quaternion aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
873 typedef qua<float, aligned_mediump> aligned_mediump_quat;
874
875 /// quaternion aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
876 typedef qua<float, aligned_lowp> aligned_lowp_quat;
877
878 /// quaternion aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
879 typedef qua<double, aligned_highp> aligned_highp_dquat;
880
881 /// quaternion aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
882 typedef qua<double, aligned_mediump> aligned_mediump_dquat;
883
884 /// quaternion aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
885 typedef qua<double, aligned_lowp> aligned_lowp_dquat;
886
887 /// quaternion tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
888 typedef qua<float, packed_highp> packed_highp_quat;
889
890 /// quaternion tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
891 typedef qua<float, packed_mediump> packed_mediump_quat;
892
893 /// quaternion tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
894 typedef qua<float, packed_lowp> packed_lowp_quat;
895
896 /// quaternion tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
897 typedef qua<double, packed_highp> packed_highp_dquat;
898
899 /// quaternion tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
900 typedef qua<double, packed_mediump> packed_mediump_dquat;
901
902 /// quaternion tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
903 typedef qua<double, packed_lowp> packed_lowp_dquat;
904
905 // -- default --
906
907#if(defined(GLM_PRECISION_LOWP_FLOAT))
908 typedef aligned_lowp_vec1 aligned_vec1;
909 typedef aligned_lowp_vec2 aligned_vec2;
910 typedef aligned_lowp_vec3 aligned_vec3;
911 typedef aligned_lowp_vec4 aligned_vec4;
912 typedef packed_lowp_vec1 packed_vec1;
913 typedef packed_lowp_vec2 packed_vec2;
914 typedef packed_lowp_vec3 packed_vec3;
915 typedef packed_lowp_vec4 packed_vec4;
916
917 typedef aligned_lowp_mat2 aligned_mat2;
918 typedef aligned_lowp_mat3 aligned_mat3;
919 typedef aligned_lowp_mat4 aligned_mat4;
920 typedef packed_lowp_mat2 packed_mat2;
921 typedef packed_lowp_mat3 packed_mat3;
922 typedef packed_lowp_mat4 packed_mat4;
923
924 typedef aligned_lowp_mat2x2 aligned_mat2x2;
925 typedef aligned_lowp_mat2x3 aligned_mat2x3;
926 typedef aligned_lowp_mat2x4 aligned_mat2x4;
927 typedef aligned_lowp_mat3x2 aligned_mat3x2;
928 typedef aligned_lowp_mat3x3 aligned_mat3x3;
929 typedef aligned_lowp_mat3x4 aligned_mat3x4;
930 typedef aligned_lowp_mat4x2 aligned_mat4x2;
931 typedef aligned_lowp_mat4x3 aligned_mat4x3;
932 typedef aligned_lowp_mat4x4 aligned_mat4x4;
933 typedef packed_lowp_mat2x2 packed_mat2x2;
934 typedef packed_lowp_mat2x3 packed_mat2x3;
935 typedef packed_lowp_mat2x4 packed_mat2x4;
936 typedef packed_lowp_mat3x2 packed_mat3x2;
937 typedef packed_lowp_mat3x3 packed_mat3x3;
938 typedef packed_lowp_mat3x4 packed_mat3x4;
939 typedef packed_lowp_mat4x2 packed_mat4x2;
940 typedef packed_lowp_mat4x3 packed_mat4x3;
941 typedef packed_lowp_mat4x4 packed_mat4x4;
942
943 typedef aligned_lowp_quat aligned_quat;
944 typedef packed_lowp_quat packed_quat;
945#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
946 typedef aligned_mediump_vec1 aligned_vec1;
947 typedef aligned_mediump_vec2 aligned_vec2;
948 typedef aligned_mediump_vec3 aligned_vec3;
949 typedef aligned_mediump_vec4 aligned_vec4;
950 typedef packed_mediump_vec1 packed_vec1;
951 typedef packed_mediump_vec2 packed_vec2;
952 typedef packed_mediump_vec3 packed_vec3;
953 typedef packed_mediump_vec4 packed_vec4;
954
955 typedef aligned_mediump_mat2 aligned_mat2;
956 typedef aligned_mediump_mat3 aligned_mat3;
957 typedef aligned_mediump_mat4 aligned_mat4;
958 typedef packed_mediump_mat2 packed_mat2;
959 typedef packed_mediump_mat3 packed_mat3;
960 typedef packed_mediump_mat4 packed_mat4;
961
962 typedef aligned_mediump_mat2x2 aligned_mat2x2;
963 typedef aligned_mediump_mat2x3 aligned_mat2x3;
964 typedef aligned_mediump_mat2x4 aligned_mat2x4;
965 typedef aligned_mediump_mat3x2 aligned_mat3x2;
966 typedef aligned_mediump_mat3x3 aligned_mat3x3;
967 typedef aligned_mediump_mat3x4 aligned_mat3x4;
968 typedef aligned_mediump_mat4x2 aligned_mat4x2;
969 typedef aligned_mediump_mat4x3 aligned_mat4x3;
970 typedef aligned_mediump_mat4x4 aligned_mat4x4;
971 typedef packed_mediump_mat2x2 packed_mat2x2;
972 typedef packed_mediump_mat2x3 packed_mat2x3;
973 typedef packed_mediump_mat2x4 packed_mat2x4;
974 typedef packed_mediump_mat3x2 packed_mat3x2;
975 typedef packed_mediump_mat3x3 packed_mat3x3;
976 typedef packed_mediump_mat3x4 packed_mat3x4;
977 typedef packed_mediump_mat4x2 packed_mat4x2;
978 typedef packed_mediump_mat4x3 packed_mat4x3;
979 typedef packed_mediump_mat4x4 packed_mat4x4;
980
981 typedef aligned_mediump_quat aligned_quat;
982 typedef packed_mediump_quat packed_quat;
983#else //defined(GLM_PRECISION_HIGHP_FLOAT)
984 /// 1 component vector aligned in memory of single-precision floating-point numbers.
985 typedef aligned_highp_vec1 aligned_vec1;
986
987 /// 2 components vector aligned in memory of single-precision floating-point numbers.
988 typedef aligned_highp_vec2 aligned_vec2;
989
990 /// 3 components vector aligned in memory of single-precision floating-point numbers.
991 typedef aligned_highp_vec3 aligned_vec3;
992
993 /// 4 components vector aligned in memory of single-precision floating-point numbers.
994 typedef aligned_highp_vec4 aligned_vec4;
995
996 /// 1 component vector tightly packed in memory of single-precision floating-point numbers.
997 typedef packed_highp_vec1 packed_vec1;
998
999 /// 2 components vector tightly packed in memory of single-precision floating-point numbers.
1000 typedef packed_highp_vec2 packed_vec2;
1001
1002 /// 3 components vector tightly packed in memory of single-precision floating-point numbers.
1003 typedef packed_highp_vec3 packed_vec3;
1004
1005 /// 4 components vector tightly packed in memory of single-precision floating-point numbers.
1006 typedef packed_highp_vec4 packed_vec4;
1007
1008 /// 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
1009 typedef aligned_highp_mat2 aligned_mat2;
1010
1011 /// 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
1012 typedef aligned_highp_mat3 aligned_mat3;
1013
1014 /// 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
1015 typedef aligned_highp_mat4 aligned_mat4;
1016
1017 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
1018 typedef packed_highp_mat2 packed_mat2;
1019
1020 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
1021 typedef packed_highp_mat3 packed_mat3;
1022
1023 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
1024 typedef packed_highp_mat4 packed_mat4;
1025
1026 /// 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
1027 typedef aligned_highp_mat2x2 aligned_mat2x2;
1028
1029 /// 2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
1030 typedef aligned_highp_mat2x3 aligned_mat2x3;
1031
1032 /// 2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
1033 typedef aligned_highp_mat2x4 aligned_mat2x4;
1034
1035 /// 3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
1036 typedef aligned_highp_mat3x2 aligned_mat3x2;
1037
1038 /// 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
1039 typedef aligned_highp_mat3x3 aligned_mat3x3;
1040
1041 /// 3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
1042 typedef aligned_highp_mat3x4 aligned_mat3x4;
1043
1044 /// 4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
1045 typedef aligned_highp_mat4x2 aligned_mat4x2;
1046
1047 /// 4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
1048 typedef aligned_highp_mat4x3 aligned_mat4x3;
1049
1050 /// 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
1051 typedef aligned_highp_mat4x4 aligned_mat4x4;
1052
1053 /// 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
1054 typedef packed_highp_mat2x2 packed_mat2x2;
1055
1056 /// 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
1057 typedef packed_highp_mat2x3 packed_mat2x3;
1058
1059 /// 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
1060 typedef packed_highp_mat2x4 packed_mat2x4;
1061
1062 /// 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
1063 typedef packed_highp_mat3x2 packed_mat3x2;
1064
1065 /// 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
1066 typedef packed_highp_mat3x3 packed_mat3x3;
1067
1068 /// 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
1069 typedef packed_highp_mat3x4 packed_mat3x4;
1070
1071 /// 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
1072 typedef packed_highp_mat4x2 packed_mat4x2;
1073
1074 /// 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
1075 typedef packed_highp_mat4x3 packed_mat4x3;
1076
1077 /// 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
1078 typedef packed_highp_mat4x4 packed_mat4x4;
1079
1080 /// quaternion tightly aligned in memory of single-precision floating-point numbers.
1081 typedef aligned_highp_quat aligned_quat;
1082
1083 /// quaternion tightly packed in memory of single-precision floating-point numbers.
1084 typedef packed_highp_quat packed_quat;
1085#endif//GLM_PRECISION
1086
1087#if(defined(GLM_PRECISION_LOWP_DOUBLE))
1088 typedef aligned_lowp_dvec1 aligned_dvec1;
1089 typedef aligned_lowp_dvec2 aligned_dvec2;
1090 typedef aligned_lowp_dvec3 aligned_dvec3;
1091 typedef aligned_lowp_dvec4 aligned_dvec4;
1092 typedef packed_lowp_dvec1 packed_dvec1;
1093 typedef packed_lowp_dvec2 packed_dvec2;
1094 typedef packed_lowp_dvec3 packed_dvec3;
1095 typedef packed_lowp_dvec4 packed_dvec4;
1096
1097 typedef aligned_lowp_dmat2 aligned_dmat2;
1098 typedef aligned_lowp_dmat3 aligned_dmat3;
1099 typedef aligned_lowp_dmat4 aligned_dmat4;
1100 typedef packed_lowp_dmat2 packed_dmat2;
1101 typedef packed_lowp_dmat3 packed_dmat3;
1102 typedef packed_lowp_dmat4 packed_dmat4;
1103
1104 typedef aligned_lowp_dmat2x2 aligned_dmat2x2;
1105 typedef aligned_lowp_dmat2x3 aligned_dmat2x3;
1106 typedef aligned_lowp_dmat2x4 aligned_dmat2x4;
1107 typedef aligned_lowp_dmat3x2 aligned_dmat3x2;
1108 typedef aligned_lowp_dmat3x3 aligned_dmat3x3;
1109 typedef aligned_lowp_dmat3x4 aligned_dmat3x4;
1110 typedef aligned_lowp_dmat4x2 aligned_dmat4x2;
1111 typedef aligned_lowp_dmat4x3 aligned_dmat4x3;
1112 typedef aligned_lowp_dmat4x4 aligned_dmat4x4;
1113 typedef packed_lowp_dmat2x2 packed_dmat2x2;
1114 typedef packed_lowp_dmat2x3 packed_dmat2x3;
1115 typedef packed_lowp_dmat2x4 packed_dmat2x4;
1116 typedef packed_lowp_dmat3x2 packed_dmat3x2;
1117 typedef packed_lowp_dmat3x3 packed_dmat3x3;
1118 typedef packed_lowp_dmat3x4 packed_dmat3x4;
1119 typedef packed_lowp_dmat4x2 packed_dmat4x2;
1120 typedef packed_lowp_dmat4x3 packed_dmat4x3;
1121 typedef packed_lowp_dmat4x4 packed_dmat4x4;
1122
1123 typedef aligned_lowp_dquat aligned_dquat;
1124 typedef packed_lowp_dquat packed_dquat;
1125#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
1126 typedef aligned_mediump_dvec1 aligned_dvec1;
1127 typedef aligned_mediump_dvec2 aligned_dvec2;
1128 typedef aligned_mediump_dvec3 aligned_dvec3;
1129 typedef aligned_mediump_dvec4 aligned_dvec4;
1130 typedef packed_mediump_dvec1 packed_dvec1;
1131 typedef packed_mediump_dvec2 packed_dvec2;
1132 typedef packed_mediump_dvec3 packed_dvec3;
1133 typedef packed_mediump_dvec4 packed_dvec4;
1134
1135 typedef aligned_mediump_dmat2 aligned_dmat2;
1136 typedef aligned_mediump_dmat3 aligned_dmat3;
1137 typedef aligned_mediump_dmat4 aligned_dmat4;
1138 typedef packed_mediump_dmat2 packed_dmat2;
1139 typedef packed_mediump_dmat3 packed_dmat3;
1140 typedef packed_mediump_dmat4 packed_dmat4;
1141
1142 typedef aligned_mediump_dmat2x2 aligned_dmat2x2;
1143 typedef aligned_mediump_dmat2x3 aligned_dmat2x3;
1144 typedef aligned_mediump_dmat2x4 aligned_dmat2x4;
1145 typedef aligned_mediump_dmat3x2 aligned_dmat3x2;
1146 typedef aligned_mediump_dmat3x3 aligned_dmat3x3;
1147 typedef aligned_mediump_dmat3x4 aligned_dmat3x4;
1148 typedef aligned_mediump_dmat4x2 aligned_dmat4x2;
1149 typedef aligned_mediump_dmat4x3 aligned_dmat4x3;
1150 typedef aligned_mediump_dmat4x4 aligned_dmat4x4;
1151 typedef packed_mediump_dmat2x2 packed_dmat2x2;
1152 typedef packed_mediump_dmat2x3 packed_dmat2x3;
1153 typedef packed_mediump_dmat2x4 packed_dmat2x4;
1154 typedef packed_mediump_dmat3x2 packed_dmat3x2;
1155 typedef packed_mediump_dmat3x3 packed_dmat3x3;
1156 typedef packed_mediump_dmat3x4 packed_dmat3x4;
1157 typedef packed_mediump_dmat4x2 packed_dmat4x2;
1158 typedef packed_mediump_dmat4x3 packed_dmat4x3;
1159 typedef packed_mediump_dmat4x4 packed_dmat4x4;
1160
1161 typedef aligned_mediump_dquat aligned_dquat;
1162 typedef packed_mediump_dquat packed_dquat;
1163#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
1164 /// 1 component vector aligned in memory of double-precision floating-point numbers.
1165 typedef aligned_highp_dvec1 aligned_dvec1;
1166
1167 /// 2 components vector aligned in memory of double-precision floating-point numbers.
1168 typedef aligned_highp_dvec2 aligned_dvec2;
1169
1170 /// 3 components vector aligned in memory of double-precision floating-point numbers.
1171 typedef aligned_highp_dvec3 aligned_dvec3;
1172
1173 /// 4 components vector aligned in memory of double-precision floating-point numbers.
1174 typedef aligned_highp_dvec4 aligned_dvec4;
1175
1176 /// 1 component vector tightly packed in memory of double-precision floating-point numbers.
1177 typedef packed_highp_dvec1 packed_dvec1;
1178
1179 /// 2 components vector tightly packed in memory of double-precision floating-point numbers.
1180 typedef packed_highp_dvec2 packed_dvec2;
1181
1182 /// 3 components vector tightly packed in memory of double-precision floating-point numbers.
1183 typedef packed_highp_dvec3 packed_dvec3;
1184
1185 /// 4 components vector tightly packed in memory of double-precision floating-point numbers.
1186 typedef packed_highp_dvec4 packed_dvec4;
1187
1188 /// 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
1189 typedef aligned_highp_dmat2 aligned_dmat2;
1190
1191 /// 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
1192 typedef aligned_highp_dmat3 aligned_dmat3;
1193
1194 /// 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
1195 typedef aligned_highp_dmat4 aligned_dmat4;
1196
1197 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
1198 typedef packed_highp_dmat2 packed_dmat2;
1199
1200 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
1201 typedef packed_highp_dmat3 packed_dmat3;
1202
1203 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
1204 typedef packed_highp_dmat4 packed_dmat4;
1205
1206 /// 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
1207 typedef aligned_highp_dmat2x2 aligned_dmat2x2;
1208
1209 /// 2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
1210 typedef aligned_highp_dmat2x3 aligned_dmat2x3;
1211
1212 /// 2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
1213 typedef aligned_highp_dmat2x4 aligned_dmat2x4;
1214
1215 /// 3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
1216 typedef aligned_highp_dmat3x2 aligned_dmat3x2;
1217
1218 /// 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
1219 typedef aligned_highp_dmat3x3 aligned_dmat3x3;
1220
1221 /// 3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
1222 typedef aligned_highp_dmat3x4 aligned_dmat3x4;
1223
1224 /// 4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
1225 typedef aligned_highp_dmat4x2 aligned_dmat4x2;
1226
1227 /// 4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
1228 typedef aligned_highp_dmat4x3 aligned_dmat4x3;
1229
1230 /// 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
1231 typedef aligned_highp_dmat4x4 aligned_dmat4x4;
1232
1233 /// 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
1234 typedef packed_highp_dmat2x2 packed_dmat2x2;
1235
1236 /// 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
1237 typedef packed_highp_dmat2x3 packed_dmat2x3;
1238
1239 /// 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
1240 typedef packed_highp_dmat2x4 packed_dmat2x4;
1241
1242 /// 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
1243 typedef packed_highp_dmat3x2 packed_dmat3x2;
1244
1245 /// 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
1246 typedef packed_highp_dmat3x3 packed_dmat3x3;
1247
1248 /// 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
1249 typedef packed_highp_dmat3x4 packed_dmat3x4;
1250
1251 /// 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
1252 typedef packed_highp_dmat4x2 packed_dmat4x2;
1253
1254 /// 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
1255 typedef packed_highp_dmat4x3 packed_dmat4x3;
1256
1257 /// 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
1258 typedef packed_highp_dmat4x4 packed_dmat4x4;
1259
1260 /// quaternion tightly aligned in memory of double-precision floating-point numbers.
1261 typedef aligned_highp_dquat aligned_dquat;
1262
1263 /// quaternion tightly packed in memory of double-precision floating-point numbers.
1264 typedef packed_highp_dquat packed_dquat;
1265#endif//GLM_PRECISION
1266
1267#if(defined(GLM_PRECISION_LOWP_INT))
1268 typedef aligned_lowp_ivec1 aligned_ivec1;
1269 typedef aligned_lowp_ivec2 aligned_ivec2;
1270 typedef aligned_lowp_ivec3 aligned_ivec3;
1271 typedef aligned_lowp_ivec4 aligned_ivec4;
1272#elif(defined(GLM_PRECISION_MEDIUMP_INT))
1273 typedef aligned_mediump_ivec1 aligned_ivec1;
1274 typedef aligned_mediump_ivec2 aligned_ivec2;
1275 typedef aligned_mediump_ivec3 aligned_ivec3;
1276 typedef aligned_mediump_ivec4 aligned_ivec4;
1277#else //defined(GLM_PRECISION_HIGHP_INT)
1278 /// 1 component vector aligned in memory of signed integer numbers.
1279 typedef aligned_highp_ivec1 aligned_ivec1;
1280
1281 /// 2 components vector aligned in memory of signed integer numbers.
1282 typedef aligned_highp_ivec2 aligned_ivec2;
1283
1284 /// 3 components vector aligned in memory of signed integer numbers.
1285 typedef aligned_highp_ivec3 aligned_ivec3;
1286
1287 /// 4 components vector aligned in memory of signed integer numbers.
1288 typedef aligned_highp_ivec4 aligned_ivec4;
1289
1290 /// 1 component vector tightly packed in memory of signed integer numbers.
1291 typedef packed_highp_ivec1 packed_ivec1;
1292
1293 /// 2 components vector tightly packed in memory of signed integer numbers.
1294 typedef packed_highp_ivec2 packed_ivec2;
1295
1296 /// 3 components vector tightly packed in memory of signed integer numbers.
1297 typedef packed_highp_ivec3 packed_ivec3;
1298
1299 /// 4 components vector tightly packed in memory of signed integer numbers.
1300 typedef packed_highp_ivec4 packed_ivec4;
1301#endif//GLM_PRECISION
1302
1303 // -- Unsigned integer definition --
1304
1305#if(defined(GLM_PRECISION_LOWP_UINT))
1306 typedef aligned_lowp_uvec1 aligned_uvec1;
1307 typedef aligned_lowp_uvec2 aligned_uvec2;
1308 typedef aligned_lowp_uvec3 aligned_uvec3;
1309 typedef aligned_lowp_uvec4 aligned_uvec4;
1310#elif(defined(GLM_PRECISION_MEDIUMP_UINT))
1311 typedef aligned_mediump_uvec1 aligned_uvec1;
1312 typedef aligned_mediump_uvec2 aligned_uvec2;
1313 typedef aligned_mediump_uvec3 aligned_uvec3;
1314 typedef aligned_mediump_uvec4 aligned_uvec4;
1315#else //defined(GLM_PRECISION_HIGHP_UINT)
1316 /// 1 component vector aligned in memory of unsigned integer numbers.
1317 typedef aligned_highp_uvec1 aligned_uvec1;
1318
1319 /// 2 components vector aligned in memory of unsigned integer numbers.
1320 typedef aligned_highp_uvec2 aligned_uvec2;
1321
1322 /// 3 components vector aligned in memory of unsigned integer numbers.
1323 typedef aligned_highp_uvec3 aligned_uvec3;
1324
1325 /// 4 components vector aligned in memory of unsigned integer numbers.
1326 typedef aligned_highp_uvec4 aligned_uvec4;
1327
1328 /// 1 component vector tightly packed in memory of unsigned integer numbers.
1329 typedef packed_highp_uvec1 packed_uvec1;
1330
1331 /// 2 components vector tightly packed in memory of unsigned integer numbers.
1332 typedef packed_highp_uvec2 packed_uvec2;
1333
1334 /// 3 components vector tightly packed in memory of unsigned integer numbers.
1335 typedef packed_highp_uvec3 packed_uvec3;
1336
1337 /// 4 components vector tightly packed in memory of unsigned integer numbers.
1338 typedef packed_highp_uvec4 packed_uvec4;
1339#endif//GLM_PRECISION
1340
1341#if(defined(GLM_PRECISION_LOWP_BOOL))
1342 typedef aligned_lowp_bvec1 aligned_bvec1;
1343 typedef aligned_lowp_bvec2 aligned_bvec2;
1344 typedef aligned_lowp_bvec3 aligned_bvec3;
1345 typedef aligned_lowp_bvec4 aligned_bvec4;
1346#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
1347 typedef aligned_mediump_bvec1 aligned_bvec1;
1348 typedef aligned_mediump_bvec2 aligned_bvec2;
1349 typedef aligned_mediump_bvec3 aligned_bvec3;
1350 typedef aligned_mediump_bvec4 aligned_bvec4;
1351#else //defined(GLM_PRECISION_HIGHP_BOOL)
1352 /// 1 component vector aligned in memory of bool values.
1353 typedef aligned_highp_bvec1 aligned_bvec1;
1354
1355 /// 2 components vector aligned in memory of bool values.
1356 typedef aligned_highp_bvec2 aligned_bvec2;
1357
1358 /// 3 components vector aligned in memory of bool values.
1359 typedef aligned_highp_bvec3 aligned_bvec3;
1360
1361 /// 4 components vector aligned in memory of bool values.
1362 typedef aligned_highp_bvec4 aligned_bvec4;
1363
1364 /// 1 components vector tightly packed in memory of bool values.
1365 typedef packed_highp_bvec1 packed_bvec1;
1366
1367 /// 2 components vector tightly packed in memory of bool values.
1368 typedef packed_highp_bvec2 packed_bvec2;
1369
1370 /// 3 components vector tightly packed in memory of bool values.
1371 typedef packed_highp_bvec3 packed_bvec3;
1372
1373 /// 4 components vector tightly packed in memory of bool values.
1374 typedef packed_highp_bvec4 packed_bvec4;
1375#endif//GLM_PRECISION
1376
1377 /// @}
1378}//namespace glm