\hypertarget{a02494}{
\section{mln::algebra Namespace Reference}
\label{dc/d28/a02494}\index{mln::algebra@{mln::algebra}}
}


Namespace of algebraic structure.  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a00130}{h\_\-mat}
\begin{DoxyCompactList}\small\item\em N-\/Dimensional matrix with homogeneous coordinates. \item\end{DoxyCompactList}\item 
class \hyperlink{a00131}{h\_\-vec}
\begin{DoxyCompactList}\small\item\em N-\/Dimensional vector with homogeneous coordinates. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$unsigned N, typename T $>$ }\\bool \hyperlink{a02494_a9877fe27f2b486106cae6c257549b4f2}{ldlt\_\-decomp} (mat$<$ N, N, T $>$ \&A, vec$<$ N, T $>$ \&rdiag)
\begin{DoxyCompactList}\small\item\em Perform LDL$^\wedge$T decomposition of a symmetric positive definite matrix. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$unsigned N, typename T $>$ }\\void \hyperlink{a02494_a047e1589fb5b2a477533319990d35376}{ldlt\_\-solve} (const mat$<$ N, N, T $>$ \&A, const vec$<$ N, T $>$ \&rdiag, const vec$<$ N, T $>$ \&B, vec$<$ N, T $>$ \&x)
\begin{DoxyCompactList}\small\item\em Solve A x = B after \hyperlink{a02494_a9877fe27f2b486106cae6c257549b4f2}{mln::algebra::ldlt\_\-decomp}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$unsigned n, typename T , typename U $>$ }\\mln::trait::value\_\-$<$ typename mln::trait::op::times$<$ T, U $>$::ret $>$::sum \hyperlink{a02494_a191eb8a5f4cbbad1285fa811a4e00cda}{operator$\ast$} (const vec$<$ n, T $>$ \&lhs, const vec$<$ n, U $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Scalar product (dot product). \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , typename U $>$ }\\vec$<$ 3, typename mln::trait::op::times$<$ T, U $>$::ret $>$ \hyperlink{a02494_aaa40067e734408343aed3bda75071d4c}{vprod} (const vec$<$ 3, T $>$ \&lhs, const vec$<$ 3, U $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Vectorial product (cross product). \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Namespace of algebraic structure. 

\subsection{Function Documentation}
\hypertarget{a02494_a9877fe27f2b486106cae6c257549b4f2}{
\index{mln::algebra@{mln::algebra}!ldlt\_\-decomp@{ldlt\_\-decomp}}
\index{ldlt\_\-decomp@{ldlt\_\-decomp}!mln::algebra@{mln::algebra}}
\subsubsection[{ldlt\_\-decomp}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned N, typename T $>$ bool mln::algebra::ldlt\_\-decomp (
\begin{DoxyParamCaption}
\item[{mat$<$ N, N, T $>$ \&}]{ A, }
\item[{vec$<$ N, T $>$ \&}]{ rdiag}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d28/a02494_a9877fe27f2b486106cae6c257549b4f2}


Perform LDL$^\wedge$T decomposition of a symmetric positive definite matrix. 

Like Cholesky, but no square roots. Overwrites lower triangle of matrix.

From Trimesh's ldltdc routine. 

Definition at line 79 of file misc.hh.



Referenced by mln::geom::mesh\_\-curvature().

\hypertarget{a02494_a047e1589fb5b2a477533319990d35376}{
\index{mln::algebra@{mln::algebra}!ldlt\_\-solve@{ldlt\_\-solve}}
\index{ldlt\_\-solve@{ldlt\_\-solve}!mln::algebra@{mln::algebra}}
\subsubsection[{ldlt\_\-solve}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned N, typename T $>$ void mln::algebra::ldlt\_\-solve (
\begin{DoxyParamCaption}
\item[{const mat$<$ N, N, T $>$ \&}]{ A, }
\item[{const vec$<$ N, T $>$ \&}]{ rdiag, }
\item[{const vec$<$ N, T $>$ \&}]{ B, }
\item[{vec$<$ N, T $>$ \&}]{ x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d28/a02494_a047e1589fb5b2a477533319990d35376}


Solve A x = B after \hyperlink{a02494_a9877fe27f2b486106cae6c257549b4f2}{mln::algebra::ldlt\_\-decomp}. 



Definition at line 112 of file misc.hh.



Referenced by mln::geom::mesh\_\-curvature().

\hypertarget{a02494_a191eb8a5f4cbbad1285fa811a4e00cda}{
\index{mln::algebra@{mln::algebra}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!mln::algebra@{mln::algebra}}
\subsubsection[{operator$\ast$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned n, typename T , typename U $>$ mln::trait::value\_\-$<$ typename mln::trait::op::times$<$ T, U $>$::ret $>$::sum mln::algebra::operator$\ast$ (
\begin{DoxyParamCaption}
\item[{const vec$<$ n, T $>$ \&}]{ lhs, }
\item[{const vec$<$ n, U $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d28/a02494_a191eb8a5f4cbbad1285fa811a4e00cda}


Scalar product (dot product). 



Definition at line 632 of file algebra/vec.hh.



References mln::literal::zero.

\hypertarget{a02494_aaa40067e734408343aed3bda75071d4c}{
\index{mln::algebra@{mln::algebra}!vprod@{vprod}}
\index{vprod@{vprod}!mln::algebra@{mln::algebra}}
\subsubsection[{vprod}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T , typename U $>$ vec$<$ 3, typename mln::trait::op::times$<$ T, U $>$::ret $>$ mln::algebra::vprod (
\begin{DoxyParamCaption}
\item[{const vec$<$ 3, T $>$ \&}]{ lhs, }
\item[{const vec$<$ 3, U $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{dc/d28/a02494_aaa40067e734408343aed3bda75071d4c}


Vectorial product (cross product). 



Definition at line 713 of file algebra/vec.hh.



References vprod().



Referenced by mln::geom::mesh\_\-corner\_\-point\_\-area(), mln::geom::mesh\_\-curvature(), mln::geom::mesh\_\-normal(), and vprod().

