\hypertarget{a08448}{}\section{Open\+Mesh\+:\+:VectorT$<$ Scalar, D\+IM $>$ Class Template Reference}
\label{a08448}\index{Open\+Mesh\+::\+Vector\+T$<$ Scalar, D\+I\+M $>$@{Open\+Mesh\+::\+Vector\+T$<$ Scalar, D\+I\+M $>$}}


{\ttfamily \#include $<$Open\+Mesh/\+Core/\+Math/\+Vector\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:VectorT$<$ Scalar, D\+IM $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a08448}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_aab637709c0a6301721542fe2efefa707}\label{a08448_aab637709c0a6301721542fe2efefa707}} 
typedef Scalar \hyperlink{a08448_aab637709c0a6301721542fe2efefa707}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em the type of the scalar used in this template \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}\label{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}} 
typedef \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type}
\begin{DoxyCompactList}\small\item\em type of this vector \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_ad2ee581627b2a236e79c06576cdd6c19}\label{a08448_ad2ee581627b2a236e79c06576cdd6c19}} 
{\footnotesize template$<$typename T , typename ... Ts, typename  = typename std\+::enable\+\_\+if$<$sizeof...(\+Ts)+1 == D\+I\+M$>$\+::type, typename  = typename std\+::enable\+\_\+if$<$                are\+\_\+convertible\+\_\+to$<$\+Scalar, T, Ts...$>$\+::value$>$\+::type$>$ }\\constexpr {\bfseries VectorT} (T v, Ts... vs)
\item 
\mbox{\Hypertarget{a08448_ac3aeb6b5ff982b618580a1dd0930dd57}\label{a08448_ac3aeb6b5ff982b618580a1dd0930dd57}} 
constexpr \hyperlink{a08448_ac3aeb6b5ff982b618580a1dd0930dd57}{VectorT} ()
\begin{DoxyCompactList}\small\item\em default constructor creates uninitialized values. \end{DoxyCompactList}\item 
\hyperlink{a08448_a93de2681df0317ba60e0c2e61ad97431}{VectorT} (const Scalar \&v)
\item 
\mbox{\Hypertarget{a08448_a77b4961aaae1c0da76b12a1b79228fff}\label{a08448_a77b4961aaae1c0da76b12a1b79228fff}} 
{\bfseries VectorT} (const \hyperlink{a08448}{VectorT} \&rhs)=default
\item 
\mbox{\Hypertarget{a08448_a8796705a1480a6b5b0d09e3773b1c56f}\label{a08448_a8796705a1480a6b5b0d09e3773b1c56f}} 
{\bfseries VectorT} (\hyperlink{a08448}{VectorT} \&\&rhs)=default
\item 
\mbox{\Hypertarget{a08448_a787468375a851fbb5387c0e35222d331}\label{a08448_a787468375a851fbb5387c0e35222d331}} 
\hyperlink{a08448}{VectorT} \& {\bfseries operator=} (const \hyperlink{a08448}{VectorT} \&rhs)=default
\item 
\mbox{\Hypertarget{a08448_a54d37233c553b08f0bb41a35e66e011d}\label{a08448_a54d37233c553b08f0bb41a35e66e011d}} 
\hyperlink{a08448}{VectorT} \& {\bfseries operator=} (\hyperlink{a08448}{VectorT} \&\&rhs)=default
\item 
{\footnotesize template$<$typename S  = Scalar, int D = D\+IM$>$ }\\auto \hyperlink{a08448_a2b2e63efdbfe799e9ae4c39e95369105}{homogenized} () const -\/$>$ typename std\+::enable\+\_\+if$<$ D==4, \hyperlink{a08448}{VectorT}$<$ decltype(std\+::declval$<$ S $>$()/std\+::declval$<$ S $>$()), D\+IM $>$$>$\+::type
\item 
\mbox{\Hypertarget{a08448_a082fb9a25a170764fb1c1006bb17a83c}\label{a08448_a082fb9a25a170764fb1c1006bb17a83c}} 
{\footnotesize template$<$typename Iterator , typename  = decltype(                    $\ast$std\+::declval$<$\+Iterator\&$>$(), void(),                    ++std\+::declval$<$\+Iterator\&$>$(), void())$>$ }\\\hyperlink{a08448_a082fb9a25a170764fb1c1006bb17a83c}{VectorT} (Iterator it)
\begin{DoxyCompactList}\small\item\em construct from a value array or any other iterator \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_aaee48cf7d8c8847ef78e41fe2c8bf3a4}\label{a08448_aaee48cf7d8c8847ef78e41fe2c8bf3a4}} 
{\footnotesize template$<$typename other\+Scalar\+Type , typename  = typename std\+::enable\+\_\+if$<$                std\+::is\+\_\+convertible$<$other\+Scalar\+Type, Scalar$>$\+::value$>$$>$ }\\\hyperlink{a08448_aaee48cf7d8c8847ef78e41fe2c8bf3a4}{VectorT} (const \hyperlink{a08448}{VectorT}$<$ other\+Scalar\+Type, D\+IM $>$ \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em copy \& cast constructor (explicit) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_acd5a6eddc33be48b96bdced33b075d64}\label{a08448_acd5a6eddc33be48b96bdced33b075d64}} 
{\footnotesize template$<$typename Other\+Scalar , typename  = typename std\+::enable\+\_\+if$<$                std\+::is\+\_\+convertible$<$\+Other\+Scalar, Scalar$>$\+::value$>$$>$ }\\\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \& \hyperlink{a08448_acd5a6eddc33be48b96bdced33b075d64}{operator=} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em cast from vector with a different scalar type \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_aca8bfed75a3c6a1d7cf6025196c244aa}\label{a08448_aca8bfed75a3c6a1d7cf6025196c244aa}} 
Scalar $\ast$ \hyperlink{a08448_aca8bfed75a3c6a1d7cf6025196c244aa}{data} ()
\begin{DoxyCompactList}\small\item\em access to Scalar array \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_ae289cb229d83a249b1fcca817b346ba2}\label{a08448_ae289cb229d83a249b1fcca817b346ba2}} 
const Scalar $\ast$ \hyperlink{a08448_ae289cb229d83a249b1fcca817b346ba2}{data} () const
\begin{DoxyCompactList}\small\item\em access to const Scalar array \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_ae7efcbb89fff07da4db3f98a8107e045}\label{a08448_ae7efcbb89fff07da4db3f98a8107e045}} 
Scalar \& \hyperlink{a08448_ae7efcbb89fff07da4db3f98a8107e045}{operator\mbox{[}$\,$\mbox{]}} (size\+\_\+t \+\_\+i)
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th element read-\/write \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a9e6c8be013f3d12b5e438ea4c2d43954}\label{a08448_a9e6c8be013f3d12b5e438ea4c2d43954}} 
const Scalar \& \hyperlink{a08448_a9e6c8be013f3d12b5e438ea4c2d43954}{operator\mbox{[}$\,$\mbox{]}} (size\+\_\+t \+\_\+i) const
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th element read-\/only \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_ac9cf769cccc2bccb2af64e53fee553b6}\label{a08448_ac9cf769cccc2bccb2af64e53fee553b6}} 
bool \hyperlink{a08448_ac9cf769cccc2bccb2af64e53fee553b6}{operator==} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise comparison \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_acdf96f71b48454b99825946faf9a205a}\label{a08448_acdf96f71b48454b99825946faf9a205a}} 
bool \hyperlink{a08448_acdf96f71b48454b99825946faf9a205a}{operator!=} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise comparison \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a678f9d3807495235f3a72cfd2f50fa0a}\label{a08448_a678f9d3807495235f3a72cfd2f50fa0a}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a678f9d3807495235f3a72cfd2f50fa0a}{operator$\ast$=} (const Other\+Scalar \&\+\_\+s) -\/$>$ typename std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$\+\_\+s), Scalar $>$\+::value, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&$>$\+::type
\begin{DoxyCompactList}\small\item\em component-\/wise self-\/multiplication with scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a5fe3a2b60f0dbbb261dbc1e30454ab7c}\label{a08448_a5fe3a2b60f0dbbb261dbc1e30454ab7c}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a5fe3a2b60f0dbbb261dbc1e30454ab7c}{operator/=} (const Other\+Scalar \&\+\_\+s) -\/$>$ typename std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]}/\+\_\+s), Scalar $>$\+::value, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&$>$\+::type
\begin{DoxyCompactList}\small\item\em component-\/wise self-\/division by scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a0857c64e2b74b253db9159a5f56f5b10}\label{a08448_a0857c64e2b74b253db9159a5f56f5b10}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(std\+::declval$<$ Scalar $>$) $\ast$std\+::declval$<$ Other\+Scalar $>$)), Scalar $>$\+::value, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ $>$\+::type \hyperlink{a08448_a0857c64e2b74b253db9159a5f56f5b10}{operator$\ast$} (const Other\+Scalar \&\+\_\+s) const
\begin{DoxyCompactList}\small\item\em component-\/wise multiplication with scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a1462ebad5a82853aba240f176c1553fc}\label{a08448_a1462ebad5a82853aba240f176c1553fc}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(std\+::declval$<$ Scalar $>$)/std\+::declval$<$ Other\+Scalar $>$)), Scalar $>$\+::value, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ $>$\+::type \hyperlink{a08448_a1462ebad5a82853aba240f176c1553fc}{operator/} (const Other\+Scalar \&\+\_\+s) const
\begin{DoxyCompactList}\small\item\em component-\/wise division by with scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a7347d6b13aa1e8f9e7324daf3ff926c4}\label{a08448_a7347d6b13aa1e8f9e7324daf3ff926c4}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a7347d6b13aa1e8f9e7324daf3ff926c4}{operator$\ast$=} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$$\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em component-\/wise self-\/multiplication \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a7f07a11026aba0ed35df32d419991534}\label{a08448_a7f07a11026aba0ed35df32d419991534}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a7f07a11026aba0ed35df32d419991534}{operator/=} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]}/$\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em component-\/wise self-\/division \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a73021f2d56a2b57131706eeaba50152e}\label{a08448_a73021f2d56a2b57131706eeaba50152e}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a73021f2d56a2b57131706eeaba50152e}{operator-\/=} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} -\/ $\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em vector difference from this \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_ac0e1b52920937d7df247755be88f6e96}\label{a08448_ac0e1b52920937d7df247755be88f6e96}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_ac0e1b52920937d7df247755be88f6e96}{operator+=} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]}+ $\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em vector self-\/addition \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a1f609d57f7ce07ba6787379be4f693aa}\label{a08448_a1f609d57f7ce07ba6787379be4f693aa}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a1f609d57f7ce07ba6787379be4f693aa}{operator$\ast$} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$$\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em component-\/wise vector multiplication \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a99168b256b80b29208d9e3bcebc13d5f}\label{a08448_a99168b256b80b29208d9e3bcebc13d5f}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a99168b256b80b29208d9e3bcebc13d5f}{operator/} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]}/$\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em component-\/wise vector division \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a221a8b6069cc543ebd2d129fb9ee36d2}\label{a08448_a221a8b6069cc543ebd2d129fb9ee36d2}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a221a8b6069cc543ebd2d129fb9ee36d2}{operator+} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]}+ $\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em component-\/wise vector addition \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a678916c2fa6531b7cde37aedd023591c}\label{a08448_a678916c2fa6531b7cde37aedd023591c}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a678916c2fa6531b7cde37aedd023591c}{operator-\/} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} -\/ $\ast$\+\_\+rhs.\+data())) $>$=0
\begin{DoxyCompactList}\small\item\em component-\/wise vector difference \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a9af116a0083e11e78689fa65b235c339}\label{a08448_a9af116a0083e11e78689fa65b235c339}} 
\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \hyperlink{a08448_a9af116a0083e11e78689fa65b235c339}{operator-\/} (void) const
\begin{DoxyCompactList}\small\item\em unary minus \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a48cda92c1b0b0612476ef5e09c31d857}{operator\%} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ typename std\+::enable\+\_\+if$<$ D\+IM==3, \hyperlink{a08448}{VectorT}$<$ decltype(($\ast$this)\mbox{[}0\mbox{]} $\ast$\+\_\+rhs\mbox{[}0\mbox{]} -\/($\ast$this)\mbox{[}0\mbox{]} $\ast$\+\_\+rhs\mbox{[}0\mbox{]}), D\+IM $>$$>$\+::type
\item 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a08448_a6482522c90423c5b36dbfce44e2efa66}{operator$\vert$} (const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ decltype($\ast$this-\/$>$\hyperlink{a08448_aca8bfed75a3c6a1d7cf6025196c244aa}{data}() $\ast$$\ast$\+\_\+rhs.\+data())
\item 
\mbox{\Hypertarget{a08448_ac7ee568ba3bf831e5d4ee7289a7b0ea5}\label{a08448_ac7ee568ba3bf831e5d4ee7289a7b0ea5}} 
{\footnotesize template$<$typename Functor $>$ }\\\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \hyperlink{a08448_ac7ee568ba3bf831e5d4ee7289a7b0ea5}{apply} (const Functor \&\+\_\+func) const
\begin{DoxyCompactList}\small\item\em component-\/wise apply function object with Scalar operator()(\+Scalar). \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_ab3112e4920248fee2e21460ce72044e5}\label{a08448_ab3112e4920248fee2e21460ce72044e5}} 
\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \& \hyperlink{a08448_ab3112e4920248fee2e21460ce72044e5}{vectorize} (const Scalar \&\+\_\+s)
\begin{DoxyCompactList}\small\item\em store the same value in each component (e.\+g. to clear all entries) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a9e38e18f08a9b11e4d46d26c2b4468f0}\label{a08448_a9e38e18f08a9b11e4d46d26c2b4468f0}} 
bool \hyperlink{a08448_a9e38e18f08a9b11e4d46d26c2b4468f0}{operator$<$} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em lexicographical comparison \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a47ba9ed5ff74bcdc2a31c9c622f57fff}\label{a08448_a47ba9ed5ff74bcdc2a31c9c622f57fff}} 
void \hyperlink{a08448_a47ba9ed5ff74bcdc2a31c9c622f57fff}{swap} (\hyperlink{a08448}{VectorT} \&\+\_\+other) noexcept(noexcept(std\+::swap(values\+\_\+, \+\_\+other.\+values\+\_\+)))
\begin{DoxyCompactList}\small\item\em swap with another vector \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Euclidean norm calculations}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_af67478ef2dced38084ebb2dbe74274c7}\label{a08448_af67478ef2dced38084ebb2dbe74274c7}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\decltype(std\+::declval$<$ S $>$() $\ast$std\+::declval$<$ S $>$()) \hyperlink{a08448_af67478ef2dced38084ebb2dbe74274c7}{sqrnorm} () const
\begin{DoxyCompactList}\small\item\em compute squared euclidean norm \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a009f38848409cc43881158487c0ee876}\label{a08448_a009f38848409cc43881158487c0ee876}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a08448_a009f38848409cc43881158487c0ee876}{norm} () const -\/$>$ decltype(std\+::sqrt(std\+::declval$<$ \hyperlink{a08448}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a08448_af67478ef2dced38084ebb2dbe74274c7}{sqrnorm}()))
\begin{DoxyCompactList}\small\item\em compute euclidean norm \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_aec4d71aa3fb941ba06f124629fc31398}\label{a08448_aec4d71aa3fb941ba06f124629fc31398}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a08448_aec4d71aa3fb941ba06f124629fc31398}{length} () const -\/$>$ decltype(std\+::declval$<$ \hyperlink{a08448}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a08448_a009f38848409cc43881158487c0ee876}{norm}())
\begin{DoxyCompactList}\small\item\em compute squared euclidean norm \end{DoxyCompactList}\item 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a08448_a08b31fcd71fc6d4b5d6bdfc5571c42ce}{normalize} () -\/$>$ decltype($\ast$this/=std\+::declval$<$ \hyperlink{a08448}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a08448_a009f38848409cc43881158487c0ee876}{norm}())
\item 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a08448_abaf0f3c4d1088dfdb0f4db272b95f369}{normalized} () const -\/$>$ decltype($\ast$this/std\+::declval$<$ \hyperlink{a08448}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a08448_a009f38848409cc43881158487c0ee876}{norm}())
\item 
\mbox{\Hypertarget{a08448_a0f864c527ce38433f8abed382147d5f5}\label{a08448_a0f864c527ce38433f8abed382147d5f5}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+::type \hyperlink{a08448_a0f864c527ce38433f8abed382147d5f5}{normalize\+\_\+cond} ()
\begin{DoxyCompactList}\small\item\em compute squared euclidean norm \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Non-\/\+Euclidean norm calculations}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_aa8edc601dbba158712fed917b68e0be8}\label{a08448_aa8edc601dbba158712fed917b68e0be8}} 
Scalar \hyperlink{a08448_aa8edc601dbba158712fed917b68e0be8}{l1\+\_\+norm} () const
\begin{DoxyCompactList}\small\item\em compute L1 (Manhattan) norm \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a888e5c3030603fbae0825438d7c90677}\label{a08448_a888e5c3030603fbae0825438d7c90677}} 
Scalar \hyperlink{a08448_a888e5c3030603fbae0825438d7c90677}{l8\+\_\+norm} () const
\begin{DoxyCompactList}\small\item\em compute l8\+\_\+norm \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Minimum maximum and mean}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_acebb1e60ba640e369846ea33d004d41f}\label{a08448_acebb1e60ba640e369846ea33d004d41f}} 
Scalar \hyperlink{a08448_acebb1e60ba640e369846ea33d004d41f}{max} () const
\begin{DoxyCompactList}\small\item\em return the maximal component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a48edae61732bb7fb615c3fdc00f19297}\label{a08448_a48edae61732bb7fb615c3fdc00f19297}} 
Scalar \hyperlink{a08448_a48edae61732bb7fb615c3fdc00f19297}{max\+\_\+abs} () const
\begin{DoxyCompactList}\small\item\em return the maximal absolute component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_af6720a4da8089d58941ae5aebdaf3d15}\label{a08448_af6720a4da8089d58941ae5aebdaf3d15}} 
Scalar \hyperlink{a08448_af6720a4da8089d58941ae5aebdaf3d15}{min} () const
\begin{DoxyCompactList}\small\item\em return the minimal component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a8d53dd1a41e9d9ec1f61c0a5a5216109}\label{a08448_a8d53dd1a41e9d9ec1f61c0a5a5216109}} 
Scalar \hyperlink{a08448_a8d53dd1a41e9d9ec1f61c0a5a5216109}{min\+\_\+abs} () const
\begin{DoxyCompactList}\small\item\em return the minimal absolute component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_aafbe6560982e96e71ecca85575cd5594}\label{a08448_aafbe6560982e96e71ecca85575cd5594}} 
Scalar \hyperlink{a08448_aafbe6560982e96e71ecca85575cd5594}{mean} () const
\begin{DoxyCompactList}\small\item\em return arithmetic mean \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_aa539a6f43d8d855bcb28785cd3410cb4}\label{a08448_aa539a6f43d8d855bcb28785cd3410cb4}} 
Scalar \hyperlink{a08448_aa539a6f43d8d855bcb28785cd3410cb4}{mean\+\_\+abs} () const
\begin{DoxyCompactList}\small\item\em return absolute arithmetic mean \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a07eff7321b0f082c31913d35edb7805d}\label{a08448_a07eff7321b0f082c31913d35edb7805d}} 
\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \& \hyperlink{a08448_a07eff7321b0f082c31913d35edb7805d}{minimize} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em minimize values\+: same as $\ast$this = min($\ast$this, \+\_\+rhs), but faster \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a9f5b507732503b670d45de5eff132e56}\label{a08448_a9f5b507732503b670d45de5eff132e56}} 
bool \hyperlink{a08448_a9f5b507732503b670d45de5eff132e56}{minimized} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em minimize values and signalize coordinate minimization \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a4a403b3a83b2eac5c602ca117cac953f}\label{a08448_a4a403b3a83b2eac5c602ca117cac953f}} 
\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \& \hyperlink{a08448_a4a403b3a83b2eac5c602ca117cac953f}{maximize} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em maximize values\+: same as $\ast$this = max($\ast$this, \+\_\+rhs), but faster \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_ae2b6b05eff7e90a69e73d7577609a65d}\label{a08448_ae2b6b05eff7e90a69e73d7577609a65d}} 
bool \hyperlink{a08448_ae2b6b05eff7e90a69e73d7577609a65d}{maximized} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em maximize values and signalize coordinate maximization \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a4d31efae109ef02cf314585ab6c1ea14}\label{a08448_a4d31efae109ef02cf314585ab6c1ea14}} 
\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \hyperlink{a08448_a4d31efae109ef02cf314585ab6c1ea14}{min} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise min \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a7caf2e269d61404ec73ef063c1e32dd0}\label{a08448_a7caf2e269d61404ec73ef063c1e32dd0}} 
\hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \hyperlink{a08448_a7caf2e269d61404ec73ef063c1e32dd0}{max} (const \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise max \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_a2af4f7af17614a8e85323586ede688c3}\label{a08448_a2af4f7af17614a8e85323586ede688c3}} 
static constexpr int \hyperlink{a08448_a2af4f7af17614a8e85323586ede688c3}{dim} ()
\begin{DoxyCompactList}\small\item\em returns dimension of the vector (deprecated) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a2ce76fd78a8c709ad552b851f3ab11a5}\label{a08448_a2ce76fd78a8c709ad552b851f3ab11a5}} 
static constexpr size\+\_\+t \hyperlink{a08448_a2ce76fd78a8c709ad552b851f3ab11a5}{size} ()
\begin{DoxyCompactList}\small\item\em returns dimension of the vector \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08448_a857d116fda1d00c64b608c57ca919037}\label{a08448_a857d116fda1d00c64b608c57ca919037}} 
static \hyperlink{a08448_a280f7d4c1fb79f41df9254c2e2f654f2}{vector\+\_\+type} \hyperlink{a08448_a857d116fda1d00c64b608c57ca919037}{vectorized} (const Scalar \&\+\_\+s)
\begin{DoxyCompactList}\small\item\em store the same value in each component \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_ac8af38cdb80fa961ba599985a7f0ca2f}\label{a08448_ac8af38cdb80fa961ba599985a7f0ca2f}} 
static constexpr const size\+\_\+t {\bfseries size\+\_\+} = D\+IM
\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_aded054da238c079aa0b4df5b80881c9d}\label{a08448_aded054da238c079aa0b4df5b80881c9d}} 
using {\bfseries container} = std\+::array$<$ Scalar, D\+IM $>$
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_a2a7125833c347fd27b9a5372a00ff598}\label{a08448_a2a7125833c347fd27b9a5372a00ff598}} 
container {\bfseries values\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Related Functions}
(Note that these are not member functions.) \begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Scalar1 , typename Scalar2 , int N$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ \hyperlink{a08448_a6c9dccea834fba16e8886b6afb789d99}{operator$\ast$} (Scalar2 \+\_\+s, const \hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int N$>$ }\\Scalar \hyperlink{a08448_ac3dc4987bd61adcfa40070fffbba8840}{dot} (const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v1, const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int N$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \hyperlink{a08448_a0864a90d6e3e293f6a7d39545779c097}{cross} (const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v1, const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}{norm} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_a5c9156d5a427cdecdc5282f83c2e346c}{sqrnorm} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM, typename Other\+Scalar $>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a4508f25b7877049c469ea1d3cf3226dd}{vectorize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v, Other\+Scalar const \&\+\_\+val)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a067799f2aa7a99c8740b909ca13713c4}{normalize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a720c418e55dad86f8daa9869069d03b2}{maximize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a208b49e5c3a85d459366bf967e755a12}{minimize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_a11c55f84a338fadb0f528496f163dd5c}{dot} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename L\+Scalar , typename R\+Scalar , int D\+IM$>$ }\\auto \hyperlink{a08448_a6268e9a674ddcdb9123f044bca12db2c}{cross} (const \hyperlink{a08448}{VectorT}$<$ L\+Scalar, D\+IM $>$ \&\+\_\+v1, const \hyperlink{a08448}{VectorT}$<$ R\+Scalar, D\+IM $>$ \&\+\_\+v2) -\/$>$ decltype(\+\_\+v1 \% \+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\void \hyperlink{a08448_a724841f281b97bc48ce50ac7a95b0167}{swap} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2) noexcept(noexcept(\+\_\+v1.\+swap(\+\_\+v2)))
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}{norm} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_a5c9156d5a427cdecdc5282f83c2e346c}{sqrnorm} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM, typename Other\+Scalar $>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a4508f25b7877049c469ea1d3cf3226dd}{vectorize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v, Other\+Scalar const \&\+\_\+val)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a067799f2aa7a99c8740b909ca13713c4}{normalize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a720c418e55dad86f8daa9869069d03b2}{maximize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a208b49e5c3a85d459366bf967e755a12}{minimize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar1 , typename Scalar2 , int N$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ \hyperlink{a08448_a6c9dccea834fba16e8886b6afb789d99}{operator$\ast$} (Scalar2 \+\_\+s, const \hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int N$>$ }\\Scalar \hyperlink{a08448_ac3dc4987bd61adcfa40070fffbba8840}{dot} (const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v1, const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int N$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \hyperlink{a08448_a0864a90d6e3e293f6a7d39545779c097}{cross} (const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v1, const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}{norm} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\Scalar \hyperlink{a08448_a5c9156d5a427cdecdc5282f83c2e346c}{sqrnorm} (const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM, typename Other\+Scalar $>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a4508f25b7877049c469ea1d3cf3226dd}{vectorize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v, Other\+Scalar const \&\+\_\+val)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a067799f2aa7a99c8740b909ca13713c4}{normalize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a720c418e55dad86f8daa9869069d03b2}{maximize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\item 
{\footnotesize template$<$typename Scalar , int D\+IM$>$ }\\\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& \hyperlink{a08448_a208b49e5c3a85d459366bf967e755a12}{minimize} (\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v1, \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&\+\_\+v2)
\end{DoxyCompactItemize}
\subsection*{Component iterators}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08448_a32995fef920d6295ef53c576da0ddc86}\label{a08448_a32995fef920d6295ef53c576da0ddc86}} 
using {\bfseries iterator} = typename container\+::iterator
\item 
\mbox{\Hypertarget{a08448_adc37f7dd5dbd773dcc3894fc5f0e942e}\label{a08448_adc37f7dd5dbd773dcc3894fc5f0e942e}} 
using {\bfseries const\+\_\+iterator} = typename container\+::const\+\_\+iterator
\item 
\mbox{\Hypertarget{a08448_afe9716470dfb30a14f7b1913a1d98736}\label{a08448_afe9716470dfb30a14f7b1913a1d98736}} 
using {\bfseries reverse\+\_\+iterator} = typename container\+::reverse\+\_\+iterator
\item 
\mbox{\Hypertarget{a08448_a10e75507caacb998e495764061b98c6e}\label{a08448_a10e75507caacb998e495764061b98c6e}} 
using {\bfseries const\+\_\+reverse\+\_\+iterator} = typename container\+::const\+\_\+reverse\+\_\+iterator
\item 
\mbox{\Hypertarget{a08448_a52d21aa2159f3db6d7c3449aa4a83483}\label{a08448_a52d21aa2159f3db6d7c3449aa4a83483}} 
iterator {\bfseries begin} () noexcept
\item 
\mbox{\Hypertarget{a08448_a77444321663c05d0bc54398c198a8c11}\label{a08448_a77444321663c05d0bc54398c198a8c11}} 
const\+\_\+iterator {\bfseries begin} () const noexcept
\item 
\mbox{\Hypertarget{a08448_a6b518f83f2f4d90bad409ff8567ce82a}\label{a08448_a6b518f83f2f4d90bad409ff8567ce82a}} 
const\+\_\+iterator {\bfseries cbegin} () const noexcept
\item 
\mbox{\Hypertarget{a08448_ac4f19003f6dd3f07c993021d2ad08dae}\label{a08448_ac4f19003f6dd3f07c993021d2ad08dae}} 
iterator {\bfseries end} () noexcept
\item 
\mbox{\Hypertarget{a08448_a102ed267d86652fdeda11fcb74aee4b5}\label{a08448_a102ed267d86652fdeda11fcb74aee4b5}} 
const\+\_\+iterator {\bfseries end} () const noexcept
\item 
\mbox{\Hypertarget{a08448_a8c8c00fc1ea1b6ab030a5c5ace846162}\label{a08448_a8c8c00fc1ea1b6ab030a5c5ace846162}} 
const\+\_\+iterator {\bfseries cend} () const noexcept
\item 
\mbox{\Hypertarget{a08448_aaa3936fe8bb37b930cf1dc82e1d7db04}\label{a08448_aaa3936fe8bb37b930cf1dc82e1d7db04}} 
reverse\+\_\+iterator {\bfseries rbegin} () noexcept
\item 
\mbox{\Hypertarget{a08448_a81be3b9c1009bf0efe7f23aeba2e499e}\label{a08448_a81be3b9c1009bf0efe7f23aeba2e499e}} 
const\+\_\+reverse\+\_\+iterator {\bfseries rbegin} () const noexcept
\item 
\mbox{\Hypertarget{a08448_a597cb55d6edc53f56502ede9569c1c2c}\label{a08448_a597cb55d6edc53f56502ede9569c1c2c}} 
const\+\_\+reverse\+\_\+iterator {\bfseries crbegin} () const noexcept
\item 
\mbox{\Hypertarget{a08448_a3b7d86c41d337f4d8cf99ee1cdf9e939}\label{a08448_a3b7d86c41d337f4d8cf99ee1cdf9e939}} 
reverse\+\_\+iterator {\bfseries rend} () noexcept
\item 
\mbox{\Hypertarget{a08448_aa25c6b7c247e8709036f5df1e1a48e0c}\label{a08448_aa25c6b7c247e8709036f5df1e1a48e0c}} 
const\+\_\+reverse\+\_\+iterator {\bfseries rend} () const noexcept
\item 
\mbox{\Hypertarget{a08448_a8468bee806bf3e62fd30ef54ba28db9d}\label{a08448_a8468bee806bf3e62fd30ef54ba28db9d}} 
const\+\_\+reverse\+\_\+iterator {\bfseries crend} () const noexcept
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Scalar, int D\+IM$>$\newline
class Open\+Mesh\+::\+Vector\+T$<$ Scalar, D\+I\+M $>$}

A vector is an array of $<$N$>$ values of type $<$Scalar$>$. The actual data is stored in an \hyperlink{a08452}{Vector\+DataT}, this class just adds the necessary operators. 

Definition at line 83 of file Vector11\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a08448_a93de2681df0317ba60e0c2e61ad97431}\label{a08448_a93de2681df0317ba60e0c2e61ad97431}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!VectorT@{VectorT}}
\index{VectorT@{VectorT}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{Vector\+T()}{VectorT()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
\hyperlink{a08448}{Open\+Mesh\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::\hyperlink{a08448}{VectorT} (\begin{DoxyParamCaption}\item[{const Scalar \&}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}

Creates a vector with all components set to v. 

Definition at line 134 of file Vector11\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08448_a2b2e63efdbfe799e9ae4c39e95369105}\label{a08448_a2b2e63efdbfe799e9ae4c39e95369105}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!homogenized@{homogenized}}
\index{homogenized@{homogenized}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{homogenized()}{homogenized()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename S  = Scalar, int D = D\+IM$>$ \\
auto \hyperlink{a08448}{Open\+Mesh\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::homogenized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ typename std\+::enable\+\_\+if$<$D == 4,
                \hyperlink{a08448}{VectorT}$<$decltype(std\+::declval$<$S$>$()/std\+::declval$<$S$>$()), D\+IM$>$$>$\+::type \hspace{0.3cm}{\ttfamily [inline]}}

Only for 4-\/component vectors with division operator on their Scalar\+: Dehomogenization. 

Definition at line 148 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a08b31fcd71fc6d4b5d6bdfc5571c42ce}\label{a08448_a08b31fcd71fc6d4b5d6bdfc5571c42ce}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!normalize@{normalize}}
\index{normalize@{normalize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{normalize()}{normalize()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename S  = Scalar$>$ \\
auto \hyperlink{a08448}{Open\+Mesh\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::normalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ decltype($\ast$this /= std\+::declval$<$\hyperlink{a08448}{VectorT}$<$S, D\+IM$>$$>$().\hyperlink{a08448_a009f38848409cc43881158487c0ee876}{norm}()) \hspace{0.3cm}{\ttfamily [inline]}}

normalize vector, return normalized vector 

Definition at line 429 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_abaf0f3c4d1088dfdb0f4db272b95f369}\label{a08448_abaf0f3c4d1088dfdb0f4db272b95f369}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!normalized@{normalized}}
\index{normalized@{normalized}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{normalized()}{normalized()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename S  = Scalar$>$ \\
auto \hyperlink{a08448}{Open\+Mesh\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::normalized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ decltype($\ast$this / std\+::declval$<$\hyperlink{a08448}{VectorT}$<$S, D\+IM$>$$>$().\hyperlink{a08448_a009f38848409cc43881158487c0ee876}{norm}()) \hspace{0.3cm}{\ttfamily [inline]}}

return normalized vector 

Definition at line 440 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a48cda92c1b0b0612476ef5e09c31d857}\label{a08448_a48cda92c1b0b0612476ef5e09c31d857}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!operator\%@{operator\%}}
\index{operator\%@{operator\%}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{operator\%()}{operator\%()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename Other\+Scalar $>$ \\
auto \hyperlink{a08448}{Open\+Mesh\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::operator\% (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&}]{\+\_\+rhs }\end{DoxyParamCaption}) const -\/$>$ typename std\+::enable\+\_\+if$<$D\+IM == 3,
                \hyperlink{a08448}{VectorT}$<$decltype(($\ast$this)\mbox{[}0\mbox{]} $\ast$ \+\_\+rhs\mbox{[}0\mbox{]} -\/
                                 ($\ast$this)\mbox{[}0\mbox{]} $\ast$ \+\_\+rhs\mbox{[}0\mbox{]}), D\+IM$>$$>$\+::type \hspace{0.3cm}{\ttfamily [inline]}}

cross product\+: only defined for Vec3$\ast$ as specialization \begin{DoxySeeAlso}{See also}
\hyperlink{a06210_af37af4054108f1fef53058ff57689763}{Open\+Mesh\+::cross} 
\end{DoxySeeAlso}


Definition at line 369 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a6482522c90423c5b36dbfce44e2efa66}\label{a08448_a6482522c90423c5b36dbfce44e2efa66}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!operator\texttt{"|}@{operator\texttt{"|}}}
\index{operator\texttt{"|}@{operator\texttt{"|}}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{operator\texttt{"|}()}{operator|()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename Other\+Scalar $>$ \\
auto \hyperlink{a08448}{Open\+Mesh\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::operator$\vert$ (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&}]{\+\_\+rhs }\end{DoxyParamCaption}) const -\/$>$ decltype($\ast$this-\/$>$\hyperlink{a08448_aca8bfed75a3c6a1d7cf6025196c244aa}{data}() $\ast$ $\ast$\+\_\+rhs.\+data()) \hspace{0.3cm}{\ttfamily [inline]}}

compute scalar product \begin{DoxySeeAlso}{See also}
\hyperlink{a06210_a351b282a40719408090277956e526735}{Open\+Mesh\+::dot} 
\end{DoxySeeAlso}


Definition at line 383 of file Vector11\+T.\+hh.



\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{a08448_a0864a90d6e3e293f6a7d39545779c097}\label{a08448_a0864a90d6e3e293f6a7d39545779c097}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!cross@{cross}}
\index{cross@{cross}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{cross()}{cross()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int N$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ cross (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v1,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

symmetric version of the cross product 

Definition at line 267 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a0864a90d6e3e293f6a7d39545779c097}\label{a08448_a0864a90d6e3e293f6a7d39545779c097}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!cross@{cross}}
\index{cross@{cross}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{cross()}{cross()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int N$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ cross (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v1,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

symmetric version of the cross product 

Definition at line 267 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a6268e9a674ddcdb9123f044bca12db2c}\label{a08448_a6268e9a674ddcdb9123f044bca12db2c}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!cross@{cross}}
\index{cross@{cross}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{cross()}{cross()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename L\+Scalar , typename R\+Scalar , int D\+IM$>$ \\
auto cross (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ L\+Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{const \hyperlink{a08448}{VectorT}$<$ R\+Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption}) -\/$>$ decltype(\+\_\+v1 \% \+\_\+v2) \hspace{0.3cm}{\ttfamily [related]}}

symmetric version of the cross product 

Definition at line 708 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_ac3dc4987bd61adcfa40070fffbba8840}\label{a08448_ac3dc4987bd61adcfa40070fffbba8840}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!dot@{dot}}
\index{dot@{dot}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{dot()}{dot()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int N$>$ \\
Scalar dot (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v1,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

symmetric version of the dot product 

Definition at line 258 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_ac3dc4987bd61adcfa40070fffbba8840}\label{a08448_ac3dc4987bd61adcfa40070fffbba8840}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!dot@{dot}}
\index{dot@{dot}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{dot()}{dot()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int N$>$ \\
Scalar dot (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v1,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, N $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

symmetric version of the dot product 

Definition at line 258 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a11c55f84a338fadb0f528496f163dd5c}\label{a08448_a11c55f84a338fadb0f528496f163dd5c}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!dot@{dot}}
\index{dot@{dot}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{dot()}{dot()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar dot (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

symmetric version of the dot product 

Definition at line 700 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a720c418e55dad86f8daa9869069d03b2}\label{a08448_a720c418e55dad86f8daa9869069d03b2}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!maximize@{maximize}}
\index{maximize@{maximize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{maximize()}{maximize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& maximize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member maximize 

Definition at line 307 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a720c418e55dad86f8daa9869069d03b2}\label{a08448_a720c418e55dad86f8daa9869069d03b2}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!maximize@{maximize}}
\index{maximize@{maximize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{maximize()}{maximize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& maximize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member maximize 

Definition at line 307 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a720c418e55dad86f8daa9869069d03b2}\label{a08448_a720c418e55dad86f8daa9869069d03b2}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!maximize@{maximize}}
\index{maximize@{maximize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{maximize()}{maximize()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& maximize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member maximize 

Definition at line 751 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a208b49e5c3a85d459366bf967e755a12}\label{a08448_a208b49e5c3a85d459366bf967e755a12}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!minimize@{minimize}}
\index{minimize@{minimize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{minimize()}{minimize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& minimize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member minimize 

Definition at line 315 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a208b49e5c3a85d459366bf967e755a12}\label{a08448_a208b49e5c3a85d459366bf967e755a12}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!minimize@{minimize}}
\index{minimize@{minimize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{minimize()}{minimize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& minimize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member minimize 

Definition at line 315 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a208b49e5c3a85d459366bf967e755a12}\label{a08448_a208b49e5c3a85d459366bf967e755a12}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!minimize@{minimize}}
\index{minimize@{minimize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{minimize()}{minimize()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& minimize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member minimize 

Definition at line 758 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}\label{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!norm@{norm}}
\index{norm@{norm}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{norm()}{norm()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar norm (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member norm 

Definition at line 275 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}\label{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!norm@{norm}}
\index{norm@{norm}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{norm()}{norm()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar norm (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member norm 

Definition at line 275 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}\label{a08448_afac3b9b6e93f8f47603f39ee387cb9a9}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!norm@{norm}}
\index{norm@{norm}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{norm()}{norm()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar norm (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member norm 

Definition at line 724 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a067799f2aa7a99c8740b909ca13713c4}\label{a08448_a067799f2aa7a99c8740b909ca13713c4}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!normalize@{normalize}}
\index{normalize@{normalize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{normalize()}{normalize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& normalize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member normalize 

Definition at line 299 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a067799f2aa7a99c8740b909ca13713c4}\label{a08448_a067799f2aa7a99c8740b909ca13713c4}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!normalize@{normalize}}
\index{normalize@{normalize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{normalize()}{normalize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& normalize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member normalize 

Definition at line 299 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a067799f2aa7a99c8740b909ca13713c4}\label{a08448_a067799f2aa7a99c8740b909ca13713c4}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!normalize@{normalize}}
\index{normalize@{normalize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{normalize()}{normalize()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& normalize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member normalize 

Definition at line 744 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a6c9dccea834fba16e8886b6afb789d99}\label{a08448_a6c9dccea834fba16e8886b6afb789d99}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Scalar1 , typename Scalar2 , int N$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ operator$\ast$ (\begin{DoxyParamCaption}\item[{Scalar2}]{\+\_\+s,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

scalar $\ast$ vector 

Definition at line 249 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a6c9dccea834fba16e8886b6afb789d99}\label{a08448_a6c9dccea834fba16e8886b6afb789d99}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Scalar1 , typename Scalar2 , int N$>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ operator$\ast$ (\begin{DoxyParamCaption}\item[{Scalar2}]{\+\_\+s,  }\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar1, N $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

scalar $\ast$ vector 

Definition at line 249 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a5c9156d5a427cdecdc5282f83c2e346c}\label{a08448_a5c9156d5a427cdecdc5282f83c2e346c}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!sqrnorm@{sqrnorm}}
\index{sqrnorm@{sqrnorm}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{sqrnorm()}{sqrnorm()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar sqrnorm (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member sqrnorm 

Definition at line 283 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a5c9156d5a427cdecdc5282f83c2e346c}\label{a08448_a5c9156d5a427cdecdc5282f83c2e346c}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!sqrnorm@{sqrnorm}}
\index{sqrnorm@{sqrnorm}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{sqrnorm()}{sqrnorm()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar sqrnorm (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member sqrnorm 

Definition at line 283 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a5c9156d5a427cdecdc5282f83c2e346c}\label{a08448_a5c9156d5a427cdecdc5282f83c2e346c}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!sqrnorm@{sqrnorm}}
\index{sqrnorm@{sqrnorm}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{sqrnorm()}{sqrnorm()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
Scalar sqrnorm (\begin{DoxyParamCaption}\item[{const \hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member sqrnorm 

Definition at line 731 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a724841f281b97bc48ce50ac7a95b0167}\label{a08448_a724841f281b97bc48ce50ac7a95b0167}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!swap@{swap}}
\index{swap@{swap}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{swap()}{swap()}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM$>$ \\
void swap (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v1,  }\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member swap 

Definition at line 716 of file Vector11\+T.\+hh.

\mbox{\Hypertarget{a08448_a4508f25b7877049c469ea1d3cf3226dd}\label{a08448_a4508f25b7877049c469ea1d3cf3226dd}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!vectorize@{vectorize}}
\index{vectorize@{vectorize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{vectorize()}{vectorize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM, typename Other\+Scalar $>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& vectorize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v,  }\item[{Other\+Scalar const \&}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member vectorize 

Definition at line 291 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08448_a4508f25b7877049c469ea1d3cf3226dd}\label{a08448_a4508f25b7877049c469ea1d3cf3226dd}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!vectorize@{vectorize}}
\index{vectorize@{vectorize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{vectorize()}{vectorize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM, typename Other\+Scalar $>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& vectorize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v,  }\item[{Other\+Scalar const \&}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member vectorize 

Definition at line 291 of file Vector\+T.\+hh.

\mbox{\Hypertarget{a08448_a4508f25b7877049c469ea1d3cf3226dd}\label{a08448_a4508f25b7877049c469ea1d3cf3226dd}} 
\index{Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}!vectorize@{vectorize}}
\index{vectorize@{vectorize}!Open\+Mesh\+::\+VectorT@{Open\+Mesh\+::\+VectorT}}
\subsubsection{\texorpdfstring{vectorize()}{vectorize()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename Scalar , int D\+IM, typename Other\+Scalar $>$ \\
\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \& vectorize (\begin{DoxyParamCaption}\item[{\hyperlink{a08448}{VectorT}$<$ Scalar, D\+IM $>$ \&}]{\+\_\+v,  }\item[{Other\+Scalar const \&}]{\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [related]}}

non-\/member vectorize 

Definition at line 737 of file Vector11\+T.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Geometry/Vector11\+T.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Mesh\+Node2\+T\+\_\+impl.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Geometry/Vector\+T.\+hh\end{DoxyCompactItemize}
