EstervQrCode 2.0.0
Library for qr code manipulation
Loading...
Searching...
No Matches
matx.hpp
1/*M///////////////////////////////////////////////////////////////////////////////////////
2//
3// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4//
5// By downloading, copying, installing or using the software you agree to this license.
6// If you do not agree to this license, do not download, install,
7// copy or use the software.
8//
9//
10// License Agreement
11// For Open Source Computer Vision Library
12//
13// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
16// Third party copyrights are property of their respective owners.
17//
18// Redistribution and use in source and binary forms, with or without modification,
19// are permitted provided that the following conditions are met:
20//
21// * Redistribution's of source code must retain the above copyright notice,
22// this list of conditions and the following disclaimer.
23//
24// * Redistribution's in binary form must reproduce the above copyright notice,
25// this list of conditions and the following disclaimer in the documentation
26// and/or other materials provided with the distribution.
27//
28// * The name of the copyright holders may not be used to endorse or promote products
29// derived from this software without specific prior written permission.
30//
31// This software is provided by the copyright holders and contributors "as is" and
32// any express or implied warranties, including, but not limited to, the implied
33// warranties of merchantability and fitness for a particular purpose are disclaimed.
34// In no event shall the Intel Corporation or contributors be liable for any direct,
35// indirect, incidental, special, exemplary, or consequential damages
36// (including, but not limited to, procurement of substitute goods or services;
37// loss of use, data, or profits; or business interruption) however caused
38// and on any theory of liability, whether in contract, strict liability,
39// or tort (including negligence or otherwise) arising in any way out of
40// the use of this software, even if advised of the possibility of such damage.
41//
42//M*/
43
44#ifndef OPENCV_CORE_MATX_HPP
45#define OPENCV_CORE_MATX_HPP
46
47#ifndef __cplusplus
48# error matx.hpp header must be compiled as C++
49#endif
50
51#include "opencv2/core/cvdef.h"
52#include "opencv2/core/base.hpp"
53#include "opencv2/core/traits.hpp"
54#include "opencv2/core/saturate.hpp"
55
56#include <initializer_list>
57
58namespace cv
59{
60
63
65// FIXIT Remove this (especially CV_EXPORTS modifier)
66struct CV_EXPORTS Matx_AddOp { Matx_AddOp() {} Matx_AddOp(const Matx_AddOp&) {} };
67struct CV_EXPORTS Matx_SubOp { Matx_SubOp() {} Matx_SubOp(const Matx_SubOp&) {} };
68struct CV_EXPORTS Matx_ScaleOp { Matx_ScaleOp() {} Matx_ScaleOp(const Matx_ScaleOp&) {} };
69struct CV_EXPORTS Matx_MulOp { Matx_MulOp() {} Matx_MulOp(const Matx_MulOp&) {} };
70struct CV_EXPORTS Matx_DivOp { Matx_DivOp() {} Matx_DivOp(const Matx_DivOp&) {} };
71struct CV_EXPORTS Matx_MatMulOp { Matx_MatMulOp() {} Matx_MatMulOp(const Matx_MatMulOp&) {} };
72struct CV_EXPORTS Matx_TOp { Matx_TOp() {} Matx_TOp(const Matx_TOp&) {} };
74
76
99template<typename _Tp, int m, int n> class Matx
100{
101public:
102 enum {
103 rows = m,
104 cols = n,
106#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
109#endif
110 shortdim = (m < n ? m : n)
111 };
112
113 typedef _Tp value_type;
116
118 Matx();
119
120 explicit Matx(_Tp v0);
121 Matx(_Tp v0, _Tp v1);
122 Matx(_Tp v0, _Tp v1, _Tp v2);
123 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3);
124 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4);
125 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5);
126 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6);
127 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7);
128 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8);
129 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9);
130 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3,
131 _Tp v4, _Tp v5, _Tp v6, _Tp v7,
132 _Tp v8, _Tp v9, _Tp v10, _Tp v11);
133 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3,
134 _Tp v4, _Tp v5, _Tp v6, _Tp v7,
135 _Tp v8, _Tp v9, _Tp v10, _Tp v11,
136 _Tp v12, _Tp v13);
137 Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3,
138 _Tp v4, _Tp v5, _Tp v6, _Tp v7,
139 _Tp v8, _Tp v9, _Tp v10, _Tp v11,
140 _Tp v12, _Tp v13, _Tp v14, _Tp v15);
141 explicit Matx(const _Tp* vals);
142
144
145 CV_NODISCARD_STD static Matx all(_Tp alpha);
146 CV_NODISCARD_STD static Matx zeros();
147 CV_NODISCARD_STD static Matx ones();
148 CV_NODISCARD_STD static Matx eye();
155 CV_NODISCARD_STD static Matx randu(_Tp a, _Tp b);
160 CV_NODISCARD_STD static Matx randn(_Tp a, _Tp b);
161
163 _Tp dot(const Matx<_Tp, m, n>& v) const;
164
166 double ddot(const Matx<_Tp, m, n>& v) const;
167
169 template<typename T2> operator Matx<T2, m, n>() const;
170
172 template<int m1, int n1> Matx<_Tp, m1, n1> reshape() const;
173
175 template<int m1, int n1> Matx<_Tp, m1, n1> get_minor(int base_row, int base_col) const;
176
178 Matx<_Tp, 1, n> row(int i) const;
179
181 Matx<_Tp, m, 1> col(int i) const;
182
184 diag_type diag() const;
185
187 Matx<_Tp, n, m> t() const;
188
190 Matx<_Tp, n, m> inv(int method=DECOMP_LU, bool *p_is_ok = NULL) const;
191
193 template<int l> Matx<_Tp, n, l> solve(const Matx<_Tp, m, l>& rhs, int flags=DECOMP_LU) const;
194 Vec<_Tp, n> solve(const Vec<_Tp, m>& rhs, int method) const;
195
197 Matx<_Tp, m, n> mul(const Matx<_Tp, m, n>& a) const;
198
200 Matx<_Tp, m, n> div(const Matx<_Tp, m, n>& a) const;
201
203 const _Tp& operator ()(int row, int col) const;
204 _Tp& operator ()(int row, int col);
205
207 const _Tp& operator ()(int i) const;
208 _Tp& operator ()(int i);
209
210 Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_AddOp);
211 Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_SubOp);
212 template<typename _T2> Matx(const Matx<_Tp, m, n>& a, _T2 alpha, Matx_ScaleOp);
213 Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_MulOp);
214 Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_DivOp);
215 template<int l> Matx(const Matx<_Tp, m, l>& a, const Matx<_Tp, l, n>& b, Matx_MatMulOp);
216 Matx(const Matx<_Tp, n, m>& a, Matx_TOp);
217
218 _Tp val[m*n];
219};
220
229
238
245
248
253
258
259template<typename _Tp, int m> static inline
261
262template<typename _Tp, int m, int n> static inline
263double trace(const Matx<_Tp, m, n>& a);
264
265template<typename _Tp, int m, int n> static inline
266double norm(const Matx<_Tp, m, n>& M);
267
268template<typename _Tp, int m, int n> static inline
269double norm(const Matx<_Tp, m, n>& M, int normType);
270
271template<typename _Tp1, typename _Tp2, int m, int n> static inline
273
274template<typename _Tp1, typename _Tp2, int m, int n> static inline
276
277template<typename _Tp, int m, int n> static inline
279
280template<typename _Tp, int m, int n> static inline
282
283template<typename _Tp, int m, int n> static inline
285
286template<typename _Tp, int m, int n> static inline
288
289template<typename _Tp, int m, int n> static inline
291
292template<typename _Tp, int m, int n> static inline
294
295template<typename _Tp, int m, int n> static inline
297
298template<typename _Tp, int m, int n> static inline
300
301template<typename _Tp, int m, int n> static inline
303
304template<typename _Tp, int m, int n> static inline
306
307template<typename _Tp, int m, int n> static inline
309
310template<typename _Tp, int m, int n> static inline
312
313template<typename _Tp, int m, int n> static inline
315
316template<typename _Tp, int m, int n> static inline
318
319template<typename _Tp, int m, int n> static inline
321
322template<typename _Tp, int m, int n> static inline
324
325template<typename _Tp, int m, int n, int l> static inline
327
328template<typename _Tp, int m, int n> static inline
330
331template<typename _Tp, int m, int n> static inline
333
334template<typename _Tp, int m, int n> static inline
336
337
339
368template<typename _Tp, int cn> class Vec : public Matx<_Tp, cn, 1>
369{
370public:
371 typedef _Tp value_type;
372 enum {
374#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
377#endif
379 };
380
382 Vec();
383
384 Vec(_Tp v0);
385 Vec(_Tp v0, _Tp v1);
386 Vec(_Tp v0, _Tp v1, _Tp v2);
387 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3);
388 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4);
389 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5);
390 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6);
391 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7);
392 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8);
393 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9);
394 Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11, _Tp v12, _Tp v13);
395 explicit Vec(const _Tp* values);
396
398
399 Vec(const Vec<_Tp, cn>& v);
400
401 static Vec all(_Tp alpha);
402 static Vec ones();
403 static Vec randn(_Tp a, _Tp b);
404 static Vec randu(_Tp a, _Tp b);
405 static Vec zeros();
406 static Vec diag(_Tp alpha) = delete;
407 static Vec eye() = delete;
408
410 Vec mul(const Vec<_Tp, cn>& v) const;
411
413 Vec conj() const;
414
420 Vec cross(const Vec& v) const;
422 template<typename T2> operator Vec<T2, cn>() const;
423
425 const _Tp& operator [](int i) const;
426 _Tp& operator[](int i);
427 const _Tp& operator ()(int i) const;
428 _Tp& operator ()(int i);
429
430 Vec<_Tp, cn>& operator=(const Vec<_Tp, cn>& rhs) = default;
431
432 Vec(const Matx<_Tp, cn, 1>& a, const Matx<_Tp, cn, 1>& b, Matx_AddOp);
433 Vec(const Matx<_Tp, cn, 1>& a, const Matx<_Tp, cn, 1>& b, Matx_SubOp);
434 template<typename _T2> Vec(const Matx<_Tp, cn, 1>& a, _T2 alpha, Matx_ScaleOp);
435};
436
443
447
451
457
462
469template<typename _Tp, int cn> inline
471
472template<typename _Tp1, typename _Tp2, int cn> static inline
474
475template<typename _Tp1, typename _Tp2, int cn> static inline
477
478template<typename _Tp, int cn> static inline
480
481template<typename _Tp, int cn> static inline
483
484template<typename _Tp, int cn> static inline
486
487template<typename _Tp, int cn> static inline
489
490template<typename _Tp, int cn> static inline
492
493template<typename _Tp, int cn> static inline
495
496template<typename _Tp, int cn> static inline
498
499template<typename _Tp, int cn> static inline
501
502template<typename _Tp, int cn> static inline
504
505template<typename _Tp, int cn> static inline
507
508template<typename _Tp, int cn> static inline
510
511template<typename _Tp, int cn> static inline
513
514template<typename _Tp, int cn> static inline
516
517template<typename _Tp, int cn> static inline
519
520template<typename _Tp, int cn> static inline
522
523template<typename _Tp, int cn> static inline
525
526template<typename _Tp, int cn> static inline
528
529template<typename _Tp, int cn> static inline
531
532template<typename _Tp> inline
533Vec<_Tp, 4> operator * (const Vec<_Tp, 4>& v1, const Vec<_Tp, 4>& v2);
534
535template<typename _Tp> inline
537
539
540} // cv
541
542#include "opencv2/core/matx.inl.hpp"
543
544#endif // OPENCV_CORE_MATX_HPP
Template class for small matrices whose type and size are known at compilation time.
Definition matx.hpp:100
Matx< _Tp, m, n > mul(const Matx< _Tp, m, n > &a) const
multiply two matrices element-wise
Definition matx.inl.hpp:492
Matx()
default constructor
Definition matx.inl.hpp:148
Matx< _Tp, n, m > t() const
transpose the matrix
Definition matx.inl.hpp:504
static CV_NODISCARD_STD Matx ones()
Definition matx.inl.hpp:313
_Tp value_type
Definition matx.hpp:113
Matx< _Tp, n, m > inv(int method=DECOMP_LU, bool *p_is_ok=NULL) const
invert the matrix
Matx< _Tp, 1, n > row(int i) const
extract the matrix row
Definition matx.inl.hpp:380
Matx< _Tp, shortdim, 1 > diag_type
Definition matx.hpp:115
Matx< _Tp, m, 1 > col(int i) const
extract the matrix column
Definition matx.inl.hpp:387
static CV_NODISCARD_STD Matx eye()
Definition matx.inl.hpp:319
Matx< _Tp, m, n > div(const Matx< _Tp, m, n > &a) const
divide two matrices element-wise
Definition matx.inl.hpp:498
static CV_NODISCARD_STD Matx randn(_Tp a, _Tp b)
Generates normally distributed random numbers.
Matx< _Tp, m, n > mat_type
Definition matx.hpp:114
@ cols
Definition matx.hpp:104
@ rows
Definition matx.hpp:103
@ channels
Definition matx.hpp:105
@ shortdim
Definition matx.hpp:110
Matx< _Tp, m1, n1 > reshape() const
change the matrix shape
Definition matx.inl.hpp:361
static CV_NODISCARD_STD Matx zeros()
Definition matx.inl.hpp:307
const _Tp & operator()(int row, int col) const
element access
Definition matx.inl.hpp:406
static CV_NODISCARD_STD Matx all(_Tp alpha)
Definition matx.inl.hpp:299
Matx< _Tp, n, l > solve(const Matx< _Tp, m, l > &rhs, int flags=DECOMP_LU) const
solve linear system
static CV_NODISCARD_STD Matx randu(_Tp a, _Tp b)
Generates uniformly distributed random numbers.
double ddot(const Matx< _Tp, m, n > &v) const
dot product computed in double-precision arithmetics
Definition matx.inl.hpp:336
static CV_NODISCARD_STD Matx diag(const diag_type &d)
diag_type diag() const
extract the matrix diagonal
Definition matx.inl.hpp:397
_Tp val[m *n]
matrix elements
Definition matx.hpp:218
Matx< _Tp, m1, n1 > get_minor(int base_row, int base_col) const
extract part of the matrix
Definition matx.inl.hpp:369
_Tp dot(const Matx< _Tp, m, n > &v) const
dot product computed with the default precision
Definition matx.inl.hpp:328
Template class for short numerical vectors, a partial case of Matx.
Definition matx.hpp:369
static Vec zeros()
Definition matx.inl.hpp:855
static Vec all(_Tp alpha)
Definition matx.inl.hpp:841
static Vec diag(_Tp alpha)=delete
Vec mul(const Vec< _Tp, cn > &v) const
per-element multiplication
Definition matx.inl.hpp:861
static Vec randn(_Tp a, _Tp b)
Vec()
default constructor
Definition matx.inl.hpp:770
static Vec randu(_Tp a, _Tp b)
const _Tp & operator[](int i) const
Definition matx.inl.hpp:924
Vec cross(const Vec &v) const
Definition matx.inl.hpp:893
static Vec eye()=delete
@ _dummy_enum_finalizer
Definition matx.hpp:378
@ channels
Definition matx.hpp:373
Vec< _Tp, cn > & operator=(const Vec< _Tp, cn > &rhs)=default
static Vec ones()
Definition matx.inl.hpp:849
_Tp value_type
Definition matx.hpp:371
const _Tp & operator()(int i) const
Definition matx.inl.hpp:938
Vec conj() const
conjugation (makes sense for complex numbers and quaternions)
InputArrayOfArrays Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays OutputArray OutputArray OutputArray int flags
Definition calib3d.hpp:1617
CV_EXPORTS_W double norm(InputArray src1, int normType=NORM_L2, InputArray mask=noArray())
Calculates the absolute norm of an array.
CV_EXPORTS_W Scalar trace(InputArray mtx)
Returns the trace of a matrix.
CV_EXPORTS_W double determinant(InputArray mtx)
Returns the determinant of a square floating-point matrix.
CV_EXPORTS_W void normalize(InputArray src, InputOutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray())
Normalizes the norm or value range of an array.
@ DECOMP_LU
Definition base.hpp:135
Vec< double, 6 > Vec6d
Definition matx.hpp:466
Matx< double, 2, 1 > Matx21d
Definition matx.hpp:231
Matx< float, 1, 3 > Matx13f
Definition matx.hpp:223
Matx< double, 3, 2 > Matx32d
Definition matx.hpp:244
Matx< double, 2, 2 > Matx22d
Definition matx.hpp:240
Matx< float, 3, 3 > Matx33f
Definition matx.hpp:246
Vec< int, 2 > Vec2i
Definition matx.hpp:452
Matx< float, 3, 1 > Matx31f
Definition matx.hpp:232
Vec< short, 3 > Vec3s
Definition matx.hpp:445
Matx< double, 3, 4 > Matx34d
Definition matx.hpp:250
Matx< double, 1, 2 > Matx12d
Definition matx.hpp:222
Matx< double, 4, 4 > Matx44d
Definition matx.hpp:255
Vec< double, 3 > Vec3d
Definition matx.hpp:464
Matx< float, 2, 1 > Matx21f
Definition matx.hpp:230
Matx< double, 2, 3 > Matx23d
Definition matx.hpp:242
Vec< float, 2 > Vec2f
Definition matx.hpp:458
Matx< float, 1, 2 > Matx12f
Definition matx.hpp:221
Matx< double, 1, 4 > Matx14d
Definition matx.hpp:226
Matx< double, 1, 6 > Matx16d
Definition matx.hpp:228
Vec< int, 8 > Vec8i
Definition matx.hpp:456
Vec< short, 4 > Vec4s
Definition matx.hpp:446
Vec< double, 4 > Vec4d
Definition matx.hpp:465
static bool operator!=(const Matx< _Tp, m, n > &a, const Matx< _Tp, m, n > &b)
Matx< float, 6, 1 > Matx61f
Definition matx.hpp:236
Vec< float, 4 > Vec4f
Definition matx.hpp:460
Vec< ushort, 4 > Vec4w
Definition matx.hpp:450
Vec< int, 3 > Vec3i
Definition matx.hpp:453
Vec< uchar, 2 > Vec2b
Definition matx.hpp:440
static bool operator==(const Matx< _Tp, m, n > &a, const Matx< _Tp, m, n > &b)
Vec< ushort, 2 > Vec2w
Definition matx.hpp:448
Matx< float, 3, 2 > Matx32f
Definition matx.hpp:243
Vec< float, 6 > Vec6f
Definition matx.hpp:461
Matx< double, 1, 3 > Matx13d
Definition matx.hpp:224
Matx< double, 3, 1 > Matx31d
Definition matx.hpp:233
Matx< float, 1, 6 > Matx16f
Definition matx.hpp:227
Matx< double, 4, 3 > Matx43d
Definition matx.hpp:252
Vec< uchar, 3 > Vec3b
Definition matx.hpp:441
Vec< short, 2 > Vec2s
Definition matx.hpp:444
Matx< float, 2, 2 > Matx22f
Definition matx.hpp:239
Vec< int, 4 > Vec4i
Definition matx.hpp:454
Matx< double, 6, 1 > Matx61d
Definition matx.hpp:237
Matx< float, 4, 1 > Matx41f
Definition matx.hpp:234
Matx< float, 2, 3 > Matx23f
Definition matx.hpp:241
Matx< float, 4, 4 > Matx44f
Definition matx.hpp:254
Vec< float, 3 > Vec3f
Definition matx.hpp:459
Vec< ushort, 3 > Vec3w
Definition matx.hpp:449
Matx< float, 4, 3 > Matx43f
Definition matx.hpp:251
Vec< uchar, 4 > Vec4b
Definition matx.hpp:442
Matx< float, 3, 4 > Matx34f
Definition matx.hpp:249
Matx< float, 6, 6 > Matx66f
Definition matx.hpp:256
Matx< float, 1, 4 > Matx14f
Definition matx.hpp:225
Vec< int, 6 > Vec6i
Definition matx.hpp:455
Vec< double, 2 > Vec2d
Definition matx.hpp:463
Matx< double, 4, 1 > Matx41d
Definition matx.hpp:235
Matx< double, 6, 6 > Matx66d
Definition matx.hpp:257
Matx< double, 3, 3 > Matx33d
Definition matx.hpp:247
int int type
Definition core_c.h:221
int depth
Definition core_c.h:100
double alpha
Definition core_c.h:1093
#define CV_MAKETYPE(depth, cn)
Definition interface.h:85
CV_INLINE v_reg< _Tp, n > & operator/=(v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
CV_INLINE v_reg< _Tp, n > operator/(const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
Divide values.
CV_INLINE v_reg< _Tp, n > & operator-=(v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
CV_INLINE v_reg< _Tp, n > & operator+=(v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
CV_INLINE v_reg< _Tp, n > & operator*=(v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
#define CV_EXPORTS
Definition cvdef.h:435
#define CV_NODISCARD_STD
Definition cvdef.h:767
CvArr CvPoint2D32f double M
Definition imgproc_c.h:270
const CvArr CvArr int method
Definition imgproc_c.h:384
"black box" representation of the file storage associated with a file on disk.
Definition calib3d.hpp:441
DualQuat< T > operator-(const DualQuat< T > &q, const T a)
Definition dualquaternion.inl.hpp:255
DualQuat< T > operator+(const T a, const DualQuat< T > &q)
Definition dualquaternion.inl.hpp:243
DualQuat< T > operator*(const T a, const DualQuat< T > &q)
Definition dualquaternion.inl.hpp:274
Definition traits.hpp:386