\hypertarget{group__Eina__Matrix__Group}{}\doxysection{Matrix}
\label{group__Eina__Matrix__Group}\index{Matrix@{Matrix}}


Eina includes a family of matrix types of different dimension sizes and underlying data types. Dimensions supported include 2x2, 3x3, and 4x4. A fixed point variation of the 3x3 matrix is also supported, which uses the Eina\+\_\+\+F16p16 (Q16.\+16) data type.  


\doxysubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Matrix3__Group}{3x3 floating point matrices}}
\begin{DoxyCompactList}\small\item\em Definition and operations for 3x3 matrices. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Matrix4__Group}{4x4 Matrices in floating point}}
\begin{DoxyCompactList}\small\item\em Definition and operations for 4x4 matrices. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Matrix3__F16p16__Group}{3x3 Matrices in fixed point}}
\begin{DoxyCompactList}\small\item\em Definition and operations for 3x3 fixed point matrices. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Matrix2__Group}{2x2 Matrices in floating point}}
\begin{DoxyCompactList}\small\item\em Definition and operations for 2x3 matrices. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef enum \mbox{\hyperlink{group__Eina__Matrix__Group_gac9e258fd0ef943c6c6f86d7a732b73f5}{\+\_\+\+Eina\+\_\+\+Matrix\+\_\+\+Type}} \mbox{\hyperlink{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}{Eina\+\_\+\+Matrix\+\_\+\+Type}}
\item 
typedef enum \mbox{\hyperlink{group__Eina__Matrix__Group_ga33f39733eb13f69a2d4255f815ffbc24}{\+\_\+\+Eina\+\_\+\+Matrix\+\_\+\+Axis}} \mbox{\hyperlink{group__Eina__Matrix__Group_ga572a36a679f1cf322191a1425fe61e64}{Eina\+\_\+\+Matrix\+\_\+\+Axis}}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Eina__Matrix__Group_gac9e258fd0ef943c6c6f86d7a732b73f5}{\+\_\+\+Eina\+\_\+\+Matrix\+\_\+\+Type}} \{ \newline
\mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5a3593bd6f89b1171d847fb6a5e901f862}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+D\+E\+N\+T\+I\+TY}}, 
\newline
\mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ad225c3a0a95a5ec11da3009541cc0498}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+F\+F\+I\+NE}}, 
\newline
\mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ac64b44714c29f6cbe5273748853536fb}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+VE}}, 
\newline
\mbox{\hyperlink{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ab66882f2b0e75f88e7cb7a1d5909ca33}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+A\+ST}}
 \}
\item 
enum \mbox{\hyperlink{group__Eina__Matrix__Group_ga33f39733eb13f69a2d4255f815ffbc24}{\+\_\+\+Eina\+\_\+\+Matrix\+\_\+\+Axis}} \{ \newline
\mbox{\hyperlink{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a8528d055a20d440dc1f8e3461303d603}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+X\+I\+S\+\_\+X}}, 
\newline
\mbox{\hyperlink{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a55933c9d9280d0071007ecb00259116c}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+X\+I\+S\+\_\+Y}}, 
\newline
\mbox{\hyperlink{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24ad8390de25b3586e94a510fc6dadca945}{E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+X\+I\+S\+\_\+Z}}
 \}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Eina includes a family of matrix types of different dimension sizes and underlying data types. Dimensions supported include 2x2, 3x3, and 4x4. A fixed point variation of the 3x3 matrix is also supported, which uses the Eina\+\_\+\+F16p16 (Q16.\+16) data type. 



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}\label{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}} 
\index{Matrix@{Matrix}!Eina\_Matrix\_Type@{Eina\_Matrix\_Type}}
\index{Eina\_Matrix\_Type@{Eina\_Matrix\_Type}!Matrix@{Matrix}}
\doxysubsubsection{\texorpdfstring{Eina\_Matrix\_Type}{Eina\_Matrix\_Type}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Matrix__Group_ga3aec91bee6618dff67cb662d5136abbd}{Eina\+\_\+\+Matrix\+\_\+\+Type}}}

Matrix types \mbox{\Hypertarget{group__Eina__Matrix__Group_ga572a36a679f1cf322191a1425fe61e64}\label{group__Eina__Matrix__Group_ga572a36a679f1cf322191a1425fe61e64}} 
\index{Matrix@{Matrix}!Eina\_Matrix\_Axis@{Eina\_Matrix\_Axis}}
\index{Eina\_Matrix\_Axis@{Eina\_Matrix\_Axis}!Matrix@{Matrix}}
\doxysubsubsection{\texorpdfstring{Eina\_Matrix\_Axis}{Eina\_Matrix\_Axis}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Matrix__Group_ga572a36a679f1cf322191a1425fe61e64}{Eina\+\_\+\+Matrix\+\_\+\+Axis}}}

Matrix Axes 

\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Eina__Matrix__Group_gac9e258fd0ef943c6c6f86d7a732b73f5}\label{group__Eina__Matrix__Group_gac9e258fd0ef943c6c6f86d7a732b73f5}} 
\index{Matrix@{Matrix}!\_Eina\_Matrix\_Type@{\_Eina\_Matrix\_Type}}
\index{\_Eina\_Matrix\_Type@{\_Eina\_Matrix\_Type}!Matrix@{Matrix}}
\doxysubsubsection{\texorpdfstring{\_Eina\_Matrix\_Type}{\_Eina\_Matrix\_Type}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Matrix__Group_gac9e258fd0ef943c6c6f86d7a732b73f5}{\+\_\+\+Eina\+\_\+\+Matrix\+\_\+\+Type}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_TYPE\_IDENTITY@{EINA\_MATRIX\_TYPE\_IDENTITY}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_TYPE\_IDENTITY@{EINA\_MATRIX\_TYPE\_IDENTITY}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5a3593bd6f89b1171d847fb6a5e901f862}\label{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5a3593bd6f89b1171d847fb6a5e901f862}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+D\+E\+N\+T\+I\+TY&Identity matrix type. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_TYPE\_AFFINE@{EINA\_MATRIX\_TYPE\_AFFINE}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_TYPE\_AFFINE@{EINA\_MATRIX\_TYPE\_AFFINE}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ad225c3a0a95a5ec11da3009541cc0498}\label{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ad225c3a0a95a5ec11da3009541cc0498}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+F\+F\+I\+NE&Affine matrix type. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_TYPE\_PROJECTIVE@{EINA\_MATRIX\_TYPE\_PROJECTIVE}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_TYPE\_PROJECTIVE@{EINA\_MATRIX\_TYPE\_PROJECTIVE}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ac64b44714c29f6cbe5273748853536fb}\label{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ac64b44714c29f6cbe5273748853536fb}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+VE&Projective matrix type. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_TYPE\_LAST@{EINA\_MATRIX\_TYPE\_LAST}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_TYPE\_LAST@{EINA\_MATRIX\_TYPE\_LAST}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ab66882f2b0e75f88e7cb7a1d5909ca33}\label{group__Eina__Matrix__Group_ggac9e258fd0ef943c6c6f86d7a732b73f5ab66882f2b0e75f88e7cb7a1d5909ca33}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+A\+ST&The total number of matrix types. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{group__Eina__Matrix__Group_ga33f39733eb13f69a2d4255f815ffbc24}\label{group__Eina__Matrix__Group_ga33f39733eb13f69a2d4255f815ffbc24}} 
\index{Matrix@{Matrix}!\_Eina\_Matrix\_Axis@{\_Eina\_Matrix\_Axis}}
\index{\_Eina\_Matrix\_Axis@{\_Eina\_Matrix\_Axis}!Matrix@{Matrix}}
\doxysubsubsection{\texorpdfstring{\_Eina\_Matrix\_Axis}{\_Eina\_Matrix\_Axis}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Matrix__Group_ga33f39733eb13f69a2d4255f815ffbc24}{\+\_\+\+Eina\+\_\+\+Matrix\+\_\+\+Axis}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_AXIS\_X@{EINA\_MATRIX\_AXIS\_X}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_AXIS\_X@{EINA\_MATRIX\_AXIS\_X}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a8528d055a20d440dc1f8e3461303d603}\label{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a8528d055a20d440dc1f8e3461303d603}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+X\+I\+S\+\_\+X&X-\/\+Axis. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_AXIS\_Y@{EINA\_MATRIX\_AXIS\_Y}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_AXIS\_Y@{EINA\_MATRIX\_AXIS\_Y}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a55933c9d9280d0071007ecb00259116c}\label{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24a55933c9d9280d0071007ecb00259116c}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+X\+I\+S\+\_\+Y&Y-\/\+Axis. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_MATRIX\_AXIS\_Z@{EINA\_MATRIX\_AXIS\_Z}!Matrix@{Matrix}}\index{Matrix@{Matrix}!EINA\_MATRIX\_AXIS\_Z@{EINA\_MATRIX\_AXIS\_Z}}}\mbox{\Hypertarget{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24ad8390de25b3586e94a510fc6dadca945}\label{group__Eina__Matrix__Group_gga33f39733eb13f69a2d4255f815ffbc24ad8390de25b3586e94a510fc6dadca945}} 
E\+I\+N\+A\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+X\+I\+S\+\_\+Z&Z-\/\+Axis. \\
\hline

\end{DoxyEnumFields}
