\doxysection{gko::\+bfloat16 Class Reference}
\hypertarget{classgko_1_1bfloat16}{}\label{classgko_1_1bfloat16}\index{gko::bfloat16@{gko::bfloat16}}


A class providing basic support for \doxylink{classgko_1_1bfloat16}{bfloat16} precision floating point types.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+base/\+bfloat16.\+hpp$>$}

\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1bfloat16_ab14dd4460044147d0cbcb29ad9db58cc}\label{classgko_1_1bfloat16_ab14dd4460044147d0cbcb29ad9db58cc} 
{\footnotesize template$<$typename T, typename = std::\+enable\+\_\+if\+\_\+t$<$std::\+is\+\_\+scalar$<$\+T$>$::\+value \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}                                          std::\+is\+\_\+same\+\_\+v$<$\+T, half$>$$>$$>$ }\\{\bfseries bfloat16} (const T \&val)
\item 
\Hypertarget{classgko_1_1bfloat16_a38453344f9b98b89d1764e275160ded1}\label{classgko_1_1bfloat16_a38453344f9b98b89d1764e275160ded1} 
{\footnotesize template$<$typename V$>$ }\\bfloat16 \& {\bfseries operator=} (const V \&val)
\item 
\Hypertarget{classgko_1_1bfloat16_aadc16e64e0bad8e89119ccdcb5776173}\label{classgko_1_1bfloat16_aadc16e64e0bad8e89119ccdcb5776173} 
{\bfseries operator float} () const noexcept
\item 
\Hypertarget{classgko_1_1bfloat16_acb9b63b5f2220c11ee64813f7bf516bb}\label{classgko_1_1bfloat16_acb9b63b5f2220c11ee64813f7bf516bb} 
bfloat16 \& {\bfseries operator+=} (const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_a93b6544b7693dd6a9a8d7242f877c2d4}\label{classgko_1_1bfloat16_a93b6544b7693dd6a9a8d7242f877c2d4} 
bfloat16 \& {\bfseries operator-\/=} (const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_a7dd703581654f3b907796dde5070bbb5}\label{classgko_1_1bfloat16_a7dd703581654f3b907796dde5070bbb5} 
bfloat16 \& {\bfseries operator\texorpdfstring{$\ast$}{*}=} (const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_a5dd314be1205e446c451fb6b7b2ac3b6}\label{classgko_1_1bfloat16_a5dd314be1205e446c451fb6b7b2ac3b6} 
bfloat16 \& {\bfseries operator/\+=} (const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_a694792d05f397c77c7c99db7e86c41bf}\label{classgko_1_1bfloat16_a694792d05f397c77c7c99db7e86c41bf} 
bfloat16 {\bfseries operator-\/} () const
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1bfloat16_ae80174dfc582ae19ae107b3e41c3df83}\label{classgko_1_1bfloat16_ae80174dfc582ae19ae107b3e41c3df83} 
static constexpr bfloat16 {\bfseries create\+\_\+from\+\_\+bits} (const std::\+uint16\+\_\+t \&bits) noexcept
\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1bfloat16_a75762d2bb984134a3d828330bca7d898}\label{classgko_1_1bfloat16_a75762d2bb984134a3d828330bca7d898} 
bfloat16 {\bfseries operator+} (const bfloat16 \&lhf, const bfloat16 \&rhf)
\item 
\Hypertarget{classgko_1_1bfloat16_ad6be0e0c66c76b3320209afb954ff0b0}\label{classgko_1_1bfloat16_ad6be0e0c66c76b3320209afb954ff0b0} 
bfloat16 {\bfseries operator-\/} (const bfloat16 \&lhf, const bfloat16 \&rhf)
\item 
\Hypertarget{classgko_1_1bfloat16_afffd33aab2a9285e0a093e2b60f77e86}\label{classgko_1_1bfloat16_afffd33aab2a9285e0a093e2b60f77e86} 
bfloat16 {\bfseries operator\texorpdfstring{$\ast$}{*}} (const bfloat16 \&lhf, const bfloat16 \&rhf)
\item 
\Hypertarget{classgko_1_1bfloat16_a7c60116b23308c205ba130368ecfb3dd}\label{classgko_1_1bfloat16_a7c60116b23308c205ba130368ecfb3dd} 
bfloat16 {\bfseries operator/\+} (const bfloat16 \&lhf, const bfloat16 \&rhf)
\item 
\Hypertarget{classgko_1_1bfloat16_aea13dbd2796aabc690847eedbcfb8653}\label{classgko_1_1bfloat16_aea13dbd2796aabc690847eedbcfb8653} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator+} (const bfloat16 \&hf, const T \&val)
\item 
\Hypertarget{classgko_1_1bfloat16_aed985f4e37885214dfb1a92a96bb02da}\label{classgko_1_1bfloat16_aed985f4e37885214dfb1a92a96bb02da} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator+} (const T \&val, const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_adce3daeffed44fb2972845fb995d5e26}\label{classgko_1_1bfloat16_adce3daeffed44fb2972845fb995d5e26} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator-\/} (const bfloat16 \&hf, const T \&val)
\item 
\Hypertarget{classgko_1_1bfloat16_a1d26ad671eb991540c44547af69ecf52}\label{classgko_1_1bfloat16_a1d26ad671eb991540c44547af69ecf52} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator-\/} (const T \&val, const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_a792c57774c4d81a01bb1bf1719b915da}\label{classgko_1_1bfloat16_a792c57774c4d81a01bb1bf1719b915da} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator\texorpdfstring{$\ast$}{*}} (const bfloat16 \&hf, const T \&val)
\item 
\Hypertarget{classgko_1_1bfloat16_a844ea562ff71a6dded42983710192f3e}\label{classgko_1_1bfloat16_a844ea562ff71a6dded42983710192f3e} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator\texorpdfstring{$\ast$}{*}} (const T \&val, const bfloat16 \&hf)
\item 
\Hypertarget{classgko_1_1bfloat16_a48bcd44617facc554fd20c0b23edca3d}\label{classgko_1_1bfloat16_a48bcd44617facc554fd20c0b23edca3d} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator/\+} (const bfloat16 \&hf, const T \&val)
\item 
\Hypertarget{classgko_1_1bfloat16_a432a9b83e4e19dec5747a81f9a3a0426}\label{classgko_1_1bfloat16_a432a9b83e4e19dec5747a81f9a3a0426} 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ !std::\+is\+\_\+same$<$ T, bfloat16 $>$::\+value \&\&(std::\+is\+\_\+scalar$<$ T $>$::\+value\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$), std::\+conditional\+\_\+t$<$ std::\+is\+\_\+floating\+\_\+point$<$ T $>$::\+value, T, std::\+conditional\+\_\+t$<$ std::\+is\+\_\+same\+\_\+v$<$ T, \doxymbox{\hyperlink{classgko_1_1half}{half}} $>$, float, bfloat16 $>$ $>$ $>$ {\bfseries operator/\+} (const T \&val, const bfloat16 \&hf)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A class providing basic support for \doxylink{classgko_1_1bfloat16}{bfloat16} precision floating point types. 

For now the only features are reduced storage compared to single precision and conversions from and to single precision floating point type. 

The documentation for this class was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+base/\+bfloat16.\+hpp\end{DoxyCompactItemize}
