MyraMath
swizzle.h
Go to the documentation of this file.
1 // ========================================================================= //
2 // This file is part of MyraMath, copyright (c) 2014-2019 by Ryan A Chilton //
3 // and distributed by MyraCore, LLC. See LICENSE.txt for license terms. //
4 // ========================================================================= //
5 
6 #ifndef MYRAMATH_DENSE_SWIZZLE_H
7 #define MYRAMATH_DENSE_SWIZZLE_H
8 
18 #include <myramath/MYRAMATH_EXPORT.h>
20 
21 #include <utility>
22 
23 namespace myra {
24 
25 // Forward declarations.
26 template<class Number> class MatrixRange;
27 template<class Number> class VectorRange;
28 
30 MYRAMATH_EXPORT std::pair< MatrixRange<NumberS>, MatrixRange<NumberS> > swizzle (const MatrixRange<NumberC>& Z);
32 MYRAMATH_EXPORT std::pair< MatrixRange<NumberD>, MatrixRange<NumberD> > swizzle (const MatrixRange<NumberZ>& Z);
34 
36 MYRAMATH_EXPORT void unswizzle (const MatrixRange<NumberC>& Z);
38 MYRAMATH_EXPORT void unswizzle (const MatrixRange<NumberZ>& Z);
40 
42 MYRAMATH_EXPORT std::pair< VectorRange<NumberS>, VectorRange<NumberS> > swizzle (const VectorRange<NumberC>& z);
44 MYRAMATH_EXPORT std::pair< VectorRange<NumberD>, VectorRange<NumberD> > swizzle (const VectorRange<NumberZ>& z);
46 
48 MYRAMATH_EXPORT void unswizzle (const VectorRange<NumberC>& z);
50 MYRAMATH_EXPORT void unswizzle (const VectorRange<NumberZ>& z);
52 
53 } // namespace
54 
55 #endif
Definition: syntax.dox:1
Various utility functions/classes related to scalar Number types.