| 1.0.2 API documentation

gtc/matrix_integer.hpp
Go to the documentation of this file.
1
13 #pragma once
14
15 // Dependency:
16 #include "../mat2x2.hpp"
17 #include "../mat2x3.hpp"
18 #include "../mat2x4.hpp"
19 #include "../mat3x2.hpp"
20 #include "../mat3x3.hpp"
21 #include "../mat3x4.hpp"
22 #include "../mat4x2.hpp"
23 #include "../mat4x3.hpp"
24 #include "../mat4x4.hpp"
25
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
27 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
28 #endif
29
30 namespace glm
31 {
34
37 typedef mat<2, 2, int, highp> highp_imat2;
38
41 typedef mat<3, 3, int, highp> highp_imat3;
42
45 typedef mat<4, 4, int, highp> highp_imat4;
46
49 typedef mat<2, 2, int, highp> highp_imat2x2;
50
53 typedef mat<2, 3, int, highp> highp_imat2x3;
54
57 typedef mat<2, 4, int, highp> highp_imat2x4;
58
61 typedef mat<3, 2, int, highp> highp_imat3x2;
62
65 typedef mat<3, 3, int, highp> highp_imat3x3;
66
69 typedef mat<3, 4, int, highp> highp_imat3x4;
70
73 typedef mat<4, 2, int, highp> highp_imat4x2;
74
77 typedef mat<4, 3, int, highp> highp_imat4x3;
78
81 typedef mat<4, 4, int, highp> highp_imat4x4;
82
83
86 typedef mat<2, 2, int, mediump> mediump_imat2;
87
90 typedef mat<3, 3, int, mediump> mediump_imat3;
91
94 typedef mat<4, 4, int, mediump> mediump_imat4;
95
96
99 typedef mat<2, 2, int, mediump> mediump_imat2x2;
100
103 typedef mat<2, 3, int, mediump> mediump_imat2x3;
104
107 typedef mat<2, 4, int, mediump> mediump_imat2x4;
108
111 typedef mat<3, 2, int, mediump> mediump_imat3x2;
112
115 typedef mat<3, 3, int, mediump> mediump_imat3x3;
116
119 typedef mat<3, 4, int, mediump> mediump_imat3x4;
120
123 typedef mat<4, 2, int, mediump> mediump_imat4x2;
124
127 typedef mat<4, 3, int, mediump> mediump_imat4x3;
128
131 typedef mat<4, 4, int, mediump> mediump_imat4x4;
132
133
136 typedef mat<2, 2, int, lowp> lowp_imat2;
137
140 typedef mat<3, 3, int, lowp> lowp_imat3;
141
144 typedef mat<4, 4, int, lowp> lowp_imat4;
145
146
149 typedef mat<2, 2, int, lowp> lowp_imat2x2;
150
153 typedef mat<2, 3, int, lowp> lowp_imat2x3;
154
157 typedef mat<2, 4, int, lowp> lowp_imat2x4;
158
161 typedef mat<3, 2, int, lowp> lowp_imat3x2;
162
165 typedef mat<3, 3, int, lowp> lowp_imat3x3;
166
169 typedef mat<3, 4, int, lowp> lowp_imat3x4;
170
173 typedef mat<4, 2, int, lowp> lowp_imat4x2;
174
177 typedef mat<4, 3, int, lowp> lowp_imat4x3;
178
181 typedef mat<4, 4, int, lowp> lowp_imat4x4;
182
183
186 typedef mat<2, 2, uint, highp> highp_umat2;
187
190 typedef mat<3, 3, uint, highp> highp_umat3;
191
194 typedef mat<4, 4, uint, highp> highp_umat4;
195
198 typedef mat<2, 2, uint, highp> highp_umat2x2;
199
202 typedef mat<2, 3, uint, highp> highp_umat2x3;
203
206 typedef mat<2, 4, uint, highp> highp_umat2x4;
207
210 typedef mat<3, 2, uint, highp> highp_umat3x2;
211
214 typedef mat<3, 3, uint, highp> highp_umat3x3;
215
218 typedef mat<3, 4, uint, highp> highp_umat3x4;
219
222 typedef mat<4, 2, uint, highp> highp_umat4x2;
223
226 typedef mat<4, 3, uint, highp> highp_umat4x3;
227
230 typedef mat<4, 4, uint, highp> highp_umat4x4;
231
232
235 typedef mat<2, 2, uint, mediump> mediump_umat2;
236
239 typedef mat<3, 3, uint, mediump> mediump_umat3;
240
243 typedef mat<4, 4, uint, mediump> mediump_umat4;
244
245
248 typedef mat<2, 2, uint, mediump> mediump_umat2x2;
249
252 typedef mat<2, 3, uint, mediump> mediump_umat2x3;
253
256 typedef mat<2, 4, uint, mediump> mediump_umat2x4;
257
260 typedef mat<3, 2, uint, mediump> mediump_umat3x2;
261
264 typedef mat<3, 3, uint, mediump> mediump_umat3x3;
265
268 typedef mat<3, 4, uint, mediump> mediump_umat3x4;
269
272 typedef mat<4, 2, uint, mediump> mediump_umat4x2;
273
276 typedef mat<4, 3, uint, mediump> mediump_umat4x3;
277
280 typedef mat<4, 4, uint, mediump> mediump_umat4x4;
281
282
285 typedef mat<2, 2, uint, lowp> lowp_umat2;
286
289 typedef mat<3, 3, uint, lowp> lowp_umat3;
290
293 typedef mat<4, 4, uint, lowp> lowp_umat4;
294
295
298 typedef mat<2, 2, uint, lowp> lowp_umat2x2;
299
302 typedef mat<2, 3, uint, lowp> lowp_umat2x3;
303
306 typedef mat<2, 4, uint, lowp> lowp_umat2x4;
307
310 typedef mat<3, 2, uint, lowp> lowp_umat3x2;
311
314 typedef mat<3, 3, uint, lowp> lowp_umat3x3;
315
318 typedef mat<3, 4, uint, lowp> lowp_umat3x4;
319
322 typedef mat<4, 2, uint, lowp> lowp_umat4x2;
323
326 typedef mat<4, 3, uint, lowp> lowp_umat4x3;
327
330 typedef mat<4, 4, uint, lowp> lowp_umat4x4;
331
332
333
336 typedef mat<2, 2, int, defaultp> imat2;
337
340 typedef mat<3, 3, int, defaultp> imat3;
341
344 typedef mat<4, 4, int, defaultp> imat4;
345
348 typedef mat<2, 2, int, defaultp> imat2x2;
349
352 typedef mat<2, 3, int, defaultp> imat2x3;
353
356 typedef mat<2, 4, int, defaultp> imat2x4;
357
360 typedef mat<3, 2, int, defaultp> imat3x2;
361
364 typedef mat<3, 3, int, defaultp> imat3x3;
365
368 typedef mat<3, 4, int, defaultp> imat3x4;
369
372 typedef mat<4, 2, int, defaultp> imat4x2;
373
376 typedef mat<4, 3, int, defaultp> imat4x3;
377
380 typedef mat<4, 4, int, defaultp> imat4x4;
381
382
383
386 typedef mat<2, 2, uint, defaultp> umat2;
387
390 typedef mat<3, 3, uint, defaultp> umat3;
391
394 typedef mat<4, 4, uint, defaultp> umat4;
395
398 typedef mat<2, 2, uint, defaultp> umat2x2;
399
402 typedef mat<2, 3, uint, defaultp> umat2x3;
403
406 typedef mat<2, 4, uint, defaultp> umat2x4;
407
410 typedef mat<3, 2, uint, defaultp> umat3x2;
411
414 typedef mat<3, 3, uint, defaultp> umat3x3;
415
418 typedef mat<3, 4, uint, defaultp> umat3x4;
419
422 typedef mat<4, 2, uint, defaultp> umat4x2;
423
426 typedef mat<4, 3, uint, defaultp> umat4x3;
427
430 typedef mat<4, 4, uint, defaultp> umat4x4;
431
433 }//namespace glm
glm::highp_umat3x4
mat< 3, 4, uint, highp > highp_umat3x4
High-qualifier unsigned integer 3x4 matrix.
Definition: fwd.hpp:1026
glm::highp_imat3x2
mat< 3, 2, int, highp > highp_imat3x2
High-qualifier signed integer 3x2 matrix.
Definition: fwd.hpp:817
glm::highp_imat3x4
mat< 3, 4, int, highp > highp_imat3x4
High-qualifier signed integer 3x4 matrix.
Definition: fwd.hpp:819
glm::imat3x2
mat< 3, 2, int, defaultp > imat3x2
Signed integer 3x2 matrix.
Definition: matrix_int3x2.hpp:30
glm::imat3
mat< 3, 3, int, defaultp > imat3
Signed integer 3x3 matrix.
Definition: matrix_int3x3.hpp:35
glm::lowp_imat3x4
mat< 3, 4, int, lowp > lowp_imat3x4
Low-qualifier signed integer 3x4 matrix.
Definition: fwd.hpp:799
glm::lowp_imat4x3
mat< 4, 3, int, lowp > lowp_imat4x3
Low-qualifier signed integer 4x3 matrix.
Definition: fwd.hpp:801
glm::imat2x4
mat< 2, 4, int, defaultp > imat2x4
Signed integer 2x4 matrix.
Definition: matrix_int2x4.hpp:30
glm::highp_umat4
mat< 4, 4, uint, highp > highp_umat4
High-qualifier unsigned integer 4x4 matrix.
Definition: gtc/matrix_integer.hpp:194
glm::highp_imat2x3
mat< 2, 3, int, highp > highp_imat2x3
High-qualifier signed integer 2x3 matrix.
Definition: fwd.hpp:815
glm::imat4
mat< 4, 4, int, defaultp > imat4
Signed integer 4x4 matrix.
Definition: matrix_int4x4.hpp:35
glm::mediump_imat4x3
mat< 4, 3, int, mediump > mediump_imat4x3
Medium-qualifier signed integer 4x3 matrix.
Definition: fwd.hpp:811
glm::lowp_umat4x4
mat< 4, 4, uint, lowp > lowp_umat4x4
Low-qualifier unsigned integer 4x4 matrix.
Definition: fwd.hpp:1009
glm::umat2
mat< 2, 2, uint, defaultp > umat2
Unsigned integer 2x2 matrix.
Definition: matrix_uint2x2.hpp:35
glm::mediump_umat3x4
mat< 3, 4, uint, mediump > mediump_umat3x4
Medium-qualifier unsigned integer 3x4 matrix.
Definition: fwd.hpp:1016
glm::highp_imat4x3
mat< 4, 3, int, highp > highp_imat4x3
High-qualifier signed integer 4x3 matrix.
Definition: fwd.hpp:821
glm::umat4
mat< 4, 4, uint, defaultp > umat4
Unsigned integer 4x4 matrix.
Definition: matrix_uint4x4.hpp:35
glm::highp_umat2
mat< 2, 2, uint, highp > highp_umat2
High-qualifier unsigned integer 2x2 matrix.
Definition: gtc/matrix_integer.hpp:186
glm::mediump_umat2
mat< 2, 2, uint, mediump > mediump_umat2
Medium-qualifier unsigned integer 2x2 matrix.
Definition: gtc/matrix_integer.hpp:235
glm::imat4x4
mat< 4, 4, int, defaultp > imat4x4
Signed integer 4x4 matrix.
Definition: matrix_int4x4.hpp:30
glm::imat2x2
mat< 2, 2, int, defaultp > imat2x2
Signed integer 2x2 matrix.
Definition: matrix_int2x2.hpp:30
glm::imat4x3
mat< 4, 3, int, defaultp > imat4x3
Signed integer 4x3 matrix.
Definition: matrix_int4x3.hpp:30
glm::lowp_imat4x4
mat< 4, 4, int, lowp > lowp_imat4x4
Low-qualifier signed integer 4x4 matrix.
Definition: fwd.hpp:802
glm::umat3x2
mat< 3, 2, uint, defaultp > umat3x2
Unsigned integer 3x2 matrix.
Definition: matrix_uint3x2.hpp:30
glm::mediump_umat3x3
mat< 3, 3, uint, mediump > mediump_umat3x3
Medium-qualifier unsigned integer 3x3 matrix.
Definition: fwd.hpp:1015
glm::lowp_umat2x4
mat< 2, 4, uint, lowp > lowp_umat2x4
Low-qualifier unsigned integer 2x4 matrix.
Definition: fwd.hpp:1003
glm::mediump_umat4x2
mat< 4, 2, uint, mediump > mediump_umat4x2
Medium-qualifier unsigned integer 4x2 matrix.
Definition: fwd.hpp:1017
glm::mediump_imat4x2
mat< 4, 2, int, mediump > mediump_imat4x2
Medium-qualifier signed integer 4x2 matrix.
Definition: fwd.hpp:810
glm::lowp_umat4
mat< 4, 4, uint, lowp > lowp_umat4
Low-qualifier unsigned integer 4x4 matrix.
Definition: gtc/matrix_integer.hpp:293
glm::mediump_imat2
mat< 2, 2, int, mediump > mediump_imat2
Medium-qualifier signed integer 2x2 matrix.
Definition: gtc/matrix_integer.hpp:86
glm::umat3x4
mat< 3, 4, uint, defaultp > umat3x4
Signed integer 3x4 matrix.
Definition: matrix_uint3x4.hpp:30
glm::umat2x4
mat< 2, 4, uint, defaultp > umat2x4
Unsigned integer 2x4 matrix.
Definition: matrix_uint2x4.hpp:30
glm::imat3x4
mat< 3, 4, int, defaultp > imat3x4
Signed integer 3x4 matrix.
Definition: matrix_int3x4.hpp:30
glm::mediump_umat4x4
mat< 4, 4, uint, mediump > mediump_umat4x4
Medium-qualifier unsigned integer 4x4 matrix.
Definition: fwd.hpp:1019
glm::highp_umat4x4
mat< 4, 4, uint, highp > highp_umat4x4
High-qualifier unsigned integer 4x4 matrix.
Definition: fwd.hpp:1029
glm::mediump_imat3x4
mat< 3, 4, int, mediump > mediump_imat3x4
Medium-qualifier signed integer 3x4 matrix.
Definition: fwd.hpp:809
glm::lowp_umat3x2
mat< 3, 2, uint, lowp > lowp_umat3x2
Low-qualifier unsigned integer 3x2 matrix.
Definition: fwd.hpp:1004
glm::highp_imat2x2
mat< 2, 2, int, highp > highp_imat2x2
High-qualifier signed integer 2x2 matrix.
Definition: fwd.hpp:814
glm::lowp_imat3
mat< 3, 3, int, lowp > lowp_imat3
Low-qualifier signed integer 3x3 matrix.
Definition: gtc/matrix_integer.hpp:140
glm::mediump_umat3
mat< 3, 3, uint, mediump > mediump_umat3
Medium-qualifier unsigned integer 3x3 matrix.
Definition: gtc/matrix_integer.hpp:239
glm::lowp_umat4x2
mat< 4, 2, uint, lowp > lowp_umat4x2
Low-qualifier unsigned integer 4x2 matrix.
Definition: fwd.hpp:1007
glm::lowp_umat3x4
mat< 3, 4, uint, lowp > lowp_umat3x4
Low-qualifier unsigned integer 3x4 matrix.
Definition: fwd.hpp:1006
glm::lowp_imat2
mat< 2, 2, int, lowp > lowp_imat2
Low-qualifier signed integer 2x2 matrix.
Definition: gtc/matrix_integer.hpp:136
glm::umat2x3
mat< 2, 3, uint, defaultp > umat2x3
Unsigned integer 2x3 matrix.
Definition: matrix_uint2x3.hpp:30
glm::mediump_imat2x2
mat< 2, 2, int, mediump > mediump_imat2x2
Medium-qualifier signed integer 2x2 matrix.
Definition: fwd.hpp:804
glm::highp_umat2x2
mat< 2, 2, uint, highp > highp_umat2x2
High-qualifier unsigned integer 2x2 matrix.
Definition: fwd.hpp:1021
glm::highp_umat3
mat< 3, 3, uint, highp > highp_umat3
High-qualifier unsigned integer 3x3 matrix.
Definition: gtc/matrix_integer.hpp:190
glm::mediump_imat2x4
mat< 2, 4, int, mediump > mediump_imat2x4
Medium-qualifier signed integer 2x4 matrix.
Definition: fwd.hpp:806
glm::mediump_umat2x4
mat< 2, 4, uint, mediump > mediump_umat2x4
Medium-qualifier unsigned integer 2x4 matrix.
Definition: fwd.hpp:1013
glm::highp_umat4x2
mat< 4, 2, uint, highp > highp_umat4x2
High-qualifier unsigned integer 4x2 matrix.
Definition: fwd.hpp:1027
glm::lowp_umat2
mat< 2, 2, uint, lowp > lowp_umat2
Low-qualifier unsigned integer 2x2 matrix.
Definition: gtc/matrix_integer.hpp:285
glm::umat4x2
mat< 4, 2, uint, defaultp > umat4x2
Unsigned integer 4x2 matrix.
Definition: matrix_uint4x2.hpp:30
glm::highp_imat2
mat< 2, 2, int, highp > highp_imat2
High-qualifier signed integer 2x2 matrix.
Definition: gtc/matrix_integer.hpp:37
glm::lowp_umat3x3
mat< 3, 3, uint, lowp > lowp_umat3x3
Low-qualifier unsigned integer 3x3 matrix.
Definition: fwd.hpp:1005
glm::lowp_imat3x2
mat< 3, 2, int, lowp > lowp_imat3x2
Low-qualifier signed integer 3x2 matrix.
Definition: fwd.hpp:797
glm::lowp_umat2x3
mat< 2, 3, uint, lowp > lowp_umat2x3
Low-qualifier unsigned integer 2x3 matrix.
Definition: fwd.hpp:1002
glm::mediump_imat3
mat< 3, 3, int, mediump > mediump_imat3
Medium-qualifier signed integer 3x3 matrix.
Definition: gtc/matrix_integer.hpp:90
glm::highp_umat2x3
mat< 2, 3, uint, highp > highp_umat2x3
High-qualifier unsigned integer 2x3 matrix.
Definition: fwd.hpp:1022
glm::lowp_umat2x2
mat< 2, 2, uint, lowp > lowp_umat2x2
Low-qualifier unsigned integer 2x2 matrix.
Definition: fwd.hpp:1001
glm::mediump_umat3x2
mat< 3, 2, uint, mediump > mediump_umat3x2
Medium-qualifier unsigned integer 3x2 matrix.
Definition: fwd.hpp:1014
glm::lowp_umat4x3
mat< 4, 3, uint, lowp > lowp_umat4x3
Low-qualifier unsigned integer 4x3 matrix.
Definition: fwd.hpp:1008
glm::mediump_umat2x3
mat< 2, 3, uint, mediump > mediump_umat2x3
Medium-qualifier unsigned integer 2x3 matrix.
Definition: fwd.hpp:1012
glm::highp_imat4
mat< 4, 4, int, highp > highp_imat4
High-qualifier signed integer 4x4 matrix.
Definition: gtc/matrix_integer.hpp:45
glm::highp_imat4x2
mat< 4, 2, int, highp > highp_imat4x2
High-qualifier signed integer 4x2 matrix.
Definition: fwd.hpp:820
glm::umat2x2
mat< 2, 2, uint, defaultp > umat2x2
Unsigned integer 2x2 matrix.
Definition: matrix_uint2x2.hpp:30
glm::imat2
mat< 2, 2, int, defaultp > imat2
Signed integer 2x2 matrix.
Definition: matrix_int2x2.hpp:35
glm::imat2x3
mat< 2, 3, int, defaultp > imat2x3
Signed integer 2x3 matrix.
Definition: matrix_int2x3.hpp:30
glm::imat4x2
mat< 4, 2, int, defaultp > imat4x2
Signed integer 4x2 matrix.
Definition: matrix_int4x2.hpp:30
glm::highp_umat3x2
mat< 3, 2, uint, highp > highp_umat3x2
High-qualifier unsigned integer 3x2 matrix.
Definition: fwd.hpp:1024
glm::lowp_imat4x2
mat< 4, 2, int, lowp > lowp_imat4x2
Low-qualifier signed integer 4x2 matrix.
Definition: fwd.hpp:800
glm::lowp_imat4
mat< 4, 4, int, lowp > lowp_imat4
Low-qualifier signed integer 4x4 matrix.
Definition: gtc/matrix_integer.hpp:144
glm::highp_imat4x4
mat< 4, 4, int, highp > highp_imat4x4
High-qualifier signed integer 4x4 matrix.
Definition: fwd.hpp:822
glm::lowp_imat2x3
mat< 2, 3, int, lowp > lowp_imat2x3
Low-qualifier signed integer 2x3 matrix.
Definition: fwd.hpp:795
glm::lowp_imat3x3
mat< 3, 3, int, lowp > lowp_imat3x3
Low-qualifier signed integer 3x3 matrix.
Definition: fwd.hpp:798
glm::umat3
mat< 3, 3, uint, defaultp > umat3
Unsigned integer 3x3 matrix.
Definition: matrix_uint3x3.hpp:35
glm::lowp_umat3
mat< 3, 3, uint, lowp > lowp_umat3
Low-qualifier unsigned integer 3x3 matrix.
Definition: gtc/matrix_integer.hpp:289
glm::highp_umat3x3
mat< 3, 3, uint, highp > highp_umat3x3
High-qualifier unsigned integer 3x3 matrix.
Definition: fwd.hpp:1025
glm::mediump_imat3x2
mat< 3, 2, int, mediump > mediump_imat3x2
Medium-qualifier signed integer 3x2 matrix.
Definition: fwd.hpp:807
glm::umat4x4
mat< 4, 4, uint, defaultp > umat4x4
Unsigned integer 4x4 matrix.
Definition: matrix_uint4x4.hpp:30
glm::mediump_imat2x3
mat< 2, 3, int, mediump > mediump_imat2x3
Medium-qualifier signed integer 2x3 matrix.
Definition: fwd.hpp:805
glm::lowp_imat2x4
mat< 2, 4, int, lowp > lowp_imat2x4
Low-qualifier signed integer 2x4 matrix.
Definition: fwd.hpp:796
glm::lowp_imat2x2
mat< 2, 2, int, lowp > lowp_imat2x2
Low-qualifier signed integer 2x2 matrix.
Definition: fwd.hpp:794
glm::umat3x3
mat< 3, 3, uint, defaultp > umat3x3
Unsigned integer 3x3 matrix.
Definition: matrix_uint3x3.hpp:30
glm::mediump_umat2x2
mat< 2, 2, uint, mediump > mediump_umat2x2
Medium-qualifier unsigned integer 2x2 matrix.
Definition: fwd.hpp:1011
glm::mediump_imat4x4
mat< 4, 4, int, mediump > mediump_imat4x4
Medium-qualifier signed integer 4x4 matrix.
Definition: fwd.hpp:812
glm::highp_imat2x4
mat< 2, 4, int, highp > highp_imat2x4
High-qualifier signed integer 2x4 matrix.
Definition: fwd.hpp:816
glm::highp_imat3
mat< 3, 3, int, highp > highp_imat3
High-qualifier signed integer 3x3 matrix.
Definition: gtc/matrix_integer.hpp:41
glm::highp_umat2x4
mat< 2, 4, uint, highp > highp_umat2x4
High-qualifier unsigned integer 2x4 matrix.
Definition: fwd.hpp:1023
glm::mediump_imat4
mat< 4, 4, int, mediump > mediump_imat4
Medium-qualifier signed integer 4x4 matrix.
Definition: gtc/matrix_integer.hpp:94
glm::mediump_imat3x3
mat< 3, 3, int, mediump > mediump_imat3x3
Medium-qualifier signed integer 3x3 matrix.
Definition: fwd.hpp:808
glm::highp_umat4x3
mat< 4, 3, uint, highp > highp_umat4x3
High-qualifier unsigned integer 4x3 matrix.
Definition: fwd.hpp:1028
glm::highp_imat3x3
mat< 3, 3, int, highp > highp_imat3x3
High-qualifier signed integer 3x3 matrix.
Definition: fwd.hpp:818
glm::mediump_umat4x3
mat< 4, 3, uint, mediump > mediump_umat4x3
Medium-qualifier unsigned integer 4x3 matrix.
Definition: fwd.hpp:1018
glm::umat4x3
mat< 4, 3, uint, defaultp > umat4x3
Unsigned integer 4x3 matrix.
Definition: matrix_uint4x3.hpp:30
glm::imat3x3
mat< 3, 3, int, defaultp > imat3x3
Signed integer 3x3 matrix.
Definition: matrix_int3x3.hpp:30
glm::mediump_umat4
mat< 4, 4, uint, mediump > mediump_umat4
Medium-qualifier unsigned integer 4x4 matrix.
Definition: gtc/matrix_integer.hpp:243