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


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

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11684_a7bd719c99b5322fec43ee2c9f0cf10fc}\label{a11684_a7bd719c99b5322fec43ee2c9f0cf10fc}} 
typedef Scalar \hyperlink{a11684_a7bd719c99b5322fec43ee2c9f0cf10fc}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em the type of the scalar used in this template \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ac73bb38a62650eb29f4201f788036701}\label{a11684_ac73bb38a62650eb29f4201f788036701}} 
typedef \hyperlink{a11684}{VectorT}$<$ Scalar, D\+IM $>$ \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type}
\begin{DoxyCompactList}\small\item\em type of this vector \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11684_aec10203f3e1f3db5525e369cc5fcaecc}\label{a11684_aec10203f3e1f3db5525e369cc5fcaecc}} 
constexpr \hyperlink{a11684_aec10203f3e1f3db5525e369cc5fcaecc}{VectorT} ()
\begin{DoxyCompactList}\small\item\em default constructor creates uninitialized values. \end{DoxyCompactList}\item 
\hyperlink{a11684_ab58a4eed2eaf6d60d1be80aa83924683}{VectorT} (const Scalar \&v)
\item 
\mbox{\Hypertarget{a11684_a301821a8da345db7ab2a2f1f57d76833}\label{a11684_a301821a8da345db7ab2a2f1f57d76833}} 
{\footnotesize template$<$typename ... T, typename  = typename std\+::enable\+\_\+if$<$sizeof...(\+T) == D\+I\+M$>$\+::type, typename  = typename std\+::enable\+\_\+if$<$                are\+\_\+convertible\+\_\+to$<$\+Scalar, T...$>$\+::value$>$\+::type$>$ }\\constexpr {\bfseries VectorT} (T... vs)
\item 
\mbox{\Hypertarget{a11684_ae9c6bcc6ce30ca626b12d783fa0fa701}\label{a11684_ae9c6bcc6ce30ca626b12d783fa0fa701}} 
{\bfseries VectorT} (const \hyperlink{a11684}{VectorT} \&rhs)=default
\item 
\mbox{\Hypertarget{a11684_afec8978b2900f40195708f4c2eda6de4}\label{a11684_afec8978b2900f40195708f4c2eda6de4}} 
{\bfseries VectorT} (\hyperlink{a11684}{VectorT} \&\&rhs)=default
\item 
\mbox{\Hypertarget{a11684_a1d357ee1be292a1e04f012ca002d1346}\label{a11684_a1d357ee1be292a1e04f012ca002d1346}} 
\hyperlink{a11684}{VectorT} \& {\bfseries operator=} (const \hyperlink{a11684}{VectorT} \&rhs)=default
\item 
\mbox{\Hypertarget{a11684_abf14b100dd9dc24c922dd6f6367aaed5}\label{a11684_abf14b100dd9dc24c922dd6f6367aaed5}} 
\hyperlink{a11684}{VectorT} \& {\bfseries operator=} (\hyperlink{a11684}{VectorT} \&\&rhs)=default
\item 
{\footnotesize template$<$typename S  = Scalar, int D = D\+IM$>$ }\\auto \hyperlink{a11684_a20f0f6b6f2a3bcf478a3f64e62c7596a}{homogenized} () const -\/$>$ typename std\+::enable\+\_\+if$<$ D==4, \hyperlink{a11684}{VectorT}$<$ decltype(std\+::declval$<$ S $>$()/std\+::declval$<$ S $>$()), D\+IM $>$$>$\+::type
\item 
\mbox{\Hypertarget{a11684_ad91286d5a1bada2b5fe4078f1eb06db8}\label{a11684_ad91286d5a1bada2b5fe4078f1eb06db8}} 
{\footnotesize template$<$typename Iterator , typename  = decltype(                    $\ast$std\+::declval$<$\+Iterator\&$>$(), void(),                    ++std\+::declval$<$\+Iterator\&$>$(), void())$>$ }\\\hyperlink{a11684_ad91286d5a1bada2b5fe4078f1eb06db8}{VectorT} (Iterator it)
\begin{DoxyCompactList}\small\item\em construct from a value array or any other iterator \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a3204ada9e778dadb06084dafab0b1873}\label{a11684_a3204ada9e778dadb06084dafab0b1873}} 
{\footnotesize template$<$typename other\+Scalar\+Type , typename  = typename std\+::enable\+\_\+if$<$                std\+::is\+\_\+convertible$<$other\+Scalar\+Type, Scalar$>$\+::value$>$$>$ }\\\hyperlink{a11684_a3204ada9e778dadb06084dafab0b1873}{VectorT} (const \hyperlink{a11684}{VectorT}$<$ other\+Scalar\+Type, D\+IM $>$ \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em copy \& cast constructor (explicit) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a3f06ebde6af259b4a7acfce6bb316e38}\label{a11684_a3f06ebde6af259b4a7acfce6bb316e38}} 
{\footnotesize template$<$typename Other\+Scalar , typename  = typename std\+::enable\+\_\+if$<$                std\+::is\+\_\+convertible$<$\+Other\+Scalar, Scalar$>$\+::value$>$$>$ }\\\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \& \hyperlink{a11684_a3f06ebde6af259b4a7acfce6bb316e38}{operator=} (const \hyperlink{a11684}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em cast from vector with a different scalar type \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_afc09b786ac3bc1389f77934c80f338d2}\label{a11684_afc09b786ac3bc1389f77934c80f338d2}} 
Scalar $\ast$ \hyperlink{a11684_afc09b786ac3bc1389f77934c80f338d2}{data} ()
\begin{DoxyCompactList}\small\item\em access to Scalar array \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ad2dad04e71c79a00b3443fc17218431e}\label{a11684_ad2dad04e71c79a00b3443fc17218431e}} 
const Scalar $\ast$ \hyperlink{a11684_ad2dad04e71c79a00b3443fc17218431e}{data} () const
\begin{DoxyCompactList}\small\item\em access to const Scalar array \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_aaf1105ac9383f50fe71cc6e92c08a012}\label{a11684_aaf1105ac9383f50fe71cc6e92c08a012}} 
Scalar \& \hyperlink{a11684_aaf1105ac9383f50fe71cc6e92c08a012}{operator\mbox{[}$\,$\mbox{]}} (size\+\_\+t \+\_\+i)
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th element read-\/write \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a908e524334080e5843568342b40cb4b1}\label{a11684_a908e524334080e5843568342b40cb4b1}} 
const Scalar \& \hyperlink{a11684_a908e524334080e5843568342b40cb4b1}{operator\mbox{[}$\,$\mbox{]}} (size\+\_\+t \+\_\+i) const
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th element read-\/only \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a3b0caddace3289583d4ed742282cd46f}\label{a11684_a3b0caddace3289583d4ed742282cd46f}} 
bool \hyperlink{a11684_a3b0caddace3289583d4ed742282cd46f}{operator==} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise comparison \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a7f2d002d38e020a2df330a6134067d14}\label{a11684_a7f2d002d38e020a2df330a6134067d14}} 
bool \hyperlink{a11684_a7f2d002d38e020a2df330a6134067d14}{operator!=} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise comparison \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a3c85c7fa665937e33a219e274dc02557}\label{a11684_a3c85c7fa665937e33a219e274dc02557}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a3c85c7fa665937e33a219e274dc02557}{operator$\ast$=} (const Other\+Scalar \&\+\_\+s) -\/$>$ typename std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$\+\_\+s), Scalar $>$\+::value, \hyperlink{a11684}{VectorT}$<$ Scalar, D\+IM $>$ \&$>$\+::type
\begin{DoxyCompactList}\small\item\em component-\/wise self-\/multiplication with scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_aa7ed5fe1b6df8819beb8161f39217765}\label{a11684_aa7ed5fe1b6df8819beb8161f39217765}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_aa7ed5fe1b6df8819beb8161f39217765}{operator/=} (const Other\+Scalar \&\+\_\+s) -\/$>$ typename std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]}/\+\_\+s), Scalar $>$\+::value, \hyperlink{a11684}{VectorT}$<$ Scalar, D\+IM $>$ \&$>$\+::type
\begin{DoxyCompactList}\small\item\em component-\/wise self-\/division by scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a27d038724d044316951981a32bbf32d7}\label{a11684_a27d038724d044316951981a32bbf32d7}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(std\+::declval$<$ Scalar $>$) $\ast$std\+::declval$<$ Other\+Scalar $>$)), Scalar $>$\+::value, \hyperlink{a11684}{VectorT}$<$ Scalar, D\+IM $>$ $>$\+::type \hyperlink{a11684_a27d038724d044316951981a32bbf32d7}{operator$\ast$} (const Other\+Scalar \&\+\_\+s) const
\begin{DoxyCompactList}\small\item\em component-\/wise multiplication with scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a6160a02ae4010d46b8601b53b7d1c626}\label{a11684_a6160a02ae4010d46b8601b53b7d1c626}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\std\+::enable\+\_\+if$<$ std\+::is\+\_\+convertible$<$ decltype(std\+::declval$<$ Scalar $>$)/std\+::declval$<$ Other\+Scalar $>$)), Scalar $>$\+::value, \hyperlink{a11684}{VectorT}$<$ Scalar, D\+IM $>$ $>$\+::type \hyperlink{a11684_a6160a02ae4010d46b8601b53b7d1c626}{operator/} (const Other\+Scalar \&\+\_\+s) const
\begin{DoxyCompactList}\small\item\em component-\/wise division by with scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_aaec168f64eab90a98b2f384b5dd2f2d9}\label{a11684_aaec168f64eab90a98b2f384b5dd2f2d9}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_aaec168f64eab90a98b2f384b5dd2f2d9}{operator$\ast$=} (const \hyperlink{a11684}{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{a11684_a98062e7e910c04b42564a75119283375}\label{a11684_a98062e7e910c04b42564a75119283375}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a98062e7e910c04b42564a75119283375}{operator/=} (const \hyperlink{a11684}{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{a11684_a77bed1eb582c68e86a64a5936432ce8e}\label{a11684_a77bed1eb582c68e86a64a5936432ce8e}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a77bed1eb582c68e86a64a5936432ce8e}{operator-\/=} (const \hyperlink{a11684}{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{a11684_a20e706443447991396baf23757054a11}\label{a11684_a20e706443447991396baf23757054a11}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a20e706443447991396baf23757054a11}{operator+=} (const \hyperlink{a11684}{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{a11684_a6356744c43392108aa607eff0c929529}\label{a11684_a6356744c43392108aa607eff0c929529}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a6356744c43392108aa607eff0c929529}{operator$\ast$} (const \hyperlink{a11684}{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{a11684_a67f8f0e7402058bd680363f5d8a7dda3}\label{a11684_a67f8f0e7402058bd680363f5d8a7dda3}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a67f8f0e7402058bd680363f5d8a7dda3}{operator/} (const \hyperlink{a11684}{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{a11684_a802641e6b1a7ed4ce63d7b0525c69325}\label{a11684_a802641e6b1a7ed4ce63d7b0525c69325}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a802641e6b1a7ed4ce63d7b0525c69325}{operator+} (const \hyperlink{a11684}{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{a11684_ad56c64ee38a0b5a7a5d170f86037431c}\label{a11684_ad56c64ee38a0b5a7a5d170f86037431c}} 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_ad56c64ee38a0b5a7a5d170f86037431c}{operator-\/} (const \hyperlink{a11684}{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{a11684_a929b475dbf4aac7d21e1b3429bae6d27}\label{a11684_a929b475dbf4aac7d21e1b3429bae6d27}} 
\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \hyperlink{a11684_a929b475dbf4aac7d21e1b3429bae6d27}{operator-\/} (void) const
\begin{DoxyCompactList}\small\item\em unary minus \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_abe7c9127dbc423a96022c526f56e8fbc}{operator\%} (const \hyperlink{a11684}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ typename std\+::enable\+\_\+if$<$ D\+IM==3, \hyperlink{a11684}{VectorT}$<$ decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$\+\_\+rhs\mbox{[}0\mbox{]} -\/ this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$\+\_\+rhs\mbox{[}0\mbox{]}), D\+IM $>$$>$\+::type
\item 
{\footnotesize template$<$typename Other\+Scalar $>$ }\\auto \hyperlink{a11684_a06d9f158b30f7558f28ea0ed24995b2b}{operator$\vert$} (const \hyperlink{a11684}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&\+\_\+rhs) const -\/$>$ decltype($\ast$this-\/$>$\hyperlink{a11684_afc09b786ac3bc1389f77934c80f338d2}{data}() $\ast$$\ast$\+\_\+rhs.\+data())
\item 
\mbox{\Hypertarget{a11684_a640ddba7dd8d834c6a72138965a9ec4d}\label{a11684_a640ddba7dd8d834c6a72138965a9ec4d}} 
{\footnotesize template$<$typename Functor $>$ }\\\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \hyperlink{a11684_a640ddba7dd8d834c6a72138965a9ec4d}{apply} (const Functor \&\+\_\+func) const
\begin{DoxyCompactList}\small\item\em component-\/wise apply function object with Scalar operator()(\+Scalar). \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_aa8aa86414e268a8a54f6f1cd2cf521ed}\label{a11684_aa8aa86414e268a8a54f6f1cd2cf521ed}} 
\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \& \hyperlink{a11684_aa8aa86414e268a8a54f6f1cd2cf521ed}{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{a11684_a723c24385b0894b8eb7ba3ea93f290ec}\label{a11684_a723c24385b0894b8eb7ba3ea93f290ec}} 
bool \hyperlink{a11684_a723c24385b0894b8eb7ba3ea93f290ec}{operator$<$} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em lexicographical comparison \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a4589626a783c8fac41d4db9bcf0d1a96}\label{a11684_a4589626a783c8fac41d4db9bcf0d1a96}} 
void \hyperlink{a11684_a4589626a783c8fac41d4db9bcf0d1a96}{swap} (\hyperlink{a11684}{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{a11684_a49ac6e9e690720e45e4fa2850d0d38dd}\label{a11684_a49ac6e9e690720e45e4fa2850d0d38dd}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\decltype(std\+::declval$<$ S $>$() $\ast$std\+::declval$<$ S $>$()) \hyperlink{a11684_a49ac6e9e690720e45e4fa2850d0d38dd}{sqrnorm} () const
\begin{DoxyCompactList}\small\item\em compute squared euclidean norm \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_aa6ab3d20ab69943a6525f3fb871c703f}\label{a11684_aa6ab3d20ab69943a6525f3fb871c703f}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a11684_aa6ab3d20ab69943a6525f3fb871c703f}{norm} () const -\/$>$ decltype(std\+::sqrt(std\+::declval$<$ \hyperlink{a11684}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a11684_a49ac6e9e690720e45e4fa2850d0d38dd}{sqrnorm}()))
\begin{DoxyCompactList}\small\item\em compute euclidean norm \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a947cd608aee2f7eb2e5a96b70741ce11}\label{a11684_a947cd608aee2f7eb2e5a96b70741ce11}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a11684_a947cd608aee2f7eb2e5a96b70741ce11}{length} () const -\/$>$ decltype(std\+::declval$<$ \hyperlink{a11684}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a11684_aa6ab3d20ab69943a6525f3fb871c703f}{norm}())
\begin{DoxyCompactList}\small\item\em compute squared euclidean norm \end{DoxyCompactList}\item 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a11684_a665c91598eb6e7bc8eccfe2a273b16c2}{normalize} () -\/$>$ decltype($\ast$this/=std\+::declval$<$ \hyperlink{a11684}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a11684_aa6ab3d20ab69943a6525f3fb871c703f}{norm}())
\item 
{\footnotesize template$<$typename S  = Scalar$>$ }\\auto \hyperlink{a11684_ab578a62d1686891bc25d3a5ab8900eb3}{normalized} () const -\/$>$ decltype($\ast$this/std\+::declval$<$ \hyperlink{a11684}{VectorT}$<$ S, D\+IM $>$$>$().\hyperlink{a11684_aa6ab3d20ab69943a6525f3fb871c703f}{norm}())
\item 
\mbox{\Hypertarget{a11684_a19cbdcd3e05e569cf0234836b9cd45a0}\label{a11684_a19cbdcd3e05e569cf0234836b9cd45a0}} 
{\footnotesize template$<$typename S  = Scalar$>$ }\\\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+::type \hyperlink{a11684_a19cbdcd3e05e569cf0234836b9cd45a0}{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{a11684_ad69907c87cfc4ba660397cd6d66e3a6c}\label{a11684_ad69907c87cfc4ba660397cd6d66e3a6c}} 
Scalar \hyperlink{a11684_ad69907c87cfc4ba660397cd6d66e3a6c}{l1\+\_\+norm} () const
\begin{DoxyCompactList}\small\item\em compute L1 (Manhattan) norm \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ad770e6778c8a3d629beb243d865c19be}\label{a11684_ad770e6778c8a3d629beb243d865c19be}} 
Scalar \hyperlink{a11684_ad770e6778c8a3d629beb243d865c19be}{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{a11684_adae19405f72641e59d8f8a9a475dbd6f}\label{a11684_adae19405f72641e59d8f8a9a475dbd6f}} 
Scalar \hyperlink{a11684_adae19405f72641e59d8f8a9a475dbd6f}{max} () const
\begin{DoxyCompactList}\small\item\em return the maximal component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a904e474a98c2783457f10baf12db71cf}\label{a11684_a904e474a98c2783457f10baf12db71cf}} 
Scalar \hyperlink{a11684_a904e474a98c2783457f10baf12db71cf}{max\+\_\+abs} () const
\begin{DoxyCompactList}\small\item\em return the maximal absolute component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a94db61272a9cd40de4430820ae56c77b}\label{a11684_a94db61272a9cd40de4430820ae56c77b}} 
Scalar \hyperlink{a11684_a94db61272a9cd40de4430820ae56c77b}{min} () const
\begin{DoxyCompactList}\small\item\em return the minimal component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a37c00fd52db903cd9cedd580a411a85a}\label{a11684_a37c00fd52db903cd9cedd580a411a85a}} 
Scalar \hyperlink{a11684_a37c00fd52db903cd9cedd580a411a85a}{min\+\_\+abs} () const
\begin{DoxyCompactList}\small\item\em return the minimal absolute component \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a37f16b87c60c6fdaf22a5bbc1f40f607}\label{a11684_a37f16b87c60c6fdaf22a5bbc1f40f607}} 
Scalar \hyperlink{a11684_a37f16b87c60c6fdaf22a5bbc1f40f607}{mean} () const
\begin{DoxyCompactList}\small\item\em return arithmetic mean \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a80a497f7c772d4de081d364be7440dcc}\label{a11684_a80a497f7c772d4de081d364be7440dcc}} 
Scalar \hyperlink{a11684_a80a497f7c772d4de081d364be7440dcc}{mean\+\_\+abs} () const
\begin{DoxyCompactList}\small\item\em return absolute arithmetic mean \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ace74071ac011a109fccd5033c83ec83a}\label{a11684_ace74071ac011a109fccd5033c83ec83a}} 
\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \& \hyperlink{a11684_ace74071ac011a109fccd5033c83ec83a}{minimize} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{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{a11684_aedd217ae44c45d9fbc61f613841def1a}\label{a11684_aedd217ae44c45d9fbc61f613841def1a}} 
bool \hyperlink{a11684_aedd217ae44c45d9fbc61f613841def1a}{minimized} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em minimize values and signalize coordinate minimization \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_af6752f94f31b9f7d65f862c703eaafcc}\label{a11684_af6752f94f31b9f7d65f862c703eaafcc}} 
\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \& \hyperlink{a11684_af6752f94f31b9f7d65f862c703eaafcc}{maximize} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{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{a11684_ad74e8574763f83e02b42e911d20aed99}\label{a11684_ad74e8574763f83e02b42e911d20aed99}} 
bool \hyperlink{a11684_ad74e8574763f83e02b42e911d20aed99}{maximized} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em maximize values and signalize coordinate maximization \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ace110644d041c4e28e49c72a0140b20e}\label{a11684_ace110644d041c4e28e49c72a0140b20e}} 
\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \hyperlink{a11684_ace110644d041c4e28e49c72a0140b20e}{min} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \&\+\_\+rhs) const
\begin{DoxyCompactList}\small\item\em component-\/wise min \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ac2aba31060ab72dc567bdf68cf894810}\label{a11684_ac2aba31060ab72dc567bdf68cf894810}} 
\hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \hyperlink{a11684_ac2aba31060ab72dc567bdf68cf894810}{max} (const \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{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{a11684_a0229263b8621253911a10a282c01177b}\label{a11684_a0229263b8621253911a10a282c01177b}} 
static constexpr int \hyperlink{a11684_a0229263b8621253911a10a282c01177b}{dim} ()
\begin{DoxyCompactList}\small\item\em returns dimension of the vector (deprecated) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_a9443eb68429fce04cd80451fe8230e70}\label{a11684_a9443eb68429fce04cd80451fe8230e70}} 
static constexpr size\+\_\+t \hyperlink{a11684_a9443eb68429fce04cd80451fe8230e70}{size} ()
\begin{DoxyCompactList}\small\item\em returns dimension of the vector \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11684_ac0036bb903b9f7c4a7ea920b7b057e7d}\label{a11684_ac0036bb903b9f7c4a7ea920b7b057e7d}} 
static \hyperlink{a11684_ac73bb38a62650eb29f4201f788036701}{vector\+\_\+type} \hyperlink{a11684_ac0036bb903b9f7c4a7ea920b7b057e7d}{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{a11684_a6a5647039ffd84319b0763b2380a1043}\label{a11684_a6a5647039ffd84319b0763b2380a1043}} 
static constexpr const size\+\_\+t {\bfseries size\+\_\+} = D\+IM
\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11684_af85dcbb4e23b7d2e664729ff6b7c91d7}\label{a11684_af85dcbb4e23b7d2e664729ff6b7c91d7}} 
using {\bfseries container} = std\+::array$<$ Scalar, D\+IM $>$
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11684_a584908e7b5a2a4af6aeab08dceee166e}\label{a11684_a584908e7b5a2a4af6aeab08dceee166e}} 
container {\bfseries values\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Component iterators}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11684_a29780313d89630599ee6df05be711f57}\label{a11684_a29780313d89630599ee6df05be711f57}} 
using {\bfseries iterator} = typename container\+::iterator
\item 
\mbox{\Hypertarget{a11684_aa42e26b4675e77d7a3500e0bd586ee1d}\label{a11684_aa42e26b4675e77d7a3500e0bd586ee1d}} 
using {\bfseries const\+\_\+iterator} = typename container\+::const\+\_\+iterator
\item 
\mbox{\Hypertarget{a11684_acb6c93bf2113f6d635f0c5b5cdb39afb}\label{a11684_acb6c93bf2113f6d635f0c5b5cdb39afb}} 
using {\bfseries reverse\+\_\+iterator} = typename container\+::reverse\+\_\+iterator
\item 
\mbox{\Hypertarget{a11684_a857bcbfa0289ac18a5c8bac98c97bcee}\label{a11684_a857bcbfa0289ac18a5c8bac98c97bcee}} 
using {\bfseries const\+\_\+reverse\+\_\+iterator} = typename container\+::const\+\_\+reverse\+\_\+iterator
\item 
\mbox{\Hypertarget{a11684_aaae363808d4313e53d91b59df0e1d7be}\label{a11684_aaae363808d4313e53d91b59df0e1d7be}} 
iterator {\bfseries begin} () noexcept
\item 
\mbox{\Hypertarget{a11684_a4e34f6e555b53a43b634934600122791}\label{a11684_a4e34f6e555b53a43b634934600122791}} 
const\+\_\+iterator {\bfseries begin} () const noexcept
\item 
\mbox{\Hypertarget{a11684_a13713f666646719d75282f65d9c51fcd}\label{a11684_a13713f666646719d75282f65d9c51fcd}} 
const\+\_\+iterator {\bfseries cbegin} () const noexcept
\item 
\mbox{\Hypertarget{a11684_afcbaff25331ee57a412f805a06aa59d6}\label{a11684_afcbaff25331ee57a412f805a06aa59d6}} 
iterator {\bfseries end} () noexcept
\item 
\mbox{\Hypertarget{a11684_a9786bbdad644c7ed4265124d374f4e3c}\label{a11684_a9786bbdad644c7ed4265124d374f4e3c}} 
const\+\_\+iterator {\bfseries end} () const noexcept
\item 
\mbox{\Hypertarget{a11684_ac1a32c70345fb880936f82fb92bd7a8d}\label{a11684_ac1a32c70345fb880936f82fb92bd7a8d}} 
const\+\_\+iterator {\bfseries cend} () const noexcept
\item 
\mbox{\Hypertarget{a11684_a18a768ee0404568d3c63c86348aaf118}\label{a11684_a18a768ee0404568d3c63c86348aaf118}} 
reverse\+\_\+iterator {\bfseries rbegin} () noexcept
\item 
\mbox{\Hypertarget{a11684_ab4fc4983ec9d1fe2a63d74225e9d6b71}\label{a11684_ab4fc4983ec9d1fe2a63d74225e9d6b71}} 
const\+\_\+reverse\+\_\+iterator {\bfseries rbegin} () const noexcept
\item 
\mbox{\Hypertarget{a11684_a107d759083902c3acae7f56ce8bf3ff2}\label{a11684_a107d759083902c3acae7f56ce8bf3ff2}} 
const\+\_\+reverse\+\_\+iterator {\bfseries crbegin} () const noexcept
\item 
\mbox{\Hypertarget{a11684_a960942cecb5070c1dcb3ad93aafe9d50}\label{a11684_a960942cecb5070c1dcb3ad93aafe9d50}} 
reverse\+\_\+iterator {\bfseries rend} () noexcept
\item 
\mbox{\Hypertarget{a11684_ac43aaf74046e4f1f0533b87d83158beb}\label{a11684_ac43aaf74046e4f1f0533b87d83158beb}} 
const\+\_\+reverse\+\_\+iterator {\bfseries rend} () const noexcept
\item 
\mbox{\Hypertarget{a11684_a671bc3e267ed2eccc80c9be3cd97620f}\label{a11684_a671bc3e267ed2eccc80c9be3cd97620f}} 
const\+\_\+reverse\+\_\+iterator {\bfseries crend} () const noexcept
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Scalar, int D\+IM$>$\newline
class Open\+Volume\+Mesh\+::\+Geometry\+::\+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{a11688}{Vector\+DataT}, this class just adds the necessary operators. 

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



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a11684_ab58a4eed2eaf6d60d1be80aa83924683}\label{a11684_ab58a4eed2eaf6d60d1be80aa83924683}} 
\index{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT@{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}!VectorT@{VectorT}}
\index{VectorT@{VectorT}!Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT@{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}}
\subsubsection{\texorpdfstring{Vector\+T()}{VectorT()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
\hyperlink{a11684}{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::\hyperlink{a11684}{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 116 of file Vector11\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a11684_a20f0f6b6f2a3bcf478a3f64e62c7596a}\label{a11684_a20f0f6b6f2a3bcf478a3f64e62c7596a}} 
\index{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT@{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}!homogenized@{homogenized}}
\index{homogenized@{homogenized}!Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT@{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}}
\subsubsection{\texorpdfstring{homogenized()}{homogenized()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename S  = Scalar, int D = D\+IM$>$ \\
auto \hyperlink{a11684}{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::homogenized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ typename std\+::enable\+\_\+if$<$D == 4,
                \hyperlink{a11684}{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 141 of file Vector11\+T.\+hh.

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

normalize vector, return normalized vector 

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

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

return normalized vector 

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

\mbox{\Hypertarget{a11684_abe7c9127dbc423a96022c526f56e8fbc}\label{a11684_abe7c9127dbc423a96022c526f56e8fbc}} 
\index{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT@{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}!operator\%@{operator\%}}
\index{operator\%@{operator\%}!Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT@{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}}
\subsubsection{\texorpdfstring{operator\%()}{operator\%()}}
{\footnotesize\ttfamily template$<$typename Scalar, int D\+IM$>$ \\
template$<$typename Other\+Scalar $>$ \\
auto \hyperlink{a11684}{Open\+Volume\+Mesh\+::\+Geometry\+::\+VectorT}$<$ Scalar, D\+IM $>$\+::operator\% (\begin{DoxyParamCaption}\item[{const \hyperlink{a11684}{VectorT}$<$ Other\+Scalar, D\+IM $>$ \&}]{\+\_\+rhs }\end{DoxyParamCaption}) const -\/$>$ typename std\+::enable\+\_\+if$<$D\+IM == 3,
                \hyperlink{a11684}{VectorT}$<$decltype(this-\/$>$values\+\_\+\mbox{[}0\mbox{]} $\ast$ \+\_\+rhs\mbox{[}0\mbox{]} -\/
                                 this-\/$>$values\+\_\+\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}
Open\+Volume\+Mesh\+::cross 
\end{DoxySeeAlso}


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

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

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


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



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Type-\/\+Open\+Volume\+Mesh/libs/\+Open\+Volume\+Mesh/src/\+Open\+Volume\+Mesh/\+Geometry/Vector11\+T.\+hh\end{DoxyCompactItemize}
