1 /// @ref gtc_type_precision
2 /// @file glm/gtc/type_precision.hpp
3 ///
4 /// @see core (dependence)
5 /// @see gtc_quaternion (dependence)
6 ///
7 /// @defgroup gtc_type_precision GLM_GTC_type_precision
8 /// @ingroup gtc
9 ///
10 /// Include <glm/gtc/type_precision.hpp> to use the features of this extension.
11 ///
12 /// Defines specific C++-based qualifier types.
13 
14 #pragma once
15 
16 // Dependency:
17 #include "../gtc/quaternion.hpp"
18 #include "../gtc/vec1.hpp"
19 #include "../ext/scalar_int_sized.hpp"
20 #include "../ext/scalar_uint_sized.hpp"
21 #include "../detail/type_vec2.hpp"
22 #include "../detail/type_vec3.hpp"
23 #include "../detail/type_vec4.hpp"
24 #include "../detail/type_mat2x2.hpp"
25 #include "../detail/type_mat2x3.hpp"
26 #include "../detail/type_mat2x4.hpp"
27 #include "../detail/type_mat3x2.hpp"
28 #include "../detail/type_mat3x3.hpp"
29 #include "../detail/type_mat3x4.hpp"
30 #include "../detail/type_mat4x2.hpp"
31 #include "../detail/type_mat4x3.hpp"
32 #include "../detail/type_mat4x4.hpp"
33 
34 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
35 #	pragma message("GLM: GLM_GTC_type_precision extension included")
36 #endif
37 
38 namespace glm
39 {
40 	///////////////////////////
41 	// Signed int vector types
42 
43 	/// @addtogroup gtc_type_precision
44 	/// @{
45 
46 	/// Low qualifier 8 bit signed integer type.
47 	/// @see gtc_type_precision
48 	typedef detail::int8 lowp_int8;
49 
50 	/// Low qualifier 16 bit signed integer type.
51 	/// @see gtc_type_precision
52 	typedef detail::int16 lowp_int16;
53 
54 	/// Low qualifier 32 bit signed integer type.
55 	/// @see gtc_type_precision
56 	typedef detail::int32 lowp_int32;
57 
58 	/// Low qualifier 64 bit signed integer type.
59 	/// @see gtc_type_precision
60 	typedef detail::int64 lowp_int64;
61 
62 	/// Low qualifier 8 bit signed integer type.
63 	/// @see gtc_type_precision
64 	typedef detail::int8 lowp_int8_t;
65 
66 	/// Low qualifier 16 bit signed integer type.
67 	/// @see gtc_type_precision
68 	typedef detail::int16 lowp_int16_t;
69 
70 	/// Low qualifier 32 bit signed integer type.
71 	/// @see gtc_type_precision
72 	typedef detail::int32 lowp_int32_t;
73 
74 	/// Low qualifier 64 bit signed integer type.
75 	/// @see gtc_type_precision
76 	typedef detail::int64 lowp_int64_t;
77 
78 	/// Low qualifier 8 bit signed integer type.
79 	/// @see gtc_type_precision
80 	typedef detail::int8 lowp_i8;
81 
82 	/// Low qualifier 16 bit signed integer type.
83 	/// @see gtc_type_precision
84 	typedef detail::int16 lowp_i16;
85 
86 	/// Low qualifier 32 bit signed integer type.
87 	/// @see gtc_type_precision
88 	typedef detail::int32 lowp_i32;
89 
90 	/// Low qualifier 64 bit signed integer type.
91 	/// @see gtc_type_precision
92 	typedef detail::int64 lowp_i64;
93 
94 	/// Medium qualifier 8 bit signed integer type.
95 	/// @see gtc_type_precision
96 	typedef detail::int8 mediump_int8;
97 
98 	/// Medium qualifier 16 bit signed integer type.
99 	/// @see gtc_type_precision
100 	typedef detail::int16 mediump_int16;
101 
102 	/// Medium qualifier 32 bit signed integer type.
103 	/// @see gtc_type_precision
104 	typedef detail::int32 mediump_int32;
105 
106 	/// Medium qualifier 64 bit signed integer type.
107 	/// @see gtc_type_precision
108 	typedef detail::int64 mediump_int64;
109 
110 	/// Medium qualifier 8 bit signed integer type.
111 	/// @see gtc_type_precision
112 	typedef detail::int8 mediump_int8_t;
113 
114 	/// Medium qualifier 16 bit signed integer type.
115 	/// @see gtc_type_precision
116 	typedef detail::int16 mediump_int16_t;
117 
118 	/// Medium qualifier 32 bit signed integer type.
119 	/// @see gtc_type_precision
120 	typedef detail::int32 mediump_int32_t;
121 
122 	/// Medium qualifier 64 bit signed integer type.
123 	/// @see gtc_type_precision
124 	typedef detail::int64 mediump_int64_t;
125 
126 	/// Medium qualifier 8 bit signed integer type.
127 	/// @see gtc_type_precision
128 	typedef detail::int8 mediump_i8;
129 
130 	/// Medium qualifier 16 bit signed integer type.
131 	/// @see gtc_type_precision
132 	typedef detail::int16 mediump_i16;
133 
134 	/// Medium qualifier 32 bit signed integer type.
135 	/// @see gtc_type_precision
136 	typedef detail::int32 mediump_i32;
137 
138 	/// Medium qualifier 64 bit signed integer type.
139 	/// @see gtc_type_precision
140 	typedef detail::int64 mediump_i64;
141 
142 	/// High qualifier 8 bit signed integer type.
143 	/// @see gtc_type_precision
144 	typedef detail::int8 highp_int8;
145 
146 	/// High qualifier 16 bit signed integer type.
147 	/// @see gtc_type_precision
148 	typedef detail::int16 highp_int16;
149 
150 	/// High qualifier 32 bit signed integer type.
151 	/// @see gtc_type_precision
152 	typedef detail::int32 highp_int32;
153 
154 	/// High qualifier 64 bit signed integer type.
155 	/// @see gtc_type_precision
156 	typedef detail::int64 highp_int64;
157 
158 	/// High qualifier 8 bit signed integer type.
159 	/// @see gtc_type_precision
160 	typedef detail::int8 highp_int8_t;
161 
162 	/// High qualifier 16 bit signed integer type.
163 	/// @see gtc_type_precision
164 	typedef detail::int16 highp_int16_t;
165 
166 	/// 32 bit signed integer type.
167 	/// @see gtc_type_precision
168 	typedef detail::int32 highp_int32_t;
169 
170 	/// High qualifier 64 bit signed integer type.
171 	/// @see gtc_type_precision
172 	typedef detail::int64 highp_int64_t;
173 
174 	/// High qualifier 8 bit signed integer type.
175 	/// @see gtc_type_precision
176 	typedef detail::int8 highp_i8;
177 
178 	/// High qualifier 16 bit signed integer type.
179 	/// @see gtc_type_precision
180 	typedef detail::int16 highp_i16;
181 
182 	/// High qualifier 32 bit signed integer type.
183 	/// @see gtc_type_precision
184 	typedef detail::int32 highp_i32;
185 
186 	/// High qualifier 64 bit signed integer type.
187 	/// @see gtc_type_precision
188 	typedef detail::int64 highp_i64;
189 
190 
191 #if GLM_HAS_EXTENDED_INTEGER_TYPE
192 	using std::int8_t;
193 	using std::int16_t;
194 	using std::int32_t;
195 	using std::int64_t;
196 #else
197 	/// 8 bit signed integer type.
198 	/// @see gtc_type_precision
199 	typedef detail::int8 int8_t;
200 
201 	/// 16 bit signed integer type.
202 	/// @see gtc_type_precision
203 	typedef detail::int16 int16_t;
204 
205 	/// 32 bit signed integer type.
206 	/// @see gtc_type_precision
207 	typedef detail::int32 int32_t;
208 
209 	/// 64 bit signed integer type.
210 	/// @see gtc_type_precision
211 	typedef detail::int64 int64_t;
212 #endif
213 
214 	/// 8 bit signed integer type.
215 	/// @see gtc_type_precision
216 	typedef detail::int8 i8;
217 
218 	/// 16 bit signed integer type.
219 	/// @see gtc_type_precision
220 	typedef detail::int16 i16;
221 
222 	/// 32 bit signed integer type.
223 	/// @see gtc_type_precision
224 	typedef detail::int32 i32;
225 
226 	/// 64 bit signed integer type.
227 	/// @see gtc_type_precision
228 	typedef detail::int64 i64;
229 
230 
231 
232 	/// Low qualifier 8 bit signed integer scalar type.
233 	/// @see gtc_type_precision
234 	typedef vec<1, i8, lowp> lowp_i8vec1;
235 
236 	/// Low qualifier 8 bit signed integer vector of 2 components type.
237 	/// @see gtc_type_precision
238 	typedef vec<2, i8, lowp> lowp_i8vec2;
239 
240 	/// Low qualifier 8 bit signed integer vector of 3 components type.
241 	/// @see gtc_type_precision
242 	typedef vec<3, i8, lowp> lowp_i8vec3;
243 
244 	/// Low qualifier 8 bit signed integer vector of 4 components type.
245 	/// @see gtc_type_precision
246 	typedef vec<4, i8, lowp> lowp_i8vec4;
247 
248 
249 	/// Medium qualifier 8 bit signed integer scalar type.
250 	/// @see gtc_type_precision
251 	typedef vec<1, i8, mediump> mediump_i8vec1;
252 
253 	/// Medium qualifier 8 bit signed integer vector of 2 components type.
254 	/// @see gtc_type_precision
255 	typedef vec<2, i8, mediump> mediump_i8vec2;
256 
257 	/// Medium qualifier 8 bit signed integer vector of 3 components type.
258 	/// @see gtc_type_precision
259 	typedef vec<3, i8, mediump> mediump_i8vec3;
260 
261 	/// Medium qualifier 8 bit signed integer vector of 4 components type.
262 	/// @see gtc_type_precision
263 	typedef vec<4, i8, mediump> mediump_i8vec4;
264 
265 
266 	/// High qualifier 8 bit signed integer scalar type.
267 	/// @see gtc_type_precision
268 	typedef vec<1, i8, highp> highp_i8vec1;
269 
270 	/// High qualifier 8 bit signed integer vector of 2 components type.
271 	/// @see gtc_type_precision
272 	typedef vec<2, i8, highp> highp_i8vec2;
273 
274 	/// High qualifier 8 bit signed integer vector of 3 components type.
275 	/// @see gtc_type_precision
276 	typedef vec<3, i8, highp> highp_i8vec3;
277 
278 	/// High qualifier 8 bit signed integer vector of 4 components type.
279 	/// @see gtc_type_precision
280 	typedef vec<4, i8, highp> highp_i8vec4;
281 
282 
283 
284 	/// 8 bit signed integer scalar type.
285 	/// @see gtc_type_precision
286 	typedef vec<1, i8, defaultp> i8vec1;
287 
288 	/// 8 bit signed integer vector of 2 components type.
289 	/// @see gtc_type_precision
290 	typedef vec<2, i8, defaultp> i8vec2;
291 
292 	/// 8 bit signed integer vector of 3 components type.
293 	/// @see gtc_type_precision
294 	typedef vec<3, i8, defaultp> i8vec3;
295 
296 	/// 8 bit signed integer vector of 4 components type.
297 	/// @see gtc_type_precision
298 	typedef vec<4, i8, defaultp> i8vec4;
299 
300 
301 
302 
303 
304 	/// Low qualifier 16 bit signed integer scalar type.
305 	/// @see gtc_type_precision
306 	typedef vec<1, i16, lowp>		lowp_i16vec1;
307 
308 	/// Low qualifier 16 bit signed integer vector of 2 components type.
309 	/// @see gtc_type_precision
310 	typedef vec<2, i16, lowp>		lowp_i16vec2;
311 
312 	/// Low qualifier 16 bit signed integer vector of 3 components type.
313 	/// @see gtc_type_precision
314 	typedef vec<3, i16, lowp>		lowp_i16vec3;
315 
316 	/// Low qualifier 16 bit signed integer vector of 4 components type.
317 	/// @see gtc_type_precision
318 	typedef vec<4, i16, lowp>		lowp_i16vec4;
319 
320 
321 	/// Medium qualifier 16 bit signed integer scalar type.
322 	/// @see gtc_type_precision
323 	typedef vec<1, i16, mediump>		mediump_i16vec1;
324 
325 	/// Medium qualifier 16 bit signed integer vector of 2 components type.
326 	/// @see gtc_type_precision
327 	typedef vec<2, i16, mediump>		mediump_i16vec2;
328 
329 	/// Medium qualifier 16 bit signed integer vector of 3 components type.
330 	/// @see gtc_type_precision
331 	typedef vec<3, i16, mediump>		mediump_i16vec3;
332 
333 	/// Medium qualifier 16 bit signed integer vector of 4 components type.
334 	/// @see gtc_type_precision
335 	typedef vec<4, i16, mediump>		mediump_i16vec4;
336 
337 
338 	/// High qualifier 16 bit signed integer scalar type.
339 	/// @see gtc_type_precision
340 	typedef vec<1, i16, highp>		highp_i16vec1;
341 
342 	/// High qualifier 16 bit signed integer vector of 2 components type.
343 	/// @see gtc_type_precision
344 	typedef vec<2, i16, highp>		highp_i16vec2;
345 
346 	/// High qualifier 16 bit signed integer vector of 3 components type.
347 	/// @see gtc_type_precision
348 	typedef vec<3, i16, highp>		highp_i16vec3;
349 
350 	/// High qualifier 16 bit signed integer vector of 4 components type.
351 	/// @see gtc_type_precision
352 	typedef vec<4, i16, highp>		highp_i16vec4;
353 
354 
355 
356 
357 	/// 16 bit signed integer scalar type.
358 	/// @see gtc_type_precision
359 	typedef vec<1, i16, defaultp> i16vec1;
360 
361 	/// 16 bit signed integer vector of 2 components type.
362 	/// @see gtc_type_precision
363 	typedef vec<2, i16, defaultp> i16vec2;
364 
365 	/// 16 bit signed integer vector of 3 components type.
366 	/// @see gtc_type_precision
367 	typedef vec<3, i16, defaultp> i16vec3;
368 
369 	/// 16 bit signed integer vector of 4 components type.
370 	/// @see gtc_type_precision
371 	typedef vec<4, i16, defaultp> i16vec4;
372 
373 
374 
375 	/// Low qualifier 32 bit signed integer scalar type.
376 	/// @see gtc_type_precision
377 	typedef vec<1, i32, lowp>		lowp_i32vec1;
378 
379 	/// Low qualifier 32 bit signed integer vector of 2 components type.
380 	/// @see gtc_type_precision
381 	typedef vec<2, i32, lowp>		lowp_i32vec2;
382 
383 	/// Low qualifier 32 bit signed integer vector of 3 components type.
384 	/// @see gtc_type_precision
385 	typedef vec<3, i32, lowp>		lowp_i32vec3;
386 
387 	/// Low qualifier 32 bit signed integer vector of 4 components type.
388 	/// @see gtc_type_precision
389 	typedef vec<4, i32, lowp>		lowp_i32vec4;
390 
391 
392 	/// Medium qualifier 32 bit signed integer scalar type.
393 	/// @see gtc_type_precision
394 	typedef vec<1, i32, mediump>		mediump_i32vec1;
395 
396 	/// Medium qualifier 32 bit signed integer vector of 2 components type.
397 	/// @see gtc_type_precision
398 	typedef vec<2, i32, mediump>		mediump_i32vec2;
399 
400 	/// Medium qualifier 32 bit signed integer vector of 3 components type.
401 	/// @see gtc_type_precision
402 	typedef vec<3, i32, mediump>		mediump_i32vec3;
403 
404 	/// Medium qualifier 32 bit signed integer vector of 4 components type.
405 	/// @see gtc_type_precision
406 	typedef vec<4, i32, mediump>		mediump_i32vec4;
407 
408 
409 	/// High qualifier 32 bit signed integer scalar type.
410 	/// @see gtc_type_precision
411 	typedef vec<1, i32, highp>		highp_i32vec1;
412 
413 	/// High qualifier 32 bit signed integer vector of 2 components type.
414 	/// @see gtc_type_precision
415 	typedef vec<2, i32, highp>		highp_i32vec2;
416 
417 	/// High qualifier 32 bit signed integer vector of 3 components type.
418 	/// @see gtc_type_precision
419 	typedef vec<3, i32, highp>		highp_i32vec3;
420 
421 	/// High qualifier 32 bit signed integer vector of 4 components type.
422 	/// @see gtc_type_precision
423 	typedef vec<4, i32, highp>		highp_i32vec4;
424 
425 
426 	/// 32 bit signed integer scalar type.
427 	/// @see gtc_type_precision
428 	typedef vec<1, i32, defaultp> i32vec1;
429 
430 	/// 32 bit signed integer vector of 2 components type.
431 	/// @see gtc_type_precision
432 	typedef vec<2, i32, defaultp> i32vec2;
433 
434 	/// 32 bit signed integer vector of 3 components type.
435 	/// @see gtc_type_precision
436 	typedef vec<3, i32, defaultp> i32vec3;
437 
438 	/// 32 bit signed integer vector of 4 components type.
439 	/// @see gtc_type_precision
440 	typedef vec<4, i32, defaultp> i32vec4;
441 
442 
443 
444 
445 	/// Low qualifier 64 bit signed integer scalar type.
446 	/// @see gtc_type_precision
447 	typedef vec<1, i64, lowp>		lowp_i64vec1;
448 
449 	/// Low qualifier 64 bit signed integer vector of 2 components type.
450 	/// @see gtc_type_precision
451 	typedef vec<2, i64, lowp>		lowp_i64vec2;
452 
453 	/// Low qualifier 64 bit signed integer vector of 3 components type.
454 	/// @see gtc_type_precision
455 	typedef vec<3, i64, lowp>		lowp_i64vec3;
456 
457 	/// Low qualifier 64 bit signed integer vector of 4 components type.
458 	/// @see gtc_type_precision
459 	typedef vec<4, i64, lowp>		lowp_i64vec4;
460 
461 
462 	/// Medium qualifier 64 bit signed integer scalar type.
463 	/// @see gtc_type_precision
464 	typedef vec<1, i64, mediump>		mediump_i64vec1;
465 
466 	/// Medium qualifier 64 bit signed integer vector of 2 components type.
467 	/// @see gtc_type_precision
468 	typedef vec<2, i64, mediump>		mediump_i64vec2;
469 
470 	/// Medium qualifier 64 bit signed integer vector of 3 components type.
471 	/// @see gtc_type_precision
472 	typedef vec<3, i64, mediump>		mediump_i64vec3;
473 
474 	/// Medium qualifier 64 bit signed integer vector of 4 components type.
475 	/// @see gtc_type_precision
476 	typedef vec<4, i64, mediump>		mediump_i64vec4;
477 
478 
479 	/// High qualifier 64 bit signed integer scalar type.
480 	/// @see gtc_type_precision
481 	typedef vec<1, i64, highp>		highp_i64vec1;
482 
483 	/// High qualifier 64 bit signed integer vector of 2 components type.
484 	/// @see gtc_type_precision
485 	typedef vec<2, i64, highp>		highp_i64vec2;
486 
487 	/// High qualifier 64 bit signed integer vector of 3 components type.
488 	/// @see gtc_type_precision
489 	typedef vec<3, i64, highp>		highp_i64vec3;
490 
491 	/// High qualifier 64 bit signed integer vector of 4 components type.
492 	/// @see gtc_type_precision
493 	typedef vec<4, i64, highp>		highp_i64vec4;
494 
495 
496 	/// 64 bit signed integer scalar type.
497 	/// @see gtc_type_precision
498 	typedef vec<1, i64, defaultp> i64vec1;
499 
500 	/// 64 bit signed integer vector of 2 components type.
501 	/// @see gtc_type_precision
502 	typedef vec<2, i64, defaultp> i64vec2;
503 
504 	/// 64 bit signed integer vector of 3 components type.
505 	/// @see gtc_type_precision
506 	typedef vec<3, i64, defaultp> i64vec3;
507 
508 	/// 64 bit signed integer vector of 4 components type.
509 	/// @see gtc_type_precision
510 	typedef vec<4, i64, defaultp> i64vec4;
511 
512 
513 	/////////////////////////////
514 	// Unsigned int vector types
515 
516 	/// Low qualifier 8 bit unsigned integer type.
517 	/// @see gtc_type_precision
518 	typedef detail::uint8 lowp_uint8;
519 
520 	/// Low qualifier 16 bit unsigned integer type.
521 	/// @see gtc_type_precision
522 	typedef detail::uint16 lowp_uint16;
523 
524 	/// Low qualifier 32 bit unsigned integer type.
525 	/// @see gtc_type_precision
526 	typedef detail::uint32 lowp_uint32;
527 
528 	/// Low qualifier 64 bit unsigned integer type.
529 	/// @see gtc_type_precision
530 	typedef detail::uint64 lowp_uint64;
531 
532 	/// Low qualifier 8 bit unsigned integer type.
533 	/// @see gtc_type_precision
534 	typedef detail::uint8 lowp_uint8_t;
535 
536 	/// Low qualifier 16 bit unsigned integer type.
537 	/// @see gtc_type_precision
538 	typedef detail::uint16 lowp_uint16_t;
539 
540 	/// Low qualifier 32 bit unsigned integer type.
541 	/// @see gtc_type_precision
542 	typedef detail::uint32 lowp_uint32_t;
543 
544 	/// Low qualifier 64 bit unsigned integer type.
545 	/// @see gtc_type_precision
546 	typedef detail::uint64 lowp_uint64_t;
547 
548 	/// Low qualifier 8 bit unsigned integer type.
549 	/// @see gtc_type_precision
550 	typedef detail::uint8 lowp_u8;
551 
552 	/// Low qualifier 16 bit unsigned integer type.
553 	/// @see gtc_type_precision
554 	typedef detail::uint16 lowp_u16;
555 
556 	/// Low qualifier 32 bit unsigned integer type.
557 	/// @see gtc_type_precision
558 	typedef detail::uint32 lowp_u32;
559 
560 	/// Low qualifier 64 bit unsigned integer type.
561 	/// @see gtc_type_precision
562 	typedef detail::uint64 lowp_u64;
563 
564 	/// Medium qualifier 8 bit unsigned integer type.
565 	/// @see gtc_type_precision
566 	typedef detail::uint8 mediump_uint8;
567 
568 	/// Medium qualifier 16 bit unsigned integer type.
569 	/// @see gtc_type_precision
570 	typedef detail::uint16 mediump_uint16;
571 
572 	/// Medium qualifier 32 bit unsigned integer type.
573 	/// @see gtc_type_precision
574 	typedef detail::uint32 mediump_uint32;
575 
576 	/// Medium qualifier 64 bit unsigned integer type.
577 	/// @see gtc_type_precision
578 	typedef detail::uint64 mediump_uint64;
579 
580 	/// Medium qualifier 8 bit unsigned integer type.
581 	/// @see gtc_type_precision
582 	typedef detail::uint8 mediump_uint8_t;
583 
584 	/// Medium qualifier 16 bit unsigned integer type.
585 	/// @see gtc_type_precision
586 	typedef detail::uint16 mediump_uint16_t;
587 
588 	/// Medium qualifier 32 bit unsigned integer type.
589 	/// @see gtc_type_precision
590 	typedef detail::uint32 mediump_uint32_t;
591 
592 	/// Medium qualifier 64 bit unsigned integer type.
593 	/// @see gtc_type_precision
594 	typedef detail::uint64 mediump_uint64_t;
595 
596 	/// Medium qualifier 8 bit unsigned integer type.
597 	/// @see gtc_type_precision
598 	typedef detail::uint8 mediump_u8;
599 
600 	/// Medium qualifier 16 bit unsigned integer type.
601 	/// @see gtc_type_precision
602 	typedef detail::uint16 mediump_u16;
603 
604 	/// Medium qualifier 32 bit unsigned integer type.
605 	/// @see gtc_type_precision
606 	typedef detail::uint32 mediump_u32;
607 
608 	/// Medium qualifier 64 bit unsigned integer type.
609 	/// @see gtc_type_precision
610 	typedef detail::uint64 mediump_u64;
611 
612 	/// High qualifier 8 bit unsigned integer type.
613 	/// @see gtc_type_precision
614 	typedef detail::uint8 highp_uint8;
615 
616 	/// High qualifier 16 bit unsigned integer type.
617 	/// @see gtc_type_precision
618 	typedef detail::uint16 highp_uint16;
619 
620 	/// High qualifier 32 bit unsigned integer type.
621 	/// @see gtc_type_precision
622 	typedef detail::uint32 highp_uint32;
623 
624 	/// High qualifier 64 bit unsigned integer type.
625 	/// @see gtc_type_precision
626 	typedef detail::uint64 highp_uint64;
627 
628 	/// High qualifier 8 bit unsigned integer type.
629 	/// @see gtc_type_precision
630 	typedef detail::uint8 highp_uint8_t;
631 
632 	/// High qualifier 16 bit unsigned integer type.
633 	/// @see gtc_type_precision
634 	typedef detail::uint16 highp_uint16_t;
635 
636 	/// High qualifier 32 bit unsigned integer type.
637 	/// @see gtc_type_precision
638 	typedef detail::uint32 highp_uint32_t;
639 
640 	/// High qualifier 64 bit unsigned integer type.
641 	/// @see gtc_type_precision
642 	typedef detail::uint64 highp_uint64_t;
643 
644 	/// High qualifier 8 bit unsigned integer type.
645 	/// @see gtc_type_precision
646 	typedef detail::uint8 highp_u8;
647 
648 	/// High qualifier 16 bit unsigned integer type.
649 	/// @see gtc_type_precision
650 	typedef detail::uint16 highp_u16;
651 
652 	/// High qualifier 32 bit unsigned integer type.
653 	/// @see gtc_type_precision
654 	typedef detail::uint32 highp_u32;
655 
656 	/// High qualifier 64 bit unsigned integer type.
657 	/// @see gtc_type_precision
658 	typedef detail::uint64 highp_u64;
659 
660 #if GLM_HAS_EXTENDED_INTEGER_TYPE
661 	using std::uint8_t;
662 	using std::uint16_t;
663 	using std::uint32_t;
664 	using std::uint64_t;
665 #else
666 	/// Default qualifier 8 bit unsigned integer type.
667 	/// @see gtc_type_precision
668 	typedef detail::uint8 uint8_t;
669 
670 	/// Default qualifier 16 bit unsigned integer type.
671 	/// @see gtc_type_precision
672 	typedef detail::uint16 uint16_t;
673 
674 	/// Default qualifier 32 bit unsigned integer type.
675 	/// @see gtc_type_precision
676 	typedef detail::uint32 uint32_t;
677 
678 	/// Default qualifier 64 bit unsigned integer type.
679 	/// @see gtc_type_precision
680 	typedef detail::uint64 uint64_t;
681 #endif
682 
683 	/// Default qualifier 8 bit unsigned integer type.
684 	/// @see gtc_type_precision
685 	typedef detail::uint8 u8;
686 
687 	/// Default qualifier 16 bit unsigned integer type.
688 	/// @see gtc_type_precision
689 	typedef detail::uint16 u16;
690 
691 	/// Default qualifier 32 bit unsigned integer type.
692 	/// @see gtc_type_precision
693 	typedef detail::uint32 u32;
694 
695 	/// Default qualifier 64 bit unsigned integer type.
696 	/// @see gtc_type_precision
697 	typedef detail::uint64 u64;
698 
699 
700 
701 
702 
703 	//////////////////////
704 	// Float vector types
705 
706 	/// Single-qualifier floating-point scalar.
707 	/// @see gtc_type_precision
708 	typedef float float32;
709 
710 	/// Double-qualifier floating-point scalar.
711 	/// @see gtc_type_precision
712 	typedef double float64;
713 
714 	/// Low 32 bit single-qualifier floating-point scalar.
715 	/// @see gtc_type_precision
716 	typedef float32 lowp_float32;
717 
718 	/// Low 64 bit double-qualifier floating-point scalar.
719 	/// @see gtc_type_precision
720 	typedef float64 lowp_float64;
721 
722 	/// Low 32 bit single-qualifier floating-point scalar.
723 	/// @see gtc_type_precision
724 	typedef float32 lowp_float32_t;
725 
726 	/// Low 64 bit double-qualifier floating-point scalar.
727 	/// @see gtc_type_precision
728 	typedef float64 lowp_float64_t;
729 
730 	/// Low 32 bit single-qualifier floating-point scalar.
731 	/// @see gtc_type_precision
732 	typedef float32 lowp_f32;
733 
734 	/// Low 64 bit double-qualifier floating-point scalar.
735 	/// @see gtc_type_precision
736 	typedef float64 lowp_f64;
737 
738 	/// Low 32 bit single-qualifier floating-point scalar.
739 	/// @see gtc_type_precision
740 	typedef float32 lowp_float32;
741 
742 	/// Low 64 bit double-qualifier floating-point scalar.
743 	/// @see gtc_type_precision
744 	typedef float64 lowp_float64;
745 
746 	/// Low 32 bit single-qualifier floating-point scalar.
747 	/// @see gtc_type_precision
748 	typedef float32 lowp_float32_t;
749 
750 	/// Low 64 bit double-qualifier floating-point scalar.
751 	/// @see gtc_type_precision
752 	typedef float64 lowp_float64_t;
753 
754 	/// Low 32 bit single-qualifier floating-point scalar.
755 	/// @see gtc_type_precision
756 	typedef float32 lowp_f32;
757 
758 	/// Low 64 bit double-qualifier floating-point scalar.
759 	/// @see gtc_type_precision
760 	typedef float64 lowp_f64;
761 
762 
763 	/// Low 32 bit single-qualifier floating-point scalar.
764 	/// @see gtc_type_precision
765 	typedef float32 lowp_float32;
766 
767 	/// Low 64 bit double-qualifier floating-point scalar.
768 	/// @see gtc_type_precision
769 	typedef float64 lowp_float64;
770 
771 	/// Low 32 bit single-qualifier floating-point scalar.
772 	/// @see gtc_type_precision
773 	typedef float32 lowp_float32_t;
774 
775 	/// Low 64 bit double-qualifier floating-point scalar.
776 	/// @see gtc_type_precision
777 	typedef float64 lowp_float64_t;
778 
779 	/// Low 32 bit single-qualifier floating-point scalar.
780 	/// @see gtc_type_precision
781 	typedef float32 lowp_f32;
782 
783 	/// Low 64 bit double-qualifier floating-point scalar.
784 	/// @see gtc_type_precision
785 	typedef float64 lowp_f64;
786 
787 
788 	/// Medium 32 bit single-qualifier floating-point scalar.
789 	/// @see gtc_type_precision
790 	typedef float32 mediump_float32;
791 
792 	/// Medium 64 bit double-qualifier floating-point scalar.
793 	/// @see gtc_type_precision
794 	typedef float64 mediump_float64;
795 
796 	/// Medium 32 bit single-qualifier floating-point scalar.
797 	/// @see gtc_type_precision
798 	typedef float32 mediump_float32_t;
799 
800 	/// Medium 64 bit double-qualifier floating-point scalar.
801 	/// @see gtc_type_precision
802 	typedef float64 mediump_float64_t;
803 
804 	/// Medium 32 bit single-qualifier floating-point scalar.
805 	/// @see gtc_type_precision
806 	typedef float32 mediump_f32;
807 
808 	/// Medium 64 bit double-qualifier floating-point scalar.
809 	/// @see gtc_type_precision
810 	typedef float64 mediump_f64;
811 
812 
813 	/// High 32 bit single-qualifier floating-point scalar.
814 	/// @see gtc_type_precision
815 	typedef float32 highp_float32;
816 
817 	/// High 64 bit double-qualifier floating-point scalar.
818 	/// @see gtc_type_precision
819 	typedef float64 highp_float64;
820 
821 	/// High 32 bit single-qualifier floating-point scalar.
822 	/// @see gtc_type_precision
823 	typedef float32 highp_float32_t;
824 
825 	/// High 64 bit double-qualifier floating-point scalar.
826 	/// @see gtc_type_precision
827 	typedef float64 highp_float64_t;
828 
829 	/// High 32 bit single-qualifier floating-point scalar.
830 	/// @see gtc_type_precision
831 	typedef float32 highp_f32;
832 
833 	/// High 64 bit double-qualifier floating-point scalar.
834 	/// @see gtc_type_precision
835 	typedef float64 highp_f64;
836 
837 
838 #if(defined(GLM_PRECISION_LOWP_FLOAT))
839 	/// Default 32 bit single-qualifier floating-point scalar.
840 	/// @see gtc_type_precision
841 	typedef lowp_float32_t float32_t;
842 
843 	/// Default 64 bit double-qualifier floating-point scalar.
844 	/// @see gtc_type_precision
845 	typedef lowp_float64_t float64_t;
846 
847 	/// Default 32 bit single-qualifier floating-point scalar.
848 	/// @see gtc_type_precision
849 	typedef lowp_f32 f32;
850 
851 	/// Default 64 bit double-qualifier floating-point scalar.
852 	/// @see gtc_type_precision
853 	typedef lowp_f64 f64;
854 
855 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
856 	/// Default 32 bit single-qualifier floating-point scalar.
857 	/// @see gtc_type_precision
858 	typedef mediump_float32 float32_t;
859 
860 	/// Default 64 bit double-qualifier floating-point scalar.
861 	/// @see gtc_type_precision
862 	typedef mediump_float64 float64_t;
863 
864 	/// Default 32 bit single-qualifier floating-point scalar.
865 	/// @see gtc_type_precision
866 	typedef mediump_float32 f32;
867 
868 	/// Default 64 bit double-qualifier floating-point scalar.
869 	/// @see gtc_type_precision
870 	typedef mediump_float64 f64;
871 
872 #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
873 
874 	/// Default 32 bit single-qualifier floating-point scalar.
875 	/// @see gtc_type_precision
876 	typedef highp_float32_t float32_t;
877 
878 	/// Default 64 bit double-qualifier floating-point scalar.
879 	/// @see gtc_type_precision
880 	typedef highp_float64_t float64_t;
881 
882 	/// Default 32 bit single-qualifier floating-point scalar.
883 	/// @see gtc_type_precision
884 	typedef highp_float32_t f32;
885 
886 	/// Default 64 bit double-qualifier floating-point scalar.
887 	/// @see gtc_type_precision
888 	typedef highp_float64_t f64;
889 #endif
890 
891 
892 	/// Low single-qualifier floating-point vector of 1 component.
893 	/// @see gtc_type_precision
894 	typedef vec<1, float, lowp> lowp_fvec1;
895 
896 	/// Low single-qualifier floating-point vector of 2 components.
897 	/// @see gtc_type_precision
898 	typedef vec<2, float, lowp> lowp_fvec2;
899 
900 	/// Low single-qualifier floating-point vector of 3 components.
901 	/// @see gtc_type_precision
902 	typedef vec<3, float, lowp> lowp_fvec3;
903 
904 	/// Low single-qualifier floating-point vector of 4 components.
905 	/// @see gtc_type_precision
906 	typedef vec<4, float, lowp> lowp_fvec4;
907 
908 
909 	/// Medium single-qualifier floating-point vector of 1 component.
910 	/// @see gtc_type_precision
911 	typedef vec<1, float, mediump> mediump_fvec1;
912 
913 	/// Medium Single-qualifier floating-point vector of 2 components.
914 	/// @see gtc_type_precision
915 	typedef vec<2, float, mediump> mediump_fvec2;
916 
917 	/// Medium Single-qualifier floating-point vector of 3 components.
918 	/// @see gtc_type_precision
919 	typedef vec<3, float, mediump> mediump_fvec3;
920 
921 	/// Medium Single-qualifier floating-point vector of 4 components.
922 	/// @see gtc_type_precision
923 	typedef vec<4, float, mediump> mediump_fvec4;
924 
925 
926 	/// High single-qualifier floating-point vector of 1 component.
927 	/// @see gtc_type_precision
928 	typedef vec<1, float, highp> highp_fvec1;
929 
930 	/// High Single-qualifier floating-point vector of 2 components.
931 	/// @see core_precision
932 	typedef vec<2, float, highp> highp_fvec2;
933 
934 	/// High Single-qualifier floating-point vector of 3 components.
935 	/// @see core_precision
936 	typedef vec<3, float, highp> highp_fvec3;
937 
938 	/// High Single-qualifier floating-point vector of 4 components.
939 	/// @see core_precision
940 	typedef vec<4, float, highp> highp_fvec4;
941 
942 
943 	/// Low single-qualifier floating-point vector of 1 component.
944 	/// @see gtc_type_precision
945 	typedef vec<1, f32, lowp> lowp_f32vec1;
946 
947 	/// Low single-qualifier floating-point vector of 2 components.
948 	/// @see core_precision
949 	typedef vec<2, f32, lowp> lowp_f32vec2;
950 
951 	/// Low single-qualifier floating-point vector of 3 components.
952 	/// @see core_precision
953 	typedef vec<3, f32, lowp> lowp_f32vec3;
954 
955 	/// Low single-qualifier floating-point vector of 4 components.
956 	/// @see core_precision
957 	typedef vec<4, f32, lowp> lowp_f32vec4;
958 
959 	/// Medium single-qualifier floating-point vector of 1 component.
960 	/// @see gtc_type_precision
961 	typedef vec<1, f32, mediump> mediump_f32vec1;
962 
963 	/// Medium single-qualifier floating-point vector of 2 components.
964 	/// @see core_precision
965 	typedef vec<2, f32, mediump> mediump_f32vec2;
966 
967 	/// Medium single-qualifier floating-point vector of 3 components.
968 	/// @see core_precision
969 	typedef vec<3, f32, mediump> mediump_f32vec3;
970 
971 	/// Medium single-qualifier floating-point vector of 4 components.
972 	/// @see core_precision
973 	typedef vec<4, f32, mediump> mediump_f32vec4;
974 
975 	/// High single-qualifier floating-point vector of 1 component.
976 	/// @see gtc_type_precision
977 	typedef vec<1, f32, highp> highp_f32vec1;
978 
979 	/// High single-qualifier floating-point vector of 2 components.
980 	/// @see gtc_type_precision
981 	typedef vec<2, f32, highp> highp_f32vec2;
982 
983 	/// High single-qualifier floating-point vector of 3 components.
984 	/// @see gtc_type_precision
985 	typedef vec<3, f32, highp> highp_f32vec3;
986 
987 	/// High single-qualifier floating-point vector of 4 components.
988 	/// @see gtc_type_precision
989 	typedef vec<4, f32, highp> highp_f32vec4;
990 
991 
992 	/// Low double-qualifier floating-point vector of 1 component.
993 	/// @see gtc_type_precision
994 	typedef vec<1, f64, lowp> lowp_f64vec1;
995 
996 	/// Low double-qualifier floating-point vector of 2 components.
997 	/// @see gtc_type_precision
998 	typedef vec<2, f64, lowp> lowp_f64vec2;
999 
1000 	/// Low double-qualifier floating-point vector of 3 components.
1001 	/// @see gtc_type_precision
1002 	typedef vec<3, f64, lowp> lowp_f64vec3;
1003 
1004 	/// Low double-qualifier floating-point vector of 4 components.
1005 	/// @see gtc_type_precision
1006 	typedef vec<4, f64, lowp> lowp_f64vec4;
1007 
1008 	/// Medium double-qualifier floating-point vector of 1 component.
1009 	/// @see gtc_type_precision
1010 	typedef vec<1, f64, mediump> mediump_f64vec1;
1011 
1012 	/// Medium double-qualifier floating-point vector of 2 components.
1013 	/// @see gtc_type_precision
1014 	typedef vec<2, f64, mediump> mediump_f64vec2;
1015 
1016 	/// Medium double-qualifier floating-point vector of 3 components.
1017 	/// @see gtc_type_precision
1018 	typedef vec<3, f64, mediump> mediump_f64vec3;
1019 
1020 	/// Medium double-qualifier floating-point vector of 4 components.
1021 	/// @see gtc_type_precision
1022 	typedef vec<4, f64, mediump> mediump_f64vec4;
1023 
1024 	/// High double-qualifier floating-point vector of 1 component.
1025 	/// @see gtc_type_precision
1026 	typedef vec<1, f64, highp> highp_f64vec1;
1027 
1028 	/// High double-qualifier floating-point vector of 2 components.
1029 	/// @see gtc_type_precision
1030 	typedef vec<2, f64, highp> highp_f64vec2;
1031 
1032 	/// High double-qualifier floating-point vector of 3 components.
1033 	/// @see gtc_type_precision
1034 	typedef vec<3, f64, highp> highp_f64vec3;
1035 
1036 	/// High double-qualifier floating-point vector of 4 components.
1037 	/// @see gtc_type_precision
1038 	typedef vec<4, f64, highp> highp_f64vec4;
1039 
1040 
1041 
1042 	//////////////////////
1043 	// Float matrix types
1044 
1045 	/// Low single-qualifier floating-point 1x1 matrix.
1046 	/// @see gtc_type_precision
1047 	//typedef lowp_f32 lowp_fmat1x1;
1048 
1049 	/// Low single-qualifier floating-point 2x2 matrix.
1050 	/// @see gtc_type_precision
1051 	typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
1052 
1053 	/// Low single-qualifier floating-point 2x3 matrix.
1054 	/// @see gtc_type_precision
1055 	typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
1056 
1057 	/// Low single-qualifier floating-point 2x4 matrix.
1058 	/// @see gtc_type_precision
1059 	typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
1060 
1061 	/// Low single-qualifier floating-point 3x2 matrix.
1062 	/// @see gtc_type_precision
1063 	typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
1064 
1065 	/// Low single-qualifier floating-point 3x3 matrix.
1066 	/// @see gtc_type_precision
1067 	typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
1068 
1069 	/// Low single-qualifier floating-point 3x4 matrix.
1070 	/// @see gtc_type_precision
1071 	typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
1072 
1073 	/// Low single-qualifier floating-point 4x2 matrix.
1074 	/// @see gtc_type_precision
1075 	typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
1076 
1077 	/// Low single-qualifier floating-point 4x3 matrix.
1078 	/// @see gtc_type_precision
1079 	typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
1080 
1081 	/// Low single-qualifier floating-point 4x4 matrix.
1082 	/// @see gtc_type_precision
1083 	typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
1084 
1085 	/// Low single-qualifier floating-point 1x1 matrix.
1086 	/// @see gtc_type_precision
1087 	//typedef lowp_fmat1x1 lowp_fmat1;
1088 
1089 	/// Low single-qualifier floating-point 2x2 matrix.
1090 	/// @see gtc_type_precision
1091 	typedef lowp_fmat2x2 lowp_fmat2;
1092 
1093 	/// Low single-qualifier floating-point 3x3 matrix.
1094 	/// @see gtc_type_precision
1095 	typedef lowp_fmat3x3 lowp_fmat3;
1096 
1097 	/// Low single-qualifier floating-point 4x4 matrix.
1098 	/// @see gtc_type_precision
1099 	typedef lowp_fmat4x4 lowp_fmat4;
1100 
1101 
1102 	/// Medium single-qualifier floating-point 1x1 matrix.
1103 	/// @see gtc_type_precision
1104 	//typedef mediump_f32 mediump_fmat1x1;
1105 
1106 	/// Medium single-qualifier floating-point 2x2 matrix.
1107 	/// @see gtc_type_precision
1108 	typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
1109 
1110 	/// Medium single-qualifier floating-point 2x3 matrix.
1111 	/// @see gtc_type_precision
1112 	typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
1113 
1114 	/// Medium single-qualifier floating-point 2x4 matrix.
1115 	/// @see gtc_type_precision
1116 	typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
1117 
1118 	/// Medium single-qualifier floating-point 3x2 matrix.
1119 	/// @see gtc_type_precision
1120 	typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
1121 
1122 	/// Medium single-qualifier floating-point 3x3 matrix.
1123 	/// @see gtc_type_precision
1124 	typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
1125 
1126 	/// Medium single-qualifier floating-point 3x4 matrix.
1127 	/// @see gtc_type_precision
1128 	typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
1129 
1130 	/// Medium single-qualifier floating-point 4x2 matrix.
1131 	/// @see gtc_type_precision
1132 	typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
1133 
1134 	/// Medium single-qualifier floating-point 4x3 matrix.
1135 	/// @see gtc_type_precision
1136 	typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
1137 
1138 	/// Medium single-qualifier floating-point 4x4 matrix.
1139 	/// @see gtc_type_precision
1140 	typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
1141 
1142 	/// Medium single-qualifier floating-point 1x1 matrix.
1143 	/// @see gtc_type_precision
1144 	//typedef mediump_fmat1x1 mediump_fmat1;
1145 
1146 	/// Medium single-qualifier floating-point 2x2 matrix.
1147 	/// @see gtc_type_precision
1148 	typedef mediump_fmat2x2 mediump_fmat2;
1149 
1150 	/// Medium single-qualifier floating-point 3x3 matrix.
1151 	/// @see gtc_type_precision
1152 	typedef mediump_fmat3x3 mediump_fmat3;
1153 
1154 	/// Medium single-qualifier floating-point 4x4 matrix.
1155 	/// @see gtc_type_precision
1156 	typedef mediump_fmat4x4 mediump_fmat4;
1157 
1158 
1159 	/// High single-qualifier floating-point 1x1 matrix.
1160 	/// @see gtc_type_precision
1161 	//typedef highp_f32 highp_fmat1x1;
1162 
1163 	/// High single-qualifier floating-point 2x2 matrix.
1164 	/// @see gtc_type_precision
1165 	typedef mat<2, 2, f32, highp> highp_fmat2x2;
1166 
1167 	/// High single-qualifier floating-point 2x3 matrix.
1168 	/// @see gtc_type_precision
1169 	typedef mat<2, 3, f32, highp> highp_fmat2x3;
1170 
1171 	/// High single-qualifier floating-point 2x4 matrix.
1172 	/// @see gtc_type_precision
1173 	typedef mat<2, 4, f32, highp> highp_fmat2x4;
1174 
1175 	/// High single-qualifier floating-point 3x2 matrix.
1176 	/// @see gtc_type_precision
1177 	typedef mat<3, 2, f32, highp> highp_fmat3x2;
1178 
1179 	/// High single-qualifier floating-point 3x3 matrix.
1180 	/// @see gtc_type_precision
1181 	typedef mat<3, 3, f32, highp> highp_fmat3x3;
1182 
1183 	/// High single-qualifier floating-point 3x4 matrix.
1184 	/// @see gtc_type_precision
1185 	typedef mat<3, 4, f32, highp> highp_fmat3x4;
1186 
1187 	/// High single-qualifier floating-point 4x2 matrix.
1188 	/// @see gtc_type_precision
1189 	typedef mat<4, 2, f32, highp> highp_fmat4x2;
1190 
1191 	/// High single-qualifier floating-point 4x3 matrix.
1192 	/// @see gtc_type_precision
1193 	typedef mat<4, 3, f32, highp> highp_fmat4x3;
1194 
1195 	/// High single-qualifier floating-point 4x4 matrix.
1196 	/// @see gtc_type_precision
1197 	typedef mat<4, 4, f32, highp> highp_fmat4x4;
1198 
1199 	/// High single-qualifier floating-point 1x1 matrix.
1200 	/// @see gtc_type_precision
1201 	//typedef highp_fmat1x1 highp_fmat1;
1202 
1203 	/// High single-qualifier floating-point 2x2 matrix.
1204 	/// @see gtc_type_precision
1205 	typedef highp_fmat2x2 highp_fmat2;
1206 
1207 	/// High single-qualifier floating-point 3x3 matrix.
1208 	/// @see gtc_type_precision
1209 	typedef highp_fmat3x3 highp_fmat3;
1210 
1211 	/// High single-qualifier floating-point 4x4 matrix.
1212 	/// @see gtc_type_precision
1213 	typedef highp_fmat4x4 highp_fmat4;
1214 
1215 
1216 	/// Low single-qualifier floating-point 1x1 matrix.
1217 	/// @see gtc_type_precision
1218 	//typedef f32 lowp_f32mat1x1;
1219 
1220 	/// Low single-qualifier floating-point 2x2 matrix.
1221 	/// @see gtc_type_precision
1222 	typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
1223 
1224 	/// Low single-qualifier floating-point 2x3 matrix.
1225 	/// @see gtc_type_precision
1226 	typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
1227 
1228 	/// Low single-qualifier floating-point 2x4 matrix.
1229 	/// @see gtc_type_precision
1230 	typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
1231 
1232 	/// Low single-qualifier floating-point 3x2 matrix.
1233 	/// @see gtc_type_precision
1234 	typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
1235 
1236 	/// Low single-qualifier floating-point 3x3 matrix.
1237 	/// @see gtc_type_precision
1238 	typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
1239 
1240 	/// Low single-qualifier floating-point 3x4 matrix.
1241 	/// @see gtc_type_precision
1242 	typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
1243 
1244 	/// Low single-qualifier floating-point 4x2 matrix.
1245 	/// @see gtc_type_precision
1246 	typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
1247 
1248 	/// Low single-qualifier floating-point 4x3 matrix.
1249 	/// @see gtc_type_precision
1250 	typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
1251 
1252 	/// Low single-qualifier floating-point 4x4 matrix.
1253 	/// @see gtc_type_precision
1254 	typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
1255 
1256 	/// Low single-qualifier floating-point 1x1 matrix.
1257 	/// @see gtc_type_precision
1258 	//typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
1259 
1260 	/// Low single-qualifier floating-point 2x2 matrix.
1261 	/// @see gtc_type_precision
1262 	typedef lowp_f32mat2x2 lowp_f32mat2;
1263 
1264 	/// Low single-qualifier floating-point 3x3 matrix.
1265 	/// @see gtc_type_precision
1266 	typedef lowp_f32mat3x3 lowp_f32mat3;
1267 
1268 	/// Low single-qualifier floating-point 4x4 matrix.
1269 	/// @see gtc_type_precision
1270 	typedef lowp_f32mat4x4 lowp_f32mat4;
1271 
1272 
1273 	/// High single-qualifier floating-point 1x1 matrix.
1274 	/// @see gtc_type_precision
1275 	//typedef f32 mediump_f32mat1x1;
1276 
1277 	/// Low single-qualifier floating-point 2x2 matrix.
1278 	/// @see gtc_type_precision
1279 	typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
1280 
1281 	/// Medium single-qualifier floating-point 2x3 matrix.
1282 	/// @see gtc_type_precision
1283 	typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
1284 
1285 	/// Medium single-qualifier floating-point 2x4 matrix.
1286 	/// @see gtc_type_precision
1287 	typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
1288 
1289 	/// Medium single-qualifier floating-point 3x2 matrix.
1290 	/// @see gtc_type_precision
1291 	typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
1292 
1293 	/// Medium single-qualifier floating-point 3x3 matrix.
1294 	/// @see gtc_type_precision
1295 	typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
1296 
1297 	/// Medium single-qualifier floating-point 3x4 matrix.
1298 	/// @see gtc_type_precision
1299 	typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
1300 
1301 	/// Medium single-qualifier floating-point 4x2 matrix.
1302 	/// @see gtc_type_precision
1303 	typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
1304 
1305 	/// Medium single-qualifier floating-point 4x3 matrix.
1306 	/// @see gtc_type_precision
1307 	typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
1308 
1309 	/// Medium single-qualifier floating-point 4x4 matrix.
1310 	/// @see gtc_type_precision
1311 	typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
1312 
1313 	/// Medium single-qualifier floating-point 1x1 matrix.
1314 	/// @see gtc_type_precision
1315 	//typedef detail::tmat1x1<f32, mediump> f32mat1;
1316 
1317 	/// Medium single-qualifier floating-point 2x2 matrix.
1318 	/// @see gtc_type_precision
1319 	typedef mediump_f32mat2x2 mediump_f32mat2;
1320 
1321 	/// Medium single-qualifier floating-point 3x3 matrix.
1322 	/// @see gtc_type_precision
1323 	typedef mediump_f32mat3x3 mediump_f32mat3;
1324 
1325 	/// Medium single-qualifier floating-point 4x4 matrix.
1326 	/// @see gtc_type_precision
1327 	typedef mediump_f32mat4x4 mediump_f32mat4;
1328 
1329 
1330 	/// High single-qualifier floating-point 1x1 matrix.
1331 	/// @see gtc_type_precision
1332 	//typedef f32 highp_f32mat1x1;
1333 
1334 	/// High single-qualifier floating-point 2x2 matrix.
1335 	/// @see gtc_type_precision
1336 	typedef mat<2, 2, f32, highp> highp_f32mat2x2;
1337 
1338 	/// High single-qualifier floating-point 2x3 matrix.
1339 	/// @see gtc_type_precision
1340 	typedef mat<2, 3, f32, highp> highp_f32mat2x3;
1341 
1342 	/// High single-qualifier floating-point 2x4 matrix.
1343 	/// @see gtc_type_precision
1344 	typedef mat<2, 4, f32, highp> highp_f32mat2x4;
1345 
1346 	/// High single-qualifier floating-point 3x2 matrix.
1347 	/// @see gtc_type_precision
1348 	typedef mat<3, 2, f32, highp> highp_f32mat3x2;
1349 
1350 	/// High single-qualifier floating-point 3x3 matrix.
1351 	/// @see gtc_type_precision
1352 	typedef mat<3, 3, f32, highp> highp_f32mat3x3;
1353 
1354 	/// High single-qualifier floating-point 3x4 matrix.
1355 	/// @see gtc_type_precision
1356 	typedef mat<3, 4, f32, highp> highp_f32mat3x4;
1357 
1358 	/// High single-qualifier floating-point 4x2 matrix.
1359 	/// @see gtc_type_precision
1360 	typedef mat<4, 2, f32, highp> highp_f32mat4x2;
1361 
1362 	/// High single-qualifier floating-point 4x3 matrix.
1363 	/// @see gtc_type_precision
1364 	typedef mat<4, 3, f32, highp> highp_f32mat4x3;
1365 
1366 	/// High single-qualifier floating-point 4x4 matrix.
1367 	/// @see gtc_type_precision
1368 	typedef mat<4, 4, f32, highp> highp_f32mat4x4;
1369 
1370 	/// High single-qualifier floating-point 1x1 matrix.
1371 	/// @see gtc_type_precision
1372 	//typedef detail::tmat1x1<f32, highp> f32mat1;
1373 
1374 	/// High single-qualifier floating-point 2x2 matrix.
1375 	/// @see gtc_type_precision
1376 	typedef highp_f32mat2x2 highp_f32mat2;
1377 
1378 	/// High single-qualifier floating-point 3x3 matrix.
1379 	/// @see gtc_type_precision
1380 	typedef highp_f32mat3x3 highp_f32mat3;
1381 
1382 	/// High single-qualifier floating-point 4x4 matrix.
1383 	/// @see gtc_type_precision
1384 	typedef highp_f32mat4x4 highp_f32mat4;
1385 
1386 
1387 	/// Low double-qualifier floating-point 1x1 matrix.
1388 	/// @see gtc_type_precision
1389 	//typedef f64 lowp_f64mat1x1;
1390 
1391 	/// Low double-qualifier floating-point 2x2 matrix.
1392 	/// @see gtc_type_precision
1393 	typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
1394 
1395 	/// Low double-qualifier floating-point 2x3 matrix.
1396 	/// @see gtc_type_precision
1397 	typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
1398 
1399 	/// Low double-qualifier floating-point 2x4 matrix.
1400 	/// @see gtc_type_precision
1401 	typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
1402 
1403 	/// Low double-qualifier floating-point 3x2 matrix.
1404 	/// @see gtc_type_precision
1405 	typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
1406 
1407 	/// Low double-qualifier floating-point 3x3 matrix.
1408 	/// @see gtc_type_precision
1409 	typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
1410 
1411 	/// Low double-qualifier floating-point 3x4 matrix.
1412 	/// @see gtc_type_precision
1413 	typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
1414 
1415 	/// Low double-qualifier floating-point 4x2 matrix.
1416 	/// @see gtc_type_precision
1417 	typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
1418 
1419 	/// Low double-qualifier floating-point 4x3 matrix.
1420 	/// @see gtc_type_precision
1421 	typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
1422 
1423 	/// Low double-qualifier floating-point 4x4 matrix.
1424 	/// @see gtc_type_precision
1425 	typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
1426 
1427 	/// Low double-qualifier floating-point 1x1 matrix.
1428 	/// @see gtc_type_precision
1429 	//typedef lowp_f64mat1x1 lowp_f64mat1;
1430 
1431 	/// Low double-qualifier floating-point 2x2 matrix.
1432 	/// @see gtc_type_precision
1433 	typedef lowp_f64mat2x2 lowp_f64mat2;
1434 
1435 	/// Low double-qualifier floating-point 3x3 matrix.
1436 	/// @see gtc_type_precision
1437 	typedef lowp_f64mat3x3 lowp_f64mat3;
1438 
1439 	/// Low double-qualifier floating-point 4x4 matrix.
1440 	/// @see gtc_type_precision
1441 	typedef lowp_f64mat4x4 lowp_f64mat4;
1442 
1443 
1444 	/// Medium double-qualifier floating-point 1x1 matrix.
1445 	/// @see gtc_type_precision
1446 	//typedef f64 Highp_f64mat1x1;
1447 
1448 	/// Medium double-qualifier floating-point 2x2 matrix.
1449 	/// @see gtc_type_precision
1450 	typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
1451 
1452 	/// Medium double-qualifier floating-point 2x3 matrix.
1453 	/// @see gtc_type_precision
1454 	typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
1455 
1456 	/// Medium double-qualifier floating-point 2x4 matrix.
1457 	/// @see gtc_type_precision
1458 	typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
1459 
1460 	/// Medium double-qualifier floating-point 3x2 matrix.
1461 	/// @see gtc_type_precision
1462 	typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
1463 
1464 	/// Medium double-qualifier floating-point 3x3 matrix.
1465 	/// @see gtc_type_precision
1466 	typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
1467 
1468 	/// Medium double-qualifier floating-point 3x4 matrix.
1469 	/// @see gtc_type_precision
1470 	typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
1471 
1472 	/// Medium double-qualifier floating-point 4x2 matrix.
1473 	/// @see gtc_type_precision
1474 	typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
1475 
1476 	/// Medium double-qualifier floating-point 4x3 matrix.
1477 	/// @see gtc_type_precision
1478 	typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
1479 
1480 	/// Medium double-qualifier floating-point 4x4 matrix.
1481 	/// @see gtc_type_precision
1482 	typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
1483 
1484 	/// Medium double-qualifier floating-point 1x1 matrix.
1485 	/// @see gtc_type_precision
1486 	//typedef mediump_f64mat1x1 mediump_f64mat1;
1487 
1488 	/// Medium double-qualifier floating-point 2x2 matrix.
1489 	/// @see gtc_type_precision
1490 	typedef mediump_f64mat2x2 mediump_f64mat2;
1491 
1492 	/// Medium double-qualifier floating-point 3x3 matrix.
1493 	/// @see gtc_type_precision
1494 	typedef mediump_f64mat3x3 mediump_f64mat3;
1495 
1496 	/// Medium double-qualifier floating-point 4x4 matrix.
1497 	/// @see gtc_type_precision
1498 	typedef mediump_f64mat4x4 mediump_f64mat4;
1499 
1500 	/// High double-qualifier floating-point 1x1 matrix.
1501 	/// @see gtc_type_precision
1502 	//typedef f64 highp_f64mat1x1;
1503 
1504 	/// High double-qualifier floating-point 2x2 matrix.
1505 	/// @see gtc_type_precision
1506 	typedef mat<2, 2, f64, highp> highp_f64mat2x2;
1507 
1508 	/// High double-qualifier floating-point 2x3 matrix.
1509 	/// @see gtc_type_precision
1510 	typedef mat<2, 3, f64, highp> highp_f64mat2x3;
1511 
1512 	/// High double-qualifier floating-point 2x4 matrix.
1513 	/// @see gtc_type_precision
1514 	typedef mat<2, 4, f64, highp> highp_f64mat2x4;
1515 
1516 	/// High double-qualifier floating-point 3x2 matrix.
1517 	/// @see gtc_type_precision
1518 	typedef mat<3, 2, f64, highp> highp_f64mat3x2;
1519 
1520 	/// High double-qualifier floating-point 3x3 matrix.
1521 	/// @see gtc_type_precision
1522 	typedef mat<3, 3, f64, highp> highp_f64mat3x3;
1523 
1524 	/// High double-qualifier floating-point 3x4 matrix.
1525 	/// @see gtc_type_precision
1526 	typedef mat<3, 4, f64, highp> highp_f64mat3x4;
1527 
1528 	/// High double-qualifier floating-point 4x2 matrix.
1529 	/// @see gtc_type_precision
1530 	typedef mat<4, 2, f64, highp> highp_f64mat4x2;
1531 
1532 	/// High double-qualifier floating-point 4x3 matrix.
1533 	/// @see gtc_type_precision
1534 	typedef mat<4, 3, f64, highp> highp_f64mat4x3;
1535 
1536 	/// High double-qualifier floating-point 4x4 matrix.
1537 	/// @see gtc_type_precision
1538 	typedef mat<4, 4, f64, highp> highp_f64mat4x4;
1539 
1540 	/// High double-qualifier floating-point 1x1 matrix.
1541 	/// @see gtc_type_precision
1542 	//typedef highp_f64mat1x1 highp_f64mat1;
1543 
1544 	/// High double-qualifier floating-point 2x2 matrix.
1545 	/// @see gtc_type_precision
1546 	typedef highp_f64mat2x2 highp_f64mat2;
1547 
1548 	/// High double-qualifier floating-point 3x3 matrix.
1549 	/// @see gtc_type_precision
1550 	typedef highp_f64mat3x3 highp_f64mat3;
1551 
1552 	/// High double-qualifier floating-point 4x4 matrix.
1553 	/// @see gtc_type_precision
1554 	typedef highp_f64mat4x4 highp_f64mat4;
1555 
1556 
1557 
1558 
1559 	/// Low qualifier 8 bit unsigned integer scalar type.
1560 	/// @see gtc_type_precision
1561 	typedef vec<1, u8, lowp> lowp_u8vec1;
1562 
1563 	/// Low qualifier 8 bit unsigned integer vector of 2 components type.
1564 	/// @see gtc_type_precision
1565 	typedef vec<2, u8, lowp> lowp_u8vec2;
1566 
1567 	/// Low qualifier 8 bit unsigned integer vector of 3 components type.
1568 	/// @see gtc_type_precision
1569 	typedef vec<3, u8, lowp> lowp_u8vec3;
1570 
1571 	/// Low qualifier 8 bit unsigned integer vector of 4 components type.
1572 	/// @see gtc_type_precision
1573 	typedef vec<4, u8, lowp> lowp_u8vec4;
1574 
1575 
1576 	/// Medium qualifier 8 bit unsigned integer scalar type.
1577 	/// @see gtc_type_precision
1578 	typedef vec<1, u8, mediump> mediump_u8vec1;
1579 
1580 	/// Medium qualifier 8 bit unsigned integer vector of 2 components type.
1581 	/// @see gtc_type_precision
1582 	typedef vec<2, u8, mediump> mediump_u8vec2;
1583 
1584 	/// Medium qualifier 8 bit unsigned integer vector of 3 components type.
1585 	/// @see gtc_type_precision
1586 	typedef vec<3, u8, mediump> mediump_u8vec3;
1587 
1588 	/// Medium qualifier 8 bit unsigned integer vector of 4 components type.
1589 	/// @see gtc_type_precision
1590 	typedef vec<4, u8, mediump> mediump_u8vec4;
1591 
1592 
1593 	/// High qualifier 8 bit unsigned integer scalar type.
1594 	/// @see gtc_type_precision
1595 	typedef vec<1, u8, highp> highp_u8vec1;
1596 
1597 	/// High qualifier 8 bit unsigned integer vector of 2 components type.
1598 	/// @see gtc_type_precision
1599 	typedef vec<2, u8, highp> highp_u8vec2;
1600 
1601 	/// High qualifier 8 bit unsigned integer vector of 3 components type.
1602 	/// @see gtc_type_precision
1603 	typedef vec<3, u8, highp> highp_u8vec3;
1604 
1605 	/// High qualifier 8 bit unsigned integer vector of 4 components type.
1606 	/// @see gtc_type_precision
1607 	typedef vec<4, u8, highp> highp_u8vec4;
1608 
1609 
1610 
1611 	/// Default qualifier 8 bit unsigned integer scalar type.
1612 	/// @see gtc_type_precision
1613 	typedef vec<1, u8, defaultp> u8vec1;
1614 
1615 	/// Default qualifier 8 bit unsigned integer vector of 2 components type.
1616 	/// @see gtc_type_precision
1617 	typedef vec<2, u8, defaultp> u8vec2;
1618 
1619 	/// Default qualifier 8 bit unsigned integer vector of 3 components type.
1620 	/// @see gtc_type_precision
1621 	typedef vec<3, u8, defaultp> u8vec3;
1622 
1623 	/// Default qualifier 8 bit unsigned integer vector of 4 components type.
1624 	/// @see gtc_type_precision
1625 	typedef vec<4, u8, defaultp> u8vec4;
1626 
1627 
1628 
1629 
1630 	/// Low qualifier 16 bit unsigned integer scalar type.
1631 	/// @see gtc_type_precision
1632 	typedef vec<1, u16, lowp>		lowp_u16vec1;
1633 
1634 	/// Low qualifier 16 bit unsigned integer vector of 2 components type.
1635 	/// @see gtc_type_precision
1636 	typedef vec<2, u16, lowp>		lowp_u16vec2;
1637 
1638 	/// Low qualifier 16 bit unsigned integer vector of 3 components type.
1639 	/// @see gtc_type_precision
1640 	typedef vec<3, u16, lowp>		lowp_u16vec3;
1641 
1642 	/// Low qualifier 16 bit unsigned integer vector of 4 components type.
1643 	/// @see gtc_type_precision
1644 	typedef vec<4, u16, lowp>		lowp_u16vec4;
1645 
1646 
1647 	/// Medium qualifier 16 bit unsigned integer scalar type.
1648 	/// @see gtc_type_precision
1649 	typedef vec<1, u16, mediump>		mediump_u16vec1;
1650 
1651 	/// Medium qualifier 16 bit unsigned integer vector of 2 components type.
1652 	/// @see gtc_type_precision
1653 	typedef vec<2, u16, mediump>		mediump_u16vec2;
1654 
1655 	/// Medium qualifier 16 bit unsigned integer vector of 3 components type.
1656 	/// @see gtc_type_precision
1657 	typedef vec<3, u16, mediump>		mediump_u16vec3;
1658 
1659 	/// Medium qualifier 16 bit unsigned integer vector of 4 components type.
1660 	/// @see gtc_type_precision
1661 	typedef vec<4, u16, mediump>		mediump_u16vec4;
1662 
1663 
1664 	/// High qualifier 16 bit unsigned integer scalar type.
1665 	/// @see gtc_type_precision
1666 	typedef vec<1, u16, highp>		highp_u16vec1;
1667 
1668 	/// High qualifier 16 bit unsigned integer vector of 2 components type.
1669 	/// @see gtc_type_precision
1670 	typedef vec<2, u16, highp>		highp_u16vec2;
1671 
1672 	/// High qualifier 16 bit unsigned integer vector of 3 components type.
1673 	/// @see gtc_type_precision
1674 	typedef vec<3, u16, highp>		highp_u16vec3;
1675 
1676 	/// High qualifier 16 bit unsigned integer vector of 4 components type.
1677 	/// @see gtc_type_precision
1678 	typedef vec<4, u16, highp>		highp_u16vec4;
1679 
1680 
1681 
1682 
1683 	/// Default qualifier 16 bit unsigned integer scalar type.
1684 	/// @see gtc_type_precision
1685 	typedef vec<1, u16, defaultp> u16vec1;
1686 
1687 	/// Default qualifier 16 bit unsigned integer vector of 2 components type.
1688 	/// @see gtc_type_precision
1689 	typedef vec<2, u16, defaultp> u16vec2;
1690 
1691 	/// Default qualifier 16 bit unsigned integer vector of 3 components type.
1692 	/// @see gtc_type_precision
1693 	typedef vec<3, u16, defaultp> u16vec3;
1694 
1695 	/// Default qualifier 16 bit unsigned integer vector of 4 components type.
1696 	/// @see gtc_type_precision
1697 	typedef vec<4, u16, defaultp> u16vec4;
1698 
1699 
1700 
1701 	/// Low qualifier 32 bit unsigned integer scalar type.
1702 	/// @see gtc_type_precision
1703 	typedef vec<1, u32, lowp>		lowp_u32vec1;
1704 
1705 	/// Low qualifier 32 bit unsigned integer vector of 2 components type.
1706 	/// @see gtc_type_precision
1707 	typedef vec<2, u32, lowp>		lowp_u32vec2;
1708 
1709 	/// Low qualifier 32 bit unsigned integer vector of 3 components type.
1710 	/// @see gtc_type_precision
1711 	typedef vec<3, u32, lowp>		lowp_u32vec3;
1712 
1713 	/// Low qualifier 32 bit unsigned integer vector of 4 components type.
1714 	/// @see gtc_type_precision
1715 	typedef vec<4, u32, lowp>		lowp_u32vec4;
1716 
1717 
1718 	/// Medium qualifier 32 bit unsigned integer scalar type.
1719 	/// @see gtc_type_precision
1720 	typedef vec<1, u32, mediump>		mediump_u32vec1;
1721 
1722 	/// Medium qualifier 32 bit unsigned integer vector of 2 components type.
1723 	/// @see gtc_type_precision
1724 	typedef vec<2, u32, mediump>		mediump_u32vec2;
1725 
1726 	/// Medium qualifier 32 bit unsigned integer vector of 3 components type.
1727 	/// @see gtc_type_precision
1728 	typedef vec<3, u32, mediump>		mediump_u32vec3;
1729 
1730 	/// Medium qualifier 32 bit unsigned integer vector of 4 components type.
1731 	/// @see gtc_type_precision
1732 	typedef vec<4, u32, mediump>		mediump_u32vec4;
1733 
1734 
1735 	/// High qualifier 32 bit unsigned integer scalar type.
1736 	/// @see gtc_type_precision
1737 	typedef vec<1, u32, highp>		highp_u32vec1;
1738 
1739 	/// High qualifier 32 bit unsigned integer vector of 2 components type.
1740 	/// @see gtc_type_precision
1741 	typedef vec<2, u32, highp>		highp_u32vec2;
1742 
1743 	/// High qualifier 32 bit unsigned integer vector of 3 components type.
1744 	/// @see gtc_type_precision
1745 	typedef vec<3, u32, highp>		highp_u32vec3;
1746 
1747 	/// High qualifier 32 bit unsigned integer vector of 4 components type.
1748 	/// @see gtc_type_precision
1749 	typedef vec<4, u32, highp>		highp_u32vec4;
1750 
1751 
1752 
1753 	/// Default qualifier 32 bit unsigned integer scalar type.
1754 	/// @see gtc_type_precision
1755 	typedef vec<1, u32, defaultp> u32vec1;
1756 
1757 	/// Default qualifier 32 bit unsigned integer vector of 2 components type.
1758 	/// @see gtc_type_precision
1759 	typedef vec<2, u32, defaultp> u32vec2;
1760 
1761 	/// Default qualifier 32 bit unsigned integer vector of 3 components type.
1762 	/// @see gtc_type_precision
1763 	typedef vec<3, u32, defaultp> u32vec3;
1764 
1765 	/// Default qualifier 32 bit unsigned integer vector of 4 components type.
1766 	/// @see gtc_type_precision
1767 	typedef vec<4, u32, defaultp> u32vec4;
1768 
1769 
1770 
1771 
1772 	/// Low qualifier 64 bit unsigned integer scalar type.
1773 	/// @see gtc_type_precision
1774 	typedef vec<1, u64, lowp>		lowp_u64vec1;
1775 
1776 	/// Low qualifier 64 bit unsigned integer vector of 2 components type.
1777 	/// @see gtc_type_precision
1778 	typedef vec<2, u64, lowp>		lowp_u64vec2;
1779 
1780 	/// Low qualifier 64 bit unsigned integer vector of 3 components type.
1781 	/// @see gtc_type_precision
1782 	typedef vec<3, u64, lowp>		lowp_u64vec3;
1783 
1784 	/// Low qualifier 64 bit unsigned integer vector of 4 components type.
1785 	/// @see gtc_type_precision
1786 	typedef vec<4, u64, lowp>		lowp_u64vec4;
1787 
1788 
1789 	/// Medium qualifier 64 bit unsigned integer scalar type.
1790 	/// @see gtc_type_precision
1791 	typedef vec<1, u64, mediump>		mediump_u64vec1;
1792 
1793 	/// Medium qualifier 64 bit unsigned integer vector of 2 components type.
1794 	/// @see gtc_type_precision
1795 	typedef vec<2, u64, mediump>		mediump_u64vec2;
1796 
1797 	/// Medium qualifier 64 bit unsigned integer vector of 3 components type.
1798 	/// @see gtc_type_precision
1799 	typedef vec<3, u64, mediump>		mediump_u64vec3;
1800 
1801 	/// Medium qualifier 64 bit unsigned integer vector of 4 components type.
1802 	/// @see gtc_type_precision
1803 	typedef vec<4, u64, mediump>		mediump_u64vec4;
1804 
1805 
1806 	/// High qualifier 64 bit unsigned integer scalar type.
1807 	/// @see gtc_type_precision
1808 	typedef vec<1, u64, highp>		highp_u64vec1;
1809 
1810 	/// High qualifier 64 bit unsigned integer vector of 2 components type.
1811 	/// @see gtc_type_precision
1812 	typedef vec<2, u64, highp>		highp_u64vec2;
1813 
1814 	/// High qualifier 64 bit unsigned integer vector of 3 components type.
1815 	/// @see gtc_type_precision
1816 	typedef vec<3, u64, highp>		highp_u64vec3;
1817 
1818 	/// High qualifier 64 bit unsigned integer vector of 4 components type.
1819 	/// @see gtc_type_precision
1820 	typedef vec<4, u64, highp>		highp_u64vec4;
1821 
1822 
1823 
1824 
1825 	/// Default qualifier 64 bit unsigned integer scalar type.
1826 	/// @see gtc_type_precision
1827 	typedef vec<1, u64, defaultp> u64vec1;
1828 
1829 	/// Default qualifier 64 bit unsigned integer vector of 2 components type.
1830 	/// @see gtc_type_precision
1831 	typedef vec<2, u64, defaultp> u64vec2;
1832 
1833 	/// Default qualifier 64 bit unsigned integer vector of 3 components type.
1834 	/// @see gtc_type_precision
1835 	typedef vec<3, u64, defaultp> u64vec3;
1836 
1837 	/// Default qualifier 64 bit unsigned integer vector of 4 components type.
1838 	/// @see gtc_type_precision
1839 	typedef vec<4, u64, defaultp> u64vec4;
1840 
1841 
1842 	//////////////////////
1843 	// Float vector types
1844 
1845 	/// 32 bit single-qualifier floating-point scalar.
1846 	/// @see gtc_type_precision
1847 	typedef float32 float32_t;
1848 
1849 	/// 32 bit single-qualifier floating-point scalar.
1850 	/// @see gtc_type_precision
1851 	typedef float32 f32;
1852 
1853 #	ifndef GLM_FORCE_SINGLE_ONLY
1854 
1855 		/// 64 bit double-qualifier floating-point scalar.
1856 		/// @see gtc_type_precision
1857 		typedef float64 float64_t;
1858 
1859 		/// 64 bit double-qualifier floating-point scalar.
1860 		/// @see gtc_type_precision
1861 		typedef float64 f64;
1862 #	endif//GLM_FORCE_SINGLE_ONLY
1863 
1864 	/// Single-qualifier floating-point vector of 1 component.
1865 	/// @see gtc_type_precision
1866 	typedef vec<1, float, defaultp> fvec1;
1867 
1868 	/// Single-qualifier floating-point vector of 2 components.
1869 	/// @see gtc_type_precision
1870 	typedef vec<2, float, defaultp> fvec2;
1871 
1872 	/// Single-qualifier floating-point vector of 3 components.
1873 	/// @see gtc_type_precision
1874 	typedef vec<3, float, defaultp> fvec3;
1875 
1876 	/// Single-qualifier floating-point vector of 4 components.
1877 	/// @see gtc_type_precision
1878 	typedef vec<4, float, defaultp> fvec4;
1879 
1880 
1881 	/// Single-qualifier floating-point vector of 1 component.
1882 	/// @see gtc_type_precision
1883 	typedef vec<1, f32, defaultp> f32vec1;
1884 
1885 	/// Single-qualifier floating-point vector of 2 components.
1886 	/// @see gtc_type_precision
1887 	typedef vec<2, f32, defaultp> f32vec2;
1888 
1889 	/// Single-qualifier floating-point vector of 3 components.
1890 	/// @see gtc_type_precision
1891 	typedef vec<3, f32, defaultp> f32vec3;
1892 
1893 	/// Single-qualifier floating-point vector of 4 components.
1894 	/// @see gtc_type_precision
1895 	typedef vec<4, f32, defaultp> f32vec4;
1896 
1897 #	ifndef GLM_FORCE_SINGLE_ONLY
1898 		/// Double-qualifier floating-point vector of 1 component.
1899 		/// @see gtc_type_precision
1900 		typedef vec<1, f64, defaultp> f64vec1;
1901 
1902 		/// Double-qualifier floating-point vector of 2 components.
1903 		/// @see gtc_type_precision
1904 		typedef vec<2, f64, defaultp> f64vec2;
1905 
1906 		/// Double-qualifier floating-point vector of 3 components.
1907 		/// @see gtc_type_precision
1908 		typedef vec<3, f64, defaultp> f64vec3;
1909 
1910 		/// Double-qualifier floating-point vector of 4 components.
1911 		/// @see gtc_type_precision
1912 		typedef vec<4, f64, defaultp> f64vec4;
1913 #	endif//GLM_FORCE_SINGLE_ONLY
1914 
1915 
1916 	//////////////////////
1917 	// Float matrix types
1918 
1919 	/// Single-qualifier floating-point 1x1 matrix.
1920 	/// @see gtc_type_precision
1921 	//typedef detail::tmat1x1<f32> fmat1;
1922 
1923 	/// Single-qualifier floating-point 2x2 matrix.
1924 	/// @see gtc_type_precision
1925 	typedef mat<2, 2, f32, defaultp> fmat2;
1926 
1927 	/// Single-qualifier floating-point 3x3 matrix.
1928 	/// @see gtc_type_precision
1929 	typedef mat<3, 3, f32, defaultp> fmat3;
1930 
1931 	/// Single-qualifier floating-point 4x4 matrix.
1932 	/// @see gtc_type_precision
1933 	typedef mat<4, 4, f32, defaultp> fmat4;
1934 
1935 
1936 	/// Single-qualifier floating-point 1x1 matrix.
1937 	/// @see gtc_type_precision
1938 	//typedef f32 fmat1x1;
1939 
1940 	/// Single-qualifier floating-point 2x2 matrix.
1941 	/// @see gtc_type_precision
1942 	typedef mat<2, 2, f32, defaultp> fmat2x2;
1943 
1944 	/// Single-qualifier floating-point 2x3 matrix.
1945 	/// @see gtc_type_precision
1946 	typedef mat<2, 3, f32, defaultp> fmat2x3;
1947 
1948 	/// Single-qualifier floating-point 2x4 matrix.
1949 	/// @see gtc_type_precision
1950 	typedef mat<2, 4, f32, defaultp> fmat2x4;
1951 
1952 	/// Single-qualifier floating-point 3x2 matrix.
1953 	/// @see gtc_type_precision
1954 	typedef mat<3, 2, f32, defaultp> fmat3x2;
1955 
1956 	/// Single-qualifier floating-point 3x3 matrix.
1957 	/// @see gtc_type_precision
1958 	typedef mat<3, 3, f32, defaultp> fmat3x3;
1959 
1960 	/// Single-qualifier floating-point 3x4 matrix.
1961 	/// @see gtc_type_precision
1962 	typedef mat<3, 4, f32, defaultp> fmat3x4;
1963 
1964 	/// Single-qualifier floating-point 4x2 matrix.
1965 	/// @see gtc_type_precision
1966 	typedef mat<4, 2, f32, defaultp> fmat4x2;
1967 
1968 	/// Single-qualifier floating-point 4x3 matrix.
1969 	/// @see gtc_type_precision
1970 	typedef mat<4, 3, f32, defaultp> fmat4x3;
1971 
1972 	/// Single-qualifier floating-point 4x4 matrix.
1973 	/// @see gtc_type_precision
1974 	typedef mat<4, 4, f32, defaultp> fmat4x4;
1975 
1976 
1977 	/// Single-qualifier floating-point 1x1 matrix.
1978 	/// @see gtc_type_precision
1979 	//typedef detail::tmat1x1<f32, defaultp> f32mat1;
1980 
1981 	/// Single-qualifier floating-point 2x2 matrix.
1982 	/// @see gtc_type_precision
1983 	typedef mat<2, 2, f32, defaultp> f32mat2;
1984 
1985 	/// Single-qualifier floating-point 3x3 matrix.
1986 	/// @see gtc_type_precision
1987 	typedef mat<3, 3, f32, defaultp> f32mat3;
1988 
1989 	/// Single-qualifier floating-point 4x4 matrix.
1990 	/// @see gtc_type_precision
1991 	typedef mat<4, 4, f32, defaultp> f32mat4;
1992 
1993 
1994 	/// Single-qualifier floating-point 1x1 matrix.
1995 	/// @see gtc_type_precision
1996 	//typedef f32 f32mat1x1;
1997 
1998 	/// Single-qualifier floating-point 2x2 matrix.
1999 	/// @see gtc_type_precision
2000 	typedef mat<2, 2, f32, defaultp> f32mat2x2;
2001 
2002 	/// Single-qualifier floating-point 2x3 matrix.
2003 	/// @see gtc_type_precision
2004 	typedef mat<2, 3, f32, defaultp> f32mat2x3;
2005 
2006 	/// Single-qualifier floating-point 2x4 matrix.
2007 	/// @see gtc_type_precision
2008 	typedef mat<2, 4, f32, defaultp> f32mat2x4;
2009 
2010 	/// Single-qualifier floating-point 3x2 matrix.
2011 	/// @see gtc_type_precision
2012 	typedef mat<3, 2, f32, defaultp> f32mat3x2;
2013 
2014 	/// Single-qualifier floating-point 3x3 matrix.
2015 	/// @see gtc_type_precision
2016 	typedef mat<3, 3, f32, defaultp> f32mat3x3;
2017 
2018 	/// Single-qualifier floating-point 3x4 matrix.
2019 	/// @see gtc_type_precision
2020 	typedef mat<3, 4, f32, defaultp> f32mat3x4;
2021 
2022 	/// Single-qualifier floating-point 4x2 matrix.
2023 	/// @see gtc_type_precision
2024 	typedef mat<4, 2, f32, defaultp> f32mat4x2;
2025 
2026 	/// Single-qualifier floating-point 4x3 matrix.
2027 	/// @see gtc_type_precision
2028 	typedef mat<4, 3, f32, defaultp> f32mat4x3;
2029 
2030 	/// Single-qualifier floating-point 4x4 matrix.
2031 	/// @see gtc_type_precision
2032 	typedef mat<4, 4, f32, defaultp> f32mat4x4;
2033 
2034 
2035 #	ifndef GLM_FORCE_SINGLE_ONLY
2036 
2037 	/// Double-qualifier floating-point 1x1 matrix.
2038 	/// @see gtc_type_precision
2039 	//typedef detail::tmat1x1<f64, defaultp> f64mat1;
2040 
2041 	/// Double-qualifier floating-point 2x2 matrix.
2042 	/// @see gtc_type_precision
2043 	typedef mat<2, 2, f64, defaultp> f64mat2;
2044 
2045 	/// Double-qualifier floating-point 3x3 matrix.
2046 	/// @see gtc_type_precision
2047 	typedef mat<3, 3, f64, defaultp> f64mat3;
2048 
2049 	/// Double-qualifier floating-point 4x4 matrix.
2050 	/// @see gtc_type_precision
2051 	typedef mat<4, 4, f64, defaultp> f64mat4;
2052 
2053 
2054 	/// Double-qualifier floating-point 1x1 matrix.
2055 	/// @see gtc_type_precision
2056 	//typedef f64 f64mat1x1;
2057 
2058 	/// Double-qualifier floating-point 2x2 matrix.
2059 	/// @see gtc_type_precision
2060 	typedef mat<2, 2, f64, defaultp> f64mat2x2;
2061 
2062 	/// Double-qualifier floating-point 2x3 matrix.
2063 	/// @see gtc_type_precision
2064 	typedef mat<2, 3, f64, defaultp> f64mat2x3;
2065 
2066 	/// Double-qualifier floating-point 2x4 matrix.
2067 	/// @see gtc_type_precision
2068 	typedef mat<2, 4, f64, defaultp> f64mat2x4;
2069 
2070 	/// Double-qualifier floating-point 3x2 matrix.
2071 	/// @see gtc_type_precision
2072 	typedef mat<3, 2, f64, defaultp> f64mat3x2;
2073 
2074 	/// Double-qualifier floating-point 3x3 matrix.
2075 	/// @see gtc_type_precision
2076 	typedef mat<3, 3, f64, defaultp> f64mat3x3;
2077 
2078 	/// Double-qualifier floating-point 3x4 matrix.
2079 	/// @see gtc_type_precision
2080 	typedef mat<3, 4, f64, defaultp> f64mat3x4;
2081 
2082 	/// Double-qualifier floating-point 4x2 matrix.
2083 	/// @see gtc_type_precision
2084 	typedef mat<4, 2, f64, defaultp> f64mat4x2;
2085 
2086 	/// Double-qualifier floating-point 4x3 matrix.
2087 	/// @see gtc_type_precision
2088 	typedef mat<4, 3, f64, defaultp> f64mat4x3;
2089 
2090 	/// Double-qualifier floating-point 4x4 matrix.
2091 	/// @see gtc_type_precision
2092 	typedef mat<4, 4, f64, defaultp> f64mat4x4;
2093 
2094 #	endif//GLM_FORCE_SINGLE_ONLY
2095 
2096 	//////////////////////////
2097 	// Quaternion types
2098 
2099 	/// Single-qualifier floating-point quaternion.
2100 	/// @see gtc_type_precision
2101 	typedef qua<f32, defaultp> f32quat;
2102 
2103 	/// Low single-qualifier floating-point quaternion.
2104 	/// @see gtc_type_precision
2105 	typedef qua<f32, lowp> lowp_f32quat;
2106 
2107 	/// Low double-qualifier floating-point quaternion.
2108 	/// @see gtc_type_precision
2109 	typedef qua<f64, lowp> lowp_f64quat;
2110 
2111 	/// Medium single-qualifier floating-point quaternion.
2112 	/// @see gtc_type_precision
2113 	typedef qua<f32, mediump> mediump_f32quat;
2114 
2115 #	ifndef GLM_FORCE_SINGLE_ONLY
2116 
2117 	/// Medium double-qualifier floating-point quaternion.
2118 	/// @see gtc_type_precision
2119 	typedef qua<f64, mediump> mediump_f64quat;
2120 
2121 	/// High single-qualifier floating-point quaternion.
2122 	/// @see gtc_type_precision
2123 	typedef qua<f32, highp> highp_f32quat;
2124 
2125 	/// High double-qualifier floating-point quaternion.
2126 	/// @see gtc_type_precision
2127 	typedef qua<f64, highp> highp_f64quat;
2128 
2129 	/// Double-qualifier floating-point quaternion.
2130 	/// @see gtc_type_precision
2131 	typedef qua<f64, defaultp> f64quat;
2132 
2133 #	endif//GLM_FORCE_SINGLE_ONLY
2134 
2135 	/// @}
2136 }//namespace glm
2137 
2138 #include "type_precision.inl"
2139