GLM  0.9.5
type_mat.hpp
1 
29 #ifndef glm_core_type_mat
30 #define glm_core_type_mat
31 
32 #include "precision.hpp"
33 
34 namespace glm{
35 namespace detail
36 {
37  template <typename T, precision P> struct tvec2;
38  template <typename T, precision P> struct tvec3;
39  template <typename T, precision P> struct tvec4;
40  template <typename T, precision P> struct tmat2x2;
41  template <typename T, precision P> struct tmat2x3;
42  template <typename T, precision P> struct tmat2x4;
43  template <typename T, precision P> struct tmat3x2;
44  template <typename T, precision P> struct tmat3x3;
45  template <typename T, precision P> struct tmat3x4;
46  template <typename T, precision P> struct tmat4x2;
47  template <typename T, precision P> struct tmat4x3;
48  template <typename T, precision P> struct tmat4x4;
49 
50  template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
51  struct outerProduct_trait{};
52 
53  template <template <class, precision> class matType, typename T, precision P>
54  struct compute_inverse{};
55 }//namespace detail
56 
59 
65  typedef detail::tmat2x2<float, lowp> lowp_mat2;
66 
72  typedef detail::tmat2x2<float, mediump> mediump_mat2;
73 
79  typedef detail::tmat2x2<float, highp> highp_mat2;
80 
86  typedef detail::tmat2x2<float, lowp> lowp_mat2x2;
87 
93  typedef detail::tmat2x2<float, mediump> mediump_mat2x2;
94 
100  typedef detail::tmat2x2<float, highp> highp_mat2x2;
101 
103 
106 
112  typedef detail::tmat2x3<float, lowp> lowp_mat2x3;
113 
119  typedef detail::tmat2x3<float, mediump> mediump_mat2x3;
120 
126  typedef detail::tmat2x3<float, highp> highp_mat2x3;
127 
129 
132 
138  typedef detail::tmat2x4<float, lowp> lowp_mat2x4;
139 
145  typedef detail::tmat2x4<float, mediump> mediump_mat2x4;
146 
152  typedef detail::tmat2x4<float, highp> highp_mat2x4;
153 
155 
158 
164  typedef detail::tmat3x2<float, lowp> lowp_mat3x2;
165 
171  typedef detail::tmat3x2<float, mediump> mediump_mat3x2;
172 
178  typedef detail::tmat3x2<float, highp> highp_mat3x2;
179 
181 
184 
190  typedef detail::tmat3x3<float, lowp> lowp_mat3;
191 
197  typedef detail::tmat3x3<float, mediump> mediump_mat3;
198 
204  typedef detail::tmat3x3<float, highp> highp_mat3;
205 
211  typedef detail::tmat3x3<float, lowp> lowp_mat3x3;
212 
218  typedef detail::tmat3x3<float, mediump> mediump_mat3x3;
219 
225  typedef detail::tmat3x3<float, highp> highp_mat3x3;
226 
228 
231 
237  typedef detail::tmat3x4<float, lowp> lowp_mat3x4;
238 
244  typedef detail::tmat3x4<float, mediump> mediump_mat3x4;
245 
251  typedef detail::tmat3x4<float, highp> highp_mat3x4;
252 
254 
257 
263  typedef detail::tmat4x2<float, lowp> lowp_mat4x2;
264 
270  typedef detail::tmat4x2<float, mediump> mediump_mat4x2;
271 
277  typedef detail::tmat4x2<float, highp> highp_mat4x2;
278 
280 
283 
289  typedef detail::tmat4x3<float, lowp> lowp_mat4x3;
290 
296  typedef detail::tmat4x3<float, mediump> mediump_mat4x3;
297 
303  typedef detail::tmat4x3<float, highp> highp_mat4x3;
304 
306 
307 
310 
316  typedef detail::tmat4x4<float, lowp> lowp_mat4;
317 
323  typedef detail::tmat4x4<float, mediump> mediump_mat4;
324 
330  typedef detail::tmat4x4<float, highp> highp_mat4;
331 
337  typedef detail::tmat4x4<float, lowp> lowp_mat4x4;
338 
344  typedef detail::tmat4x4<float, mediump> mediump_mat4x4;
345 
351  typedef detail::tmat4x4<float, highp> highp_mat4x4;
352 
354 
357 
359  // Float definition
360 
361 #if(defined(GLM_PRECISION_LOWP_FLOAT))
362  typedef lowp_mat2x2 mat2x2;
363  typedef lowp_mat2x3 mat2x3;
364  typedef lowp_mat2x4 mat2x4;
365  typedef lowp_mat3x2 mat3x2;
366  typedef lowp_mat3x3 mat3x3;
367  typedef lowp_mat3x4 mat3x4;
368  typedef lowp_mat4x2 mat4x2;
369  typedef lowp_mat4x3 mat4x3;
370  typedef lowp_mat4x4 mat4x4;
371 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
372  typedef mediump_mat2x2 mat2x2;
373  typedef mediump_mat2x3 mat2x3;
374  typedef mediump_mat2x4 mat2x4;
375  typedef mediump_mat3x2 mat3x2;
376  typedef mediump_mat3x3 mat3x3;
377  typedef mediump_mat3x4 mat3x4;
378  typedef mediump_mat4x2 mat4x2;
379  typedef mediump_mat4x3 mat4x3;
380  typedef mediump_mat4x4 mat4x4;
381 #else
382  typedef highp_mat2x2 mat2x2;
386 
391 
396 
401 
406 
411 
416 
421 
426 
427 #endif//GLM_PRECISION
428 
432  typedef mat2x2 mat2;
433 
437  typedef mat3x3 mat3;
438 
442  typedef mat4x4 mat4;
443 
445  // Double definition
446 
449 
454  typedef detail::tmat2x2<double, lowp> lowp_dmat2;
455 
460  typedef detail::tmat2x2<double, mediump> mediump_dmat2;
461 
466  typedef detail::tmat2x2<double, highp> highp_dmat2;
467 
472  typedef detail::tmat2x2<double, lowp> lowp_dmat2x2;
473 
478  typedef detail::tmat2x2<double, mediump> mediump_dmat2x2;
479 
484  typedef detail::tmat2x2<double, highp> highp_dmat2x2;
485 
487 
490 
495  typedef detail::tmat2x3<double, lowp> lowp_dmat2x3;
496 
501  typedef detail::tmat2x3<double, mediump> mediump_dmat2x3;
502 
507  typedef detail::tmat2x3<double, highp> highp_dmat2x3;
508 
510 
513 
518  typedef detail::tmat2x4<double, lowp> lowp_dmat2x4;
519 
524  typedef detail::tmat2x4<double, mediump> mediump_dmat2x4;
525 
530  typedef detail::tmat2x4<double, highp> highp_dmat2x4;
531 
533 
536 
541  typedef detail::tmat3x2<double, lowp> lowp_dmat3x2;
542 
547  typedef detail::tmat3x2<double, mediump> mediump_dmat3x2;
548 
553  typedef detail::tmat3x2<double, highp> highp_dmat3x2;
554 
556 
559 
564  typedef detail::tmat3x3<float, lowp> lowp_dmat3;
565 
570  typedef detail::tmat3x3<double, mediump> mediump_dmat3;
571 
576  typedef detail::tmat3x3<double, highp> highp_dmat3;
577 
582  typedef detail::tmat3x3<double, lowp> lowp_dmat3x3;
583 
588  typedef detail::tmat3x3<double, mediump> mediump_dmat3x3;
589 
594  typedef detail::tmat3x3<double, highp> highp_dmat3x3;
595 
597 
600 
605  typedef detail::tmat3x4<double, lowp> lowp_dmat3x4;
606 
611  typedef detail::tmat3x4<double, mediump> mediump_dmat3x4;
612 
617  typedef detail::tmat3x4<double, highp> highp_dmat3x4;
618 
620 
623 
628  typedef detail::tmat4x2<double, lowp> lowp_dmat4x2;
629 
634  typedef detail::tmat4x2<double, mediump> mediump_dmat4x2;
635 
640  typedef detail::tmat4x2<double, highp> highp_dmat4x2;
641 
643 
646 
651  typedef detail::tmat4x3<double, lowp> lowp_dmat4x3;
652 
657  typedef detail::tmat4x3<double, mediump> mediump_dmat4x3;
658 
663  typedef detail::tmat4x3<double, highp> highp_dmat4x3;
664 
666 
669 
674  typedef detail::tmat4x4<double, lowp> lowp_dmat4;
675 
680  typedef detail::tmat4x4<double, mediump> mediump_dmat4;
681 
686  typedef detail::tmat4x4<double, highp> highp_dmat4;
687 
692  typedef detail::tmat4x4<double, lowp> lowp_dmat4x4;
693 
698  typedef detail::tmat4x4<double, mediump> mediump_dmat4x4;
699 
704  typedef detail::tmat4x4<double, highp> highp_dmat4x4;
705 
707 
708 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
709  typedef lowp_dmat2x2 dmat2x2;
710  typedef lowp_dmat2x3 dmat2x3;
711  typedef lowp_dmat2x4 dmat2x4;
712  typedef lowp_dmat3x2 dmat3x2;
713  typedef lowp_dmat3x3 dmat3x3;
714  typedef lowp_dmat3x4 dmat3x4;
715  typedef lowp_dmat4x2 dmat4x2;
716  typedef lowp_dmat4x3 dmat4x3;
717  typedef lowp_dmat4x4 dmat4x4;
718 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
719  typedef mediump_dmat2x2 dmat2x2;
720  typedef mediump_dmat2x3 dmat2x3;
721  typedef mediump_dmat2x4 dmat2x4;
722  typedef mediump_dmat3x2 dmat3x2;
723  typedef mediump_dmat3x3 dmat3x3;
724  typedef mediump_dmat3x4 dmat3x4;
725  typedef mediump_dmat4x2 dmat4x2;
726  typedef mediump_dmat4x3 dmat4x3;
727  typedef mediump_dmat4x4 dmat4x4;
728 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
729 
734 
739 
744 
749 
754 
759 
764 
769 
774 
779 
784 
789 
790 #endif//GLM_PRECISION
791 
793 }//namespace glm
794 
795 #endif//glm_core_type_mat
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:425
detail::tmat4x4< double, highp > highp_dmat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:704
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:415
detail::tmat2x2< float, highp > highp_mat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:79
detail::tmat3x3< double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:570
detail::tmat2x4< float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:138
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:763
detail::tmat3x3< float, mediump > mediump_mat3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:197
detail::tmat3x3< float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:211
detail::tmat2x2< double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:472
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:758
detail::tmat3x4< double, highp > highp_dmat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:617
detail::tmat3x4< double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:605
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:405
detail::tmat2x2< float, mediump > mediump_mat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:72
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:420
detail::tmat4x4< float, highp > highp_mat4x4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:351
detail::tmat4x2< double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:634
detail::tmat4x3< float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:296
detail::tmat4x4< float, lowp > lowp_mat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:316
detail::tmat3x2< float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:164
detail::tmat3x4< float, highp > highp_mat3x4
3 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:251
detail::tmat2x2< float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:86
highp_dmat4x4 dmat4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:743
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:788
detail::tmat2x3< double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:501
detail::tmat4x4< float, highp > highp_mat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:330
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:778
detail::tmat3x3< float, highp > highp_mat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:204
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:442
detail::tmat2x2< double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:478
detail::tmat4x3< float, highp > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:303
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:768
detail::tmat2x4< double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:524
detail::tmat3x4< double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:611
detail::tmat2x2< double, highp > highp_dmat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:484
detail::tmat4x2< float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:270
highp_dmat3x3 dmat3
3 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:738
detail::tmat4x4< float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:344
detail::tmat2x2< float, lowp > lowp_mat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:65
detail::tmat3x3< float, lowp > lowp_mat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:190
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:748
detail::tmat3x3< double, highp > highp_dmat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:594
detail::tmat2x2< float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:93
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:783
detail::tmat4x3< float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:289
detail::tmat2x3< float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:119
detail::tmat4x3< double, highp > highp_dmat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:663
detail::tmat2x4< double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:518
detail::tmat3x3< float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:218
detail::tmat3x2< float, highp > highp_mat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:178
detail::tmat2x3< double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:495
detail::tmat3x3< float, highp > highp_mat3x3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:225
detail::tmat2x3< double, highp > highp_dmat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:507
detail::tmat3x3< double, highp > highp_dmat3
3 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:576
detail::tmat4x4< double, lowp > lowp_dmat4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:674
detail::tmat4x4< double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:680
detail::tmat3x2< double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:547
detail::tmat3x2< double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:541
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:410
detail::tmat3x4< float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:237
detail::tmat2x4< float, highp > highp_mat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:152
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:773
detail::tmat4x4< double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:692
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:385
detail::tmat2x4< float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:145
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:390
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
Definition: type_mat.hpp:395
detail::tmat4x2< float, highp > highp_mat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:277
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:400
detail::tmat4x2< float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:263
detail::tmat3x3< double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:582
detail::tmat3x3< float, lowp > lowp_dmat3
3 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:564
detail::tmat2x2< float, highp > highp_mat2x2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:100
detail::tmat4x4< float, mediump > mediump_mat4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:323
detail::tmat4x2< double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:628
highp_dmat2x2 dmat2
2 * 2 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:733
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
Definition: type_mat.hpp:437
detail::tmat3x2< double, highp > highp_dmat3x2
3 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:553
detail::tmat2x3< float, highp > highp_mat2x3
2 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:126
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
Definition: type_mat.hpp:432
detail::tmat4x4< double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:698
detail::tmat2x3< float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:112
detail::tmat4x4< float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:337
detail::tmat3x4< float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:244
detail::tmat4x2< double, highp > highp_dmat4x2
4 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:640
detail::tmat3x3< double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:588
detail::tmat2x2< double, highp > highp_dmat2
2 columns of 2 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:466
detail::tmat2x2< double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:460
detail::tmat4x3< double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:657
detail::tmat2x4< double, highp > highp_dmat2x4
2 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:530
detail::tmat4x3< double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:651
detail::tmat3x2< float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium precision floating-point numbers.
Definition: type_mat.hpp:171
detail::tmat2x2< double, lowp > lowp_dmat2
2 columns of 2 components matrix of low precision floating-point numbers.
Definition: type_mat.hpp:454
detail::tmat4x4< double, highp > highp_dmat4
4 columns of 4 components matrix of high precision floating-point numbers.
Definition: type_mat.hpp:686
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-precision floating-point numbers.
Definition: type_mat.hpp:753