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