\doxysection{types.\+hpp}
\hypertarget{core_2base_2types_8hpp_source}{}\label{core_2base_2types_8hpp_source}\index{ginkgo/core/base/types.hpp@{ginkgo/core/base/types.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{//\ SPDX-\/FileCopyrightText:\ 2017\ -\/\ 2025\ The\ Ginkgo\ authors}}
\DoxyCodeLine{00002\ \textcolor{comment}{//}}
\DoxyCodeLine{00003\ \textcolor{comment}{//\ SPDX-\/License-\/Identifier:\ BSD-\/3-\/Clause}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#ifndef\ GKO\_PUBLIC\_CORE\_BASE\_TYPES\_HPP\_}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#define\ GKO\_PUBLIC\_CORE\_BASE\_TYPES\_HPP\_}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ }
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ <array>}}
\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ <cassert>}}
\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#include\ <climits>}}
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ <complex>}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ <cstddef>}}
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ <cstdint>}}
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ <limits>}}
\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ <stdexcept>}}
\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ <type\_traits>}}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ <ginkgo/config.hpp>}}
\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/bfloat16.hpp>}}
\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/half.hpp>}}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ }
\DoxyCodeLine{00025\ \textcolor{preprocessor}{\#ifdef\ \_\_HIPCC\_\_}}
\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#include\ <hip/hip\_runtime.h>}}
\DoxyCodeLine{00027\ \textcolor{preprocessor}{\#endif\ \ }\textcolor{comment}{//\ \_\_HIPCC\_\_}}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ }
\DoxyCodeLine{00030\ \textcolor{comment}{//\ Macros\ for\ handling\ different\ compilers\ /\ architectures\ uniformly}}
\DoxyCodeLine{00031\ \textcolor{preprocessor}{\#if\ defined(\_\_CUDACC\_\_)\ ||\ defined(\_\_HIPCC\_\_)}}
\DoxyCodeLine{00032\ \textcolor{preprocessor}{\#define\ GKO\_ATTRIBUTES\ \_\_host\_\_\ \_\_device\_\_}}
\DoxyCodeLine{00033\ \textcolor{preprocessor}{\#define\ GKO\_INLINE\ \_\_forceinline\_\_}}
\DoxyCodeLine{00034\ \textcolor{preprocessor}{\#define\ GKO\_RESTRICT\ \_\_restrict\_\_}}
\DoxyCodeLine{00035\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00036\ \textcolor{preprocessor}{\#define\ GKO\_ATTRIBUTES}}
\DoxyCodeLine{00037\ \textcolor{preprocessor}{\#define\ GKO\_INLINE\ inline}}
\DoxyCodeLine{00038\ \textcolor{preprocessor}{\#define\ GKO\_RESTRICT}}
\DoxyCodeLine{00039\ \textcolor{preprocessor}{\#endif\ \ }\textcolor{comment}{//\ defined(\_\_CUDACC\_\_)\ ||\ defined(\_\_HIPCC\_\_)}}
\DoxyCodeLine{00040\ }
\DoxyCodeLine{00041\ }
\DoxyCodeLine{00042\ \textcolor{comment}{//\ Macros\ for\ handling\ different\ device\ error\ return\ types\ uniformly}}
\DoxyCodeLine{00043\ \textcolor{preprocessor}{\#if\ defined(\_\_CUDACC\_\_)}}
\DoxyCodeLine{00044\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_ERROR\_TYPE\ cudaError\_t}}
\DoxyCodeLine{00045\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_ERROR\_INVALID\ cudaErrorInvalidValue}}
\DoxyCodeLine{00046\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_NO\_ERROR\ cudaSuccess}}
\DoxyCodeLine{00047\ \textcolor{preprocessor}{\#elif\ defined(\_\_HIPCC\_\_)}}
\DoxyCodeLine{00048\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_ERROR\_TYPE\ hipError\_t}}
\DoxyCodeLine{00049\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_ERROR\_INVALID\ hipErrorInvalidValue}}
\DoxyCodeLine{00050\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_NO\_ERROR\ hipSuccess}}
\DoxyCodeLine{00051\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00052\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_ERROR\_TYPE\ int}}
\DoxyCodeLine{00053\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_ERROR\_INVALID\ 1}}
\DoxyCodeLine{00054\ \textcolor{preprocessor}{\#define\ GKO\_DEVICE\_NO\_ERROR\ 0}}
\DoxyCodeLine{00055\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ }
\DoxyCodeLine{00058\ \textcolor{preprocessor}{\#define\ GKO\_ASSERT(condition)\ assert(condition)}}
\DoxyCodeLine{00059\ }
\DoxyCodeLine{00060\ }
\DoxyCodeLine{00061\ \textcolor{comment}{//\ Handle\ deprecated\ notices\ correctly\ on\ different\ systems}}
\DoxyCodeLine{00062\ \textcolor{comment}{//\ clang-\/format\ off}}
\DoxyCodeLine{00063\ \textcolor{preprocessor}{\#define\ GKO\_DEPRECATED(\_msg)\ [[deprecated(\_msg)]]}}
\DoxyCodeLine{00064\ \textcolor{preprocessor}{\#ifdef\ \_\_NVCOMPILER}}
\DoxyCodeLine{00065\ \textcolor{preprocessor}{\#define\ GKO\_BEGIN\_DISABLE\_DEPRECATION\_WARNINGS\ \_Pragma("{}diag\_suppress\ 1445"{})}}
\DoxyCodeLine{00066\ \textcolor{preprocessor}{\#define\ GKO\_END\_DISABLE\_DEPRECATION\_WARNINGS\ \_Pragma("{}diag\_warning\ 1445"{})}}
\DoxyCodeLine{00067\ \textcolor{preprocessor}{\#elif\ defined(\_\_GNUC\_\_)\ ||\ defined(\_\_clang\_\_)}}
\DoxyCodeLine{00068\ \textcolor{preprocessor}{\#define\ GKO\_BEGIN\_DISABLE\_DEPRECATION\_WARNINGS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00069\ \textcolor{preprocessor}{\ \ \ \ \_Pragma("{}GCC\ diagnostic\ push"{})\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00070\ \textcolor{preprocessor}{\ \ \ \ \_Pragma("{}GCC\ diagnostic\ ignored\ \(\backslash\)"{}-\/Wdeprecated-\/declarations\(\backslash\)"{}"{})}}
\DoxyCodeLine{00071\ \textcolor{preprocessor}{\#define\ GKO\_END\_DISABLE\_DEPRECATION\_WARNINGS\ \_Pragma("{}GCC\ diagnostic\ pop"{})}}
\DoxyCodeLine{00072\ \textcolor{preprocessor}{\#elif\ defined(\_MSC\_VER)}}
\DoxyCodeLine{00073\ \textcolor{preprocessor}{\#define\ GKO\_BEGIN\_DISABLE\_DEPRECATION\_WARNINGS\ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00074\ \textcolor{preprocessor}{\ \ \ \ \_Pragma("{}warning(push)"{})\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00075\ \textcolor{preprocessor}{\ \ \ \ \_Pragma("{}warning(disable\ :\ 5211\ 4973\ 4974\ 4996)"{})}}
\DoxyCodeLine{00076\ \textcolor{preprocessor}{\#define\ GKO\_END\_DISABLE\_DEPRECATION\_WARNINGS\ \_Pragma("{}warning(pop)"{})}}
\DoxyCodeLine{00077\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00078\ \textcolor{preprocessor}{\#define\ GKO\_BEGIN\_DISABLE\_DEPRECATION\_WARNINGS}}
\DoxyCodeLine{00079\ \textcolor{preprocessor}{\#define\ GKO\_END\_DISABLE\_DEPRECATION\_WARNINGS}}
\DoxyCodeLine{00080\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00081\ \textcolor{comment}{//\ clang-\/format\ on}}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00083\ }
\DoxyCodeLine{00084\ \textcolor{keyword}{namespace\ }\doxymbox{\hyperlink{namespacegko}{gko}}\ \{}
\DoxyCodeLine{00085\ }
\DoxyCodeLine{00086\ }
\DoxyCodeLine{00090\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ =\ std::size\_t;}
\DoxyCodeLine{00091\ }
\DoxyCodeLine{00092\ }
\DoxyCodeLine{00096\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a7ff694002fd7739ee5c4c03f4159c3ca}{int8}}\ =\ std::int8\_t;}
\DoxyCodeLine{00097\ }
\DoxyCodeLine{00101\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a1c5858448a3585731f33870694860aff}{int16}}\ =\ std::int16\_t;}
\DoxyCodeLine{00102\ }
\DoxyCodeLine{00103\ }
\DoxyCodeLine{00107\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}\ =\ std::int32\_t;}
\DoxyCodeLine{00108\ }
\DoxyCodeLine{00109\ }
\DoxyCodeLine{00113\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}\ =\ std::int64\_t;}
\DoxyCodeLine{00114\ }
\DoxyCodeLine{00115\ }
\DoxyCodeLine{00119\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}\ =\ std::uint8\_t;}
\DoxyCodeLine{00120\ }
\DoxyCodeLine{00124\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_af07ab7e285d68cde5e10f9c4ed642213}{uint16}}\ =\ std::uint16\_t;}
\DoxyCodeLine{00125\ }
\DoxyCodeLine{00126\ }
\DoxyCodeLine{00130\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a7cf056fa904140b50658e0637fba428c}{uint32}}\ =\ std::uint32\_t;}
\DoxyCodeLine{00131\ }
\DoxyCodeLine{00132\ }
\DoxyCodeLine{00136\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a09ee89da532d8b1fa6fdecec2d20b9bf}{uint64}}\ =\ std::uint64\_t;}
\DoxyCodeLine{00137\ }
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00142\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\ =\ std::uintptr\_t;}
\DoxyCodeLine{00143\ }
\DoxyCodeLine{00144\ }
\DoxyCodeLine{00148\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_af1e94db06aba818c1db32a2a683836c9}{float16}}\ =\ \doxymbox{\hyperlink{classgko_1_1half}{half}};}
\DoxyCodeLine{00149\ }
\DoxyCodeLine{00150\ }
\DoxyCodeLine{00154\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_af14be891fe28c2fb9ad22509ba49b8f4}{float32}}\ =\ float;}
\DoxyCodeLine{00155\ }
\DoxyCodeLine{00156\ }
\DoxyCodeLine{00160\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a86e94f8a1bcd1b4d7fd970383c138a30}{float64}}\ =\ double;}
\DoxyCodeLine{00161\ }
\DoxyCodeLine{00162\ }
\DoxyCodeLine{00166\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a1a74b54097c5a16d13644658efa18de0}{full\_precision}}\ =\ double;}
\DoxyCodeLine{00167\ }
\DoxyCodeLine{00168\ }
\DoxyCodeLine{00172\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\_precision}}\ =\ double;}
\DoxyCodeLine{00173\ }
\DoxyCodeLine{00174\ }
\DoxyCodeLine{00178\ \textcolor{keyword}{constexpr}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ \doxymbox{\hyperlink{namespacegko_acae2e648052ec788bd8ba9e0192652a6}{byte\_size}}\ =\ CHAR\_BIT;}
\DoxyCodeLine{00179\ }
\DoxyCodeLine{00180\ }
\DoxyCodeLine{00189\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Args>}
\DoxyCodeLine{00190\ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{structgko_1_1are__all__integral}{are\_all\_integral}}\ :\ \textcolor{keyword}{public}\ std::true\_type\ \{\};}
\DoxyCodeLine{00191\ }
\DoxyCodeLine{00192\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ First,\ \textcolor{keyword}{typename}...\ Args>}
\DoxyCodeLine{00193\ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{structgko_1_1are__all__integral}{are\_all\_integral}}<First,\ Args...>}
\DoxyCodeLine{00194\ \ \ \ \ :\ \textcolor{keyword}{public}\ std::conditional<std::is\_integral<std::decay\_t<First>>::value,}
\DoxyCodeLine{00195\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ are\_all\_integral<Args...>,}
\DoxyCodeLine{00196\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::false\_type>::type\ \{\};}
\DoxyCodeLine{00197\ }
\DoxyCodeLine{00198\ }
\DoxyCodeLine{00239\ \textcolor{keyword}{class\ }\doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}\ \{}
\DoxyCodeLine{00240\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00244\ \ \ \ \ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ =\ \doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}};}
\DoxyCodeLine{00245\ }
\DoxyCodeLine{00246\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00247\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{auto}\ nonpreserving\_bits\ =\ 4u;}
\DoxyCodeLine{00248\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{auto}\ preserving\_bits\ =}
\DoxyCodeLine{00249\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{namespacegko_acae2e648052ec788bd8ba9e0192652a6}{byte\_size}}\ *\ \textcolor{keyword}{sizeof}(\doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}})\ -\/\ nonpreserving\_bits;}
\DoxyCodeLine{00250\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{auto}\ nonpreserving\_mask\ =}
\DoxyCodeLine{00251\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\{(0x1\ <<\ nonpreserving\_bits)\ -\/\ 1\};}
\DoxyCodeLine{00252\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{auto}\ preserving\_mask\ =}
\DoxyCodeLine{00253\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\{(0x1\ <<\ preserving\_bits)\ -\/\ 1\}\ <<\ nonpreserving\_bits;}
\DoxyCodeLine{00254\ }
\DoxyCodeLine{00255\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00261\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}()\ noexcept\ :\ data\_\{0x0\}\ \{\}}
\DoxyCodeLine{00262\ }
\DoxyCodeLine{00270\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_ae4d4355a6614ced4fc611619da7b09f2}{precision\_reduction}}(}
\DoxyCodeLine{00271\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ preserving,\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ nonpreserving)\ noexcept}
\DoxyCodeLine{00272\ \ \ \ \ \ \ \ \ :\ data\_((GKO\_ASSERT(preserving\ <\ (0x1\ <<\ preserving\_bits)\ -\/\ 1),}
\DoxyCodeLine{00273\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ GKO\_ASSERT(nonpreserving\ <\ (0x1\ <<\ nonpreserving\_bits)\ -\/\ 1),}
\DoxyCodeLine{00274\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (preserving\ <<\ nonpreserving\_bits)\ |\ nonpreserving))}
\DoxyCodeLine{00275\ \ \ \ \ \{\}}
\DoxyCodeLine{00276\ }
\DoxyCodeLine{00282\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{operator}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}()\ const\ noexcept}
\DoxyCodeLine{00283\ \ \ \ \ \{}
\DoxyCodeLine{00284\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ data\_;}
\DoxyCodeLine{00285\ \ \ \ \ \}}
\DoxyCodeLine{00286\ }
\DoxyCodeLine{00292\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_ad709bd9bdd9b4ec27f75fc213aef51df}{get\_preserving}}()\ const\ noexcept}
\DoxyCodeLine{00293\ \ \ \ \ \{}
\DoxyCodeLine{00294\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ (data\_\ \&\ preserving\_mask)\ >>\ nonpreserving\_bits;}
\DoxyCodeLine{00295\ \ \ \ \ \}}
\DoxyCodeLine{00296\ }
\DoxyCodeLine{00302\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a909a01025fd490d4658abd7c5791685d}{get\_nonpreserving}}()\ const\ noexcept}
\DoxyCodeLine{00303\ \ \ \ \ \{}
\DoxyCodeLine{00304\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ data\_\ \&\ nonpreserving\_mask;}
\DoxyCodeLine{00305\ \ \ \ \ \}}
\DoxyCodeLine{00306\ }
\DoxyCodeLine{00314\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{static}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_ac4109c61fadb24db7a1888c51ac483e9}{autodetect}}()\ noexcept}
\DoxyCodeLine{00315\ \ \ \ \ \{}
\DoxyCodeLine{00316\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}\{preserving\_mask\ |\ nonpreserving\_mask\};}
\DoxyCodeLine{00317\ \ \ \ \ \}}
\DoxyCodeLine{00318\ }
\DoxyCodeLine{00330\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{static}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_aa0ac7ac5a2807f3a0e9bd245273be388}{common}}(}
\DoxyCodeLine{00331\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}\ x,\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}\ y)\ \textcolor{keyword}{noexcept}}
\DoxyCodeLine{00332\ \ \ \ \ \{}
\DoxyCodeLine{00333\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}(}
\DoxyCodeLine{00334\ \ \ \ \ \ \ \ \ \ \ \ \ min(x.data\_\ \&\ preserving\_mask,\ y.data\_\ \&\ preserving\_mask)\ |}
\DoxyCodeLine{00335\ \ \ \ \ \ \ \ \ \ \ \ \ min(x.data\_\ \&\ nonpreserving\_mask,\ y.data\_\ \&\ nonpreserving\_mask));}
\DoxyCodeLine{00336\ \ \ \ \ \}}
\DoxyCodeLine{00337\ }
\DoxyCodeLine{00338\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00339\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a371fe028770edee40c013d1a45365aa2}{precision\_reduction}}(\doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ data)}
\DoxyCodeLine{00340\ \ \ \ \ \ \ \ \ :\ data\_\{data\}}
\DoxyCodeLine{00341\ \ \ \ \ \{\}}
\DoxyCodeLine{00342\ }
\DoxyCodeLine{00343\ \ \ \ \ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \textcolor{keyword}{static}\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ min(\doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ x,}
\DoxyCodeLine{00344\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ y)\ \textcolor{keyword}{noexcept}}
\DoxyCodeLine{00345\ \ \ \ \ \{}
\DoxyCodeLine{00346\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ x\ <\ y\ ?\ x\ :\ y;}
\DoxyCodeLine{00347\ \ \ \ \ \}}
\DoxyCodeLine{00348\ }
\DoxyCodeLine{00349\ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{storage\_type}}\ data\_;}
\DoxyCodeLine{00350\ \};}
\DoxyCodeLine{00351\ }
\DoxyCodeLine{00352\ }
\DoxyCodeLine{00361\ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \textcolor{keywordtype}{bool}\ operator==(\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\_reduction}}\ x,}
\DoxyCodeLine{00362\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\_reduction}}\ y)\ \textcolor{keyword}{noexcept}}
\DoxyCodeLine{00363\ \{}
\DoxyCodeLine{00364\ \ \ \ \ \textcolor{keyword}{using\ }st\ =\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{precision\_reduction::storage\_type}};}
\DoxyCodeLine{00365\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{static\_cast<}st\textcolor{keyword}{>}(x)\ ==\ \textcolor{keyword}{static\_cast<}st\textcolor{keyword}{>}(y);}
\DoxyCodeLine{00366\ \}}
\DoxyCodeLine{00367\ }
\DoxyCodeLine{00368\ }
\DoxyCodeLine{00377\ GKO\_ATTRIBUTES\ \textcolor{keyword}{constexpr}\ \textcolor{keywordtype}{bool}\ operator!=(\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\_reduction}}\ x,}
\DoxyCodeLine{00378\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\_reduction}}\ y)\ \textcolor{keyword}{noexcept}}
\DoxyCodeLine{00379\ \{}
\DoxyCodeLine{00380\ \ \ \ \ \textcolor{keyword}{using\ }st\ =\ \doxymbox{\hyperlink{classgko_1_1precision__reduction_a2a1a94a27fa69b4cc321136b56e7b7d9}{precision\_reduction::storage\_type}};}
\DoxyCodeLine{00381\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{static\_cast<}st\textcolor{keyword}{>}(x)\ !=\ \textcolor{keyword}{static\_cast<}st\textcolor{keyword}{>}(y);}
\DoxyCodeLine{00382\ \}}
\DoxyCodeLine{00383\ }
\DoxyCodeLine{00384\ }
\DoxyCodeLine{00397\ \textcolor{preprocessor}{\#define\ GKO\_ENABLE\_FOR\_ALL\_EXECUTORS(\_enable\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00398\ \textcolor{preprocessor}{\ \ \ \ \_enable\_macro(OmpExecutor,\ omp);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00399\ \textcolor{preprocessor}{\ \ \ \ \_enable\_macro(HipExecutor,\ hip);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00400\ \textcolor{preprocessor}{\ \ \ \ \_enable\_macro(DpcppExecutor,\ dpcpp);\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00401\ \textcolor{preprocessor}{\ \ \ \ \_enable\_macro(CudaExecutor,\ cuda)}}
\DoxyCodeLine{00402\ }
\DoxyCodeLine{00403\ }
\DoxyCodeLine{00404\ \textcolor{comment}{//\ cuda\ half\ operation\ is\ supported\ from\ arch\ 5.3}}
\DoxyCodeLine{00405\ \textcolor{preprocessor}{\#if\ GINKGO\_ENABLE\_HALF\ \&\&\ (!defined(\_\_CUDA\_ARCH\_\_)\ ||\ \_\_CUDA\_ARCH\_\_\ >=\ 530)}}
\DoxyCodeLine{00406\ \textcolor{preprocessor}{\#define\ GKO\_ADAPT\_HF(\_macro)\ \_macro}}
\DoxyCodeLine{00407\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00408\ \textcolor{preprocessor}{\#define\ GKO\_ADAPT\_HF(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00409\ \textcolor{preprocessor}{\ \ \ \ static\_assert(true,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00410\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}This\ assert\ is\ used\ to\ counter\ the\ false\ positive\ extra\ "{}\ \(\backslash\)}}
\DoxyCodeLine{00411\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}semi-\/colon\ warnings"{})}}
\DoxyCodeLine{00412\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00413\ }
\DoxyCodeLine{00414\ }
\DoxyCodeLine{00415\ \textcolor{comment}{//\ cuda\ bfloat16\ arithmetic\ operation\ is\ supported\ from\ arch\ 8.0}}
\DoxyCodeLine{00416\ \textcolor{preprocessor}{\#if\ GINKGO\_ENABLE\_BFLOAT16\ \&\&\ (!defined(\_\_CUDA\_ARCH\_\_)\ ||\ \_\_CUDA\_ARCH\_\_\ >=\ 800)}}
\DoxyCodeLine{00417\ \textcolor{preprocessor}{\#define\ GKO\_ADAPT\_BF(\_macro)\ \_macro}}
\DoxyCodeLine{00418\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00419\ \textcolor{preprocessor}{\#define\ GKO\_ADAPT\_BF(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00420\ \textcolor{preprocessor}{\ \ \ \ static\_assert(true,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00421\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}This\ assert\ is\ used\ to\ counter\ the\ false\ positive\ extra\ "{}\ \(\backslash\)}}
\DoxyCodeLine{00422\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}semi-\/colon\ warnings"{})}}
\DoxyCodeLine{00423\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00424\ }
\DoxyCodeLine{00433\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00434\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00435\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00436\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00437\ \textcolor{preprocessor}{\ \ \ \ \_macro(double)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00438\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00439\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00440\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00441\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double)}}
\DoxyCodeLine{00442\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00443\ }
\DoxyCodeLine{00444\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00445\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00446\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00447\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{00448\ }
\DoxyCodeLine{00449\ }
\DoxyCodeLine{00458\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00459\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_BASE(\_macro)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00460\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_BASE(\_macro);\ \(\backslash\)}}
\DoxyCodeLine{00461\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00462\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00463\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00464\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00465\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_BASE(\_macro)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00466\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_BASE(\_macro);\ \(\backslash\)}}
\DoxyCodeLine{00467\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00468\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>)}}
\DoxyCodeLine{00469\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00470\ }
\DoxyCodeLine{00471\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE(\_macro)\ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00472\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00473\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>));\ \ \(\backslash\)}}
\DoxyCodeLine{00474\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00475\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>));\ \(\backslash\)}}
\DoxyCodeLine{00476\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{00477\ }
\DoxyCodeLine{00478\ }
\DoxyCodeLine{00479\ \textcolor{comment}{//\ Helper\ macro\ to\ make\ Windows\ builds\ work}}
\DoxyCodeLine{00480\ \textcolor{comment}{//\ In\ MSVC,\ \_\_VA\_ARGS\_\_\ behave\ like\ one\ argument\ by\ default.}}
\DoxyCodeLine{00481\ \textcolor{comment}{//\ with\ this,\ we\ can\ expand\ the\ \_\_VA\_ARGS\_\_\ properly}}
\DoxyCodeLine{00482\ \textcolor{preprocessor}{\#define\ GKO\_INDIRECT(...)\ \_\_VA\_ARGS\_\_}}
\DoxyCodeLine{00483\ }
\DoxyCodeLine{00484\ }
\DoxyCodeLine{00495\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00496\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ \(\backslash\)}}
\DoxyCodeLine{00497\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ...)\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00498\ \textcolor{preprocessor}{\ \ \ \ template\ GKO\_INDIRECT(\_macro(float,\ \_\_VA\_ARGS\_\_));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00499\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00500\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(\_macro(double,\ \_\_VA\_ARGS\_\_))\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00501\ \textcolor{preprocessor}{\ \ \ \ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00502\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00503\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ \(\backslash\)}}
\DoxyCodeLine{00504\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ...)\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00505\ \textcolor{preprocessor}{\ \ \ \ template\ GKO\_INDIRECT(\_macro(float,\ \_\_VA\_ARGS\_\_));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00506\ \textcolor{preprocessor}{\ \ \ \ template\ GKO\_INDIRECT(\_macro(double,\ \_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{00507\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00508\ }
\DoxyCodeLine{00509\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_VARGS(\_macro,\ ...)\ \(\backslash\)}}
\DoxyCodeLine{00510\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(GKO\_ADAPT\_HF(template\ \_macro(float16,\ \_\_VA\_ARGS\_\_)));\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00511\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ \_\_VA\_ARGS\_\_)));\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00512\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00513\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{00514\ }
\DoxyCodeLine{00515\ }
\DoxyCodeLine{00526\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00527\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ ...)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00528\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00529\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_VA\_ARGS\_\_);\ \(\backslash\)}}
\DoxyCodeLine{00530\ \textcolor{preprocessor}{\ \ \ \ template\ GKO\_INDIRECT(\_macro(std::complex<float>,\ \_\_VA\_ARGS\_\_));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00531\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00532\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(\_macro(std::complex<double>,\ \_\_VA\_ARGS\_\_))\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00533\ \textcolor{preprocessor}{\ \ \ \ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00534\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00535\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ ...)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00536\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00537\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_VA\_ARGS\_\_);\ \(\backslash\)}}
\DoxyCodeLine{00538\ \textcolor{preprocessor}{\ \ \ \ template\ GKO\_INDIRECT(\_macro(std::complex<float>,\ \_\_VA\_ARGS\_\_));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00539\ \textcolor{preprocessor}{\ \ \ \ template\ GKO\_INDIRECT(\_macro(std::complex<double>,\ \_\_VA\_ARGS\_\_))}}
\DoxyCodeLine{00540\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00541\ }
\DoxyCodeLine{00542\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_VARGS(\_macro,\ ...)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00543\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(GKO\_ADAPT\_HF(template\ \_macro(float16,\ \_\_VA\_ARGS\_\_)));\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00544\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00545\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ \_\_VA\_ARGS\_\_)));\ \ \(\backslash\)}}
\DoxyCodeLine{00546\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ \_\_VA\_ARGS\_\_)));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00547\ \textcolor{preprocessor}{\ \ \ \ GKO\_INDIRECT(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00548\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ \_\_VA\_ARGS\_\_)));\ \(\backslash\)}}
\DoxyCodeLine{00549\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_VARGS\_BASE(\_macro,\ \_\_VA\_ARGS\_\_)}}
\DoxyCodeLine{00550\ }
\DoxyCodeLine{00551\ }
\DoxyCodeLine{00562\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00563\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_SCALAR\_TYPE\_BASE(\_macro)\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00564\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00565\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00566\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ double)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00567\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00568\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00569\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ std::complex<double>)\ GKO\_NOT\_IMPLEMENTED;\ \(\backslash\)}}
\DoxyCodeLine{00570\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00571\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00572\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ double)\ GKO\_NOT\_IMPLEMENTED;}}
\DoxyCodeLine{00573\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00574\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_SCALAR\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00575\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00576\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00577\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00578\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<double>);\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00579\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00580\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ double)}}
\DoxyCodeLine{00581\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00582\ }
\DoxyCodeLine{00583\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_SCALAR\_TYPE(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00584\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_SCALAR\_TYPE\_BASE(\_macro);\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00585\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00586\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00587\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<float16>));\ \ \ \(\backslash\)}}
\DoxyCodeLine{00588\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ float16));\ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00589\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00590\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00591\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<bfloat16>));\ \(\backslash\)}}
\DoxyCodeLine{00592\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ bfloat16))}}
\DoxyCodeLine{00593\ }
\DoxyCodeLine{00594\ }
\DoxyCodeLine{00603\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_INDEX\_TYPE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00604\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00605\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int64)}}
\DoxyCodeLine{00606\ }
\DoxyCodeLine{00607\ }
\DoxyCodeLine{00617\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00618\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00619\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00620\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00621\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ int32)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00622\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00623\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00624\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ int64)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00625\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00626\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00627\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00628\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00629\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00630\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ int64)}}
\DoxyCodeLine{00631\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00632\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_INDEX\_TYPE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00633\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00634\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00635\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00636\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00637\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{00638\ }
\DoxyCodeLine{00639\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00640\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INT32\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00641\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00642\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00643\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ int32)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00644\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00645\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00646\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ int32)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00647\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00648\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INT32\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00649\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00650\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00651\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00652\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ int32)}}
\DoxyCodeLine{00653\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00654\ }
\DoxyCodeLine{00655\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INT32\_TYPE(\_macro)\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00656\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00657\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ int32));\ \ \(\backslash\)}}
\DoxyCodeLine{00658\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00659\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ int32));\ \(\backslash\)}}
\DoxyCodeLine{00660\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INT32\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{00661\ }
\DoxyCodeLine{00662\ }
\DoxyCodeLine{00671\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00672\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00673\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro);\ \(\backslash\)}}
\DoxyCodeLine{00674\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00675\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00676\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ int32)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00677\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00678\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00679\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ int64)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00680\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00681\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00682\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro);\ \(\backslash\)}}
\DoxyCodeLine{00683\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00684\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00685\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00686\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ int64)}}
\DoxyCodeLine{00687\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00688\ }
\DoxyCodeLine{00689\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INDEX\_TYPE(\_macro)\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00690\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00691\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00692\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ int32));\ \ \(\backslash\)}}
\DoxyCodeLine{00693\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ int64));\ \ \(\backslash\)}}
\DoxyCodeLine{00694\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00695\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00696\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ int32));\ \(\backslash\)}}
\DoxyCodeLine{00697\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ int64));\ \(\backslash\)}}
\DoxyCodeLine{00698\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{00699\ }
\DoxyCodeLine{00700\ }
\DoxyCodeLine{00710\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00711\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \(\backslash\)}}
\DoxyCodeLine{00712\ \textcolor{preprocessor}{\ \ \ \ \_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00713\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00714\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00715\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int64,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00716\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00717\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ int32,\ int32)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00718\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00719\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ int32,\ int64)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00720\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00721\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ int64,\ int64)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00722\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00723\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \(\backslash\)}}
\DoxyCodeLine{00724\ \textcolor{preprocessor}{\ \ \ \ \_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00725\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00726\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00727\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ int64,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00728\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00729\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00730\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ int64,\ int64)}}
\DoxyCodeLine{00731\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00732\ }
\DoxyCodeLine{00733\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE(\ \ \(\backslash\)}}
\DoxyCodeLine{00734\ \textcolor{preprocessor}{\ \ \ \ \_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00735\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00736\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00737\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int64,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00738\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00739\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00740\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int64,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00741\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \(\backslash\)}}
\DoxyCodeLine{00742\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_macro)}}
\DoxyCodeLine{00743\ }
\DoxyCodeLine{00744\ }
\DoxyCodeLine{00753\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00754\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00755\ \textcolor{preprocessor}{\ \ \ \ \_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00756\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \(\backslash\)}}
\DoxyCodeLine{00757\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_macro);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00758\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00759\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00760\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int64,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00761\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00762\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ int32,\ int32)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00763\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00764\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ int32,\ int64)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00765\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00766\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ int64,\ int64)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00767\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00768\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00769\ \textcolor{preprocessor}{\ \ \ \ \_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00770\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_NON\_COMPLEX\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\ \(\backslash\)}}
\DoxyCodeLine{00771\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_macro);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00772\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00773\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00774\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ int64,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00775\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00776\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00777\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ int64,\ int64)}}
\DoxyCodeLine{00778\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00779\ }
\DoxyCodeLine{00780\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE(\_macro)\ \ \ \(\backslash\)}}
\DoxyCodeLine{00781\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_AND\_LOCAL\_GLOBAL\_INDEX\_TYPE\_BASE(\_macro);\ \(\backslash\)}}
\DoxyCodeLine{00782\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00783\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int32,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00784\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ int64,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00785\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ int32,\ int32));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00786\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ int32,\ int64));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00787\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ int64,\ int64));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00788\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32,\ int32));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00789\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int32,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00790\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ int64,\ int64));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00791\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ int32,\ int32));\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00792\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ int32,\ int64));\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00793\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ int64,\ int64))}}
\DoxyCodeLine{00794\ }
\DoxyCodeLine{00795\ }
\DoxyCodeLine{00796\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00797\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_BASE(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00798\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00799\ \textcolor{preprocessor}{\ \ \ \ \_macro(float,\ double)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00800\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00801\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ float)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00802\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00803\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<float>,\ std::complex<double>)\ GKO\_NOT\_IMPLEMENTED;\ \(\backslash\)}}
\DoxyCodeLine{00804\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00805\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ std::complex<float>)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00806\ }
\DoxyCodeLine{00807\ }
\DoxyCodeLine{00808\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_OR\_COPY\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00809\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_BASE(\_macro);\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00810\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00811\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00812\ \textcolor{preprocessor}{\ \ \ \ \_macro(double,\ double)\ GKO\_NOT\_IMPLEMENTED;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00813\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00814\ \textcolor{preprocessor}{\ \ \ \ template\ <>\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00815\ \textcolor{preprocessor}{\ \ \ \ \_macro(std::complex<double>,\ std::complex<double>)\ GKO\_NOT\_IMPLEMENTED}}
\DoxyCodeLine{00816\ \textcolor{preprocessor}{\#else}\textcolor{preprocessor}{}}
\DoxyCodeLine{00826\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_BASE(\_macro)\ \ \(\backslash\)}}
\DoxyCodeLine{00827\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00828\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00829\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<double>);\ \(\backslash\)}}
\DoxyCodeLine{00830\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<float>)}}
\DoxyCodeLine{00831\ }
\DoxyCodeLine{00832\ }
\DoxyCodeLine{00842\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_OR\_COPY\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00843\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_BASE(\_macro);\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00844\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00845\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00846\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00847\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<double>)}}
\DoxyCodeLine{00848\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00849\ }
\DoxyCodeLine{00850\ \textcolor{preprocessor}{\#if\ GINKGO\_DPCPP\_SINGLE\_MODE}}
\DoxyCodeLine{00851\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00852\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ <>\ \_macro(float16,\ double)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00853\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ <>\ \_macro(double,\ float16)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00854\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00855\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ float));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00856\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ std::complex<float>));\ \(\backslash\)}}
\DoxyCodeLine{00857\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ <>\ \_macro(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00858\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ std::complex<float16>,\ std::complex<double>)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00859\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float>,\ std::complex<float16>));\ \(\backslash\)}}
\DoxyCodeLine{00860\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ <>\ \_macro(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00861\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ std::complex<double>,\ std::complex<float16>)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00862\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ <>\ \_macro(bfloat16,\ double)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00863\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ <>\ \_macro(double,\ bfloat16)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00864\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(float,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00865\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ float));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00866\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00867\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<float>));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00868\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ <>\ \_macro(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00869\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ std::complex<bfloat16>,\ std::complex<double>)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00870\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00871\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<bfloat16>));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00872\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ <>\ \_macro(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00873\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ std::complex<double>,\ std::complex<bfloat16>)\ GKO\_NOT\_IMPLEMENTED);\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00874\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(GKO\_ADAPT\_HF(template\ \_macro(bfloat16,\ float16)));\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00875\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(GKO\_ADAPT\_BF(template\ \_macro(float16,\ bfloat16)));\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00876\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00877\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<float16>)));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00878\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00879\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<bfloat16>)));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00880\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_BASE(\_macro)}}
\DoxyCodeLine{00881\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00882\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00883\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ double));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00884\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(double,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00885\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00886\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ float));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00887\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ std::complex<float>));\ \(\backslash\)}}
\DoxyCodeLine{00888\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00889\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<double>));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00890\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float>,\ std::complex<float16>));\ \(\backslash\)}}
\DoxyCodeLine{00891\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00892\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<float16>));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00893\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ double));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00894\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(double,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00895\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(float,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00896\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ float));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00897\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00898\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<float>));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00899\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00900\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<double>));\ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00901\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00902\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<bfloat16>));\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00903\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00904\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<bfloat16>));\ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00905\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(GKO\_ADAPT\_HF(template\ \_macro(bfloat16,\ float16)));\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00906\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(GKO\_ADAPT\_BF(template\ \_macro(float16,\ bfloat16)));\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00907\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00908\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<float16>)));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00909\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00910\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<bfloat16>)));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00911\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_BASE(\_macro)}}
\DoxyCodeLine{00912\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00913\ }
\DoxyCodeLine{00914\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION\_OR\_COPY(\_macro)\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00915\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_CONVERSION(\_macro);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00916\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00917\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00918\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<float16>));\ \ \ \(\backslash\)}}
\DoxyCodeLine{00919\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00920\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00921\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<bfloat16>));\ \(\backslash\)}}
\DoxyCodeLine{00922\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00923\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00924\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00925\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<double>)}}
\DoxyCodeLine{00926\ }
\DoxyCodeLine{00935\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_PAIR\_BASE(\_macro)\ \ \(\backslash\)}}
\DoxyCodeLine{00936\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00937\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00938\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00939\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00940\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \(\backslash\)}}
\DoxyCodeLine{00941\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<double>)}}
\DoxyCodeLine{00942\ }
\DoxyCodeLine{00943\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_PAIR(\_macro)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00944\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00945\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>,\ float16));\ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00946\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00947\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<float16>));\ \ \ \(\backslash\)}}
\DoxyCodeLine{00948\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00949\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>,\ bfloat16));\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00950\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00951\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<bfloat16>));\ \(\backslash\)}}
\DoxyCodeLine{00952\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_PAIR\_BASE(\_macro)}}
\DoxyCodeLine{00953\ }
\DoxyCodeLine{00963\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_COMBINED\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00964\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(char,\ char);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00965\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00966\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int64,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00967\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(unsigned\ int,\ unsigned\ int);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00968\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(unsigned\ long,\ unsigned\ long);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00969\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float,\ float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00970\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double,\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00971\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(long\ double,\ long\ double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00972\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>,\ std::complex<float>);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00973\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>,\ std::complex<double>)}}
\DoxyCodeLine{00974\ }
\DoxyCodeLine{00975\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_COMBINED\_VALUE\_AND\_INDEX\_TYPE(\_macro)\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00976\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16,\ float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00977\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00978\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<float16>,\ std::complex<float16>));\ \ \ \(\backslash\)}}
\DoxyCodeLine{00979\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16,\ bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00980\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00981\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ template\ \_macro(std::complex<bfloat16>,\ std::complex<bfloat16>));\ \(\backslash\)}}
\DoxyCodeLine{00982\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_COMBINED\_VALUE\_AND\_INDEX\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{00983\ }
\DoxyCodeLine{00992\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_POD\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{00993\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(float);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00994\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(double);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00995\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<float>);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00996\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(std::complex<double>);\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00997\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(size\_type);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00998\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(bool);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00999\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01000\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int64)}}
\DoxyCodeLine{01001\ }
\DoxyCodeLine{01002\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_POD\_TYPE(\_macro)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01003\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(float16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01004\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_HF(template\ \_macro(std::complex<float16>));\ \ \(\backslash\)}}
\DoxyCodeLine{01005\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(bfloat16));\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01006\ \textcolor{preprocessor}{\ \ \ \ GKO\_ADAPT\_BF(template\ \_macro(std::complex<bfloat16>));\ \(\backslash\)}}
\DoxyCodeLine{01007\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_POD\_TYPE\_BASE(\_macro)}}
\DoxyCodeLine{01008\ }
\DoxyCodeLine{01017\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_TEMPLATE\_TYPE\_BASE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{01018\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE\_BASE(\_macro);\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01019\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_INDEX\_TYPE(\_macro);\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01020\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(gko::size\_type)}}
\DoxyCodeLine{01021\ }
\DoxyCodeLine{01022\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_TEMPLATE\_TYPE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{01023\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_VALUE\_TYPE(\_macro);\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01024\ \textcolor{preprocessor}{\ \ \ \ GKO\_INSTANTIATE\_FOR\_EACH\_INDEX\_TYPE(\_macro);\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01025\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(gko::size\_type)}}
\DoxyCodeLine{01026\ }
\DoxyCodeLine{01027\ }
\DoxyCodeLine{01036\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_INT32\_TYPE(\_macro)\ template\ \_macro(int32)}}
\DoxyCodeLine{01037\ }
\DoxyCodeLine{01038\ }
\DoxyCodeLine{01039\ \textcolor{keyword}{namespace\ }detail\ \{}
\DoxyCodeLine{01040\ }
\DoxyCodeLine{01041\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ ValueType>}
\DoxyCodeLine{01042\ \textcolor{keyword}{struct\ }is\_supported\_value\_type\ :\ std::false\_type\ \{\};}
\DoxyCodeLine{01043\ }
\DoxyCodeLine{01044\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ ValueType>}
\DoxyCodeLine{01045\ \textcolor{keyword}{struct\ }is\_supported\_index\_type\ :\ std::false\_type\ \{\};}
\DoxyCodeLine{01046\ }
\DoxyCodeLine{01047\ \textcolor{preprocessor}{\#if\ GINKGO\_ENABLE\_HALF}}
\DoxyCodeLine{01048\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01049\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<\doxymbox{\hyperlink{namespacegko_af1e94db06aba818c1db32a2a683836c9}{float16}}>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01050\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01051\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<std::complex<float16>>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01052\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01053\ \textcolor{preprocessor}{\#if\ GINKGO\_ENABLE\_BFLOAT16}}
\DoxyCodeLine{01054\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01055\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<bfloat16>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01056\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01057\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<std::complex<bfloat16>>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01058\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01059\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01060\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<float>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01061\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01062\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<double>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01063\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01064\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<std::complex<float>>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01065\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01066\ \textcolor{keyword}{struct\ }is\_supported\_value\_type<std::complex<double>>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01067\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01068\ \textcolor{keyword}{struct\ }is\_supported\_index\_type<\doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01069\ \textcolor{keyword}{template}\ <>}
\DoxyCodeLine{01070\ \textcolor{keyword}{struct\ }is\_supported\_index\_type<\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}>\ :\ std::true\_type\ \{\};}
\DoxyCodeLine{01071\ }
\DoxyCodeLine{01072\ }
\DoxyCodeLine{01073\ \}\ \ \textcolor{comment}{//\ namespace\ detail}}
\DoxyCodeLine{01074\ }
\DoxyCodeLine{01075\ }
\DoxyCodeLine{01076\ \textcolor{comment}{//\ TODO20:\ Replace\ this\ by\ concepts}}
\DoxyCodeLine{01077\ \textcolor{preprocessor}{\#define\ GKO\_ASSERT\_SUPPORTED\_VALUE\_TYPE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01078\ \textcolor{preprocessor}{\ \ \ \ static\_assert(::gko::detail::is\_supported\_value\_type<ValueType>::value,\ \(\backslash\)}}
\DoxyCodeLine{01079\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}Unsupported\ value\ type"{})}}
\DoxyCodeLine{01080\ }
\DoxyCodeLine{01081\ \textcolor{comment}{//\ TODO20:\ Replace\ this\ by\ concepts}}
\DoxyCodeLine{01082\ \textcolor{preprocessor}{\#define\ GKO\_ASSERT\_SUPPORTED\_INDEX\_TYPE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01083\ \textcolor{preprocessor}{\ \ \ \ static\_assert(::gko::detail::is\_supported\_index\_type<IndexType>::value,\ \(\backslash\)}}
\DoxyCodeLine{01084\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}Unsupported\ index\ type"{})}}
\DoxyCodeLine{01085\ }
\DoxyCodeLine{01086\ \textcolor{preprocessor}{\#define\ GKO\_ASSERT\_SUPPORTED\_VALUE\_AND\_INDEX\_TYPE\ \(\backslash\)}}
\DoxyCodeLine{01087\ \textcolor{preprocessor}{\ \ \ \ GKO\_ASSERT\_SUPPORTED\_VALUE\_TYPE;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01088\ \textcolor{preprocessor}{\ \ \ \ GKO\_ASSERT\_SUPPORTED\_INDEX\_TYPE}}
\DoxyCodeLine{01089\ }
\DoxyCodeLine{01090\ \textcolor{preprocessor}{\#define\ GKO\_ASSERT\_SUPPORTED\_VALUE\_AND\_DIST\_INDEX\_TYPE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01091\ \textcolor{preprocessor}{\ \ \ \ GKO\_ASSERT\_SUPPORTED\_VALUE\_TYPE;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01092\ \textcolor{preprocessor}{\ \ \ \ static\_assert(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01093\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ ::gko::detail::is\_supported\_index\_type<GlobalIndexType>::value,\ \(\backslash\)}}
\DoxyCodeLine{01094\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ "{}Unsupported\ global\ index\ type"{});\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01095\ \textcolor{preprocessor}{\ \ \ \ static\_assert(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01096\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ ::gko::detail::is\_supported\_index\_type<LocalIndexType>::value,\ \ \(\backslash\)}}
\DoxyCodeLine{01097\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ "{}Unsupported\ local\ index\ type"{});\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01098\ \textcolor{preprocessor}{\ \ \ \ static\_assert(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01099\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ sizeof(GlobalIndexType)\ >=\ sizeof(LocalIndexType),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01100\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ "{}global\ index\ type\ must\ not\ be\ smaller\ than\ local\ index\ type"{})}}
\DoxyCodeLine{01101\ }
\DoxyCodeLine{01102\ }
\DoxyCodeLine{01106\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ IndexType>}
\DoxyCodeLine{01107\ \textcolor{keyword}{inline}\ \textcolor{keyword}{constexpr}\ GKO\_ATTRIBUTES\ IndexType\ \doxymbox{\hyperlink{namespacegko_afec01a3afbf68d99fc0f886c51bdc713}{invalid\_index}}()}
\DoxyCodeLine{01108\ \{}
\DoxyCodeLine{01109\ \ \ \ \ \textcolor{keyword}{static\_assert}(std::is\_signed<IndexType>::value,}
\DoxyCodeLine{01110\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}IndexType\ needs\ to\ be\ signed"{}});}
\DoxyCodeLine{01111\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{static\_cast<}IndexType\textcolor{keyword}{>}(-\/1);}
\DoxyCodeLine{01112\ \}}
\DoxyCodeLine{01113\ }
\DoxyCodeLine{01114\ }
\DoxyCodeLine{01115\ \textcolor{keyword}{namespace\ }experimental\ \{}
\DoxyCodeLine{01116\ \textcolor{keyword}{namespace\ }mpi\ \{}
\DoxyCodeLine{01117\ }
\DoxyCodeLine{01118\ }
\DoxyCodeLine{01124\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_1_1experimental_1_1mpi_a13b7760affb031fee59d385754eaaffb}{comm\_index\_type}}\ =\ int;}
\DoxyCodeLine{01125\ }
\DoxyCodeLine{01126\ }
\DoxyCodeLine{01127\ \}\ \ \textcolor{comment}{//\ namespace\ mpi}}
\DoxyCodeLine{01128\ }
\DoxyCodeLine{01129\ }
\DoxyCodeLine{01130\ \textcolor{keyword}{namespace\ }\doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed}{distributed}}\ \{}
\DoxyCodeLine{01131\ }
\DoxyCodeLine{01132\ }
\DoxyCodeLine{01136\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{namespacegko_1_1experimental_1_1mpi_a13b7760affb031fee59d385754eaaffb}{mpi::comm\_index\_type}};}
\DoxyCodeLine{01137\ }
\DoxyCodeLine{01138\ }
\DoxyCodeLine{01148\ \textcolor{preprocessor}{\#define\ GKO\_INSTANTIATE\_FOR\_EACH\_LOCAL\_GLOBAL\_INDEX\_TYPE(\_macro)\ \(\backslash\)}}
\DoxyCodeLine{01149\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int32,\ int32);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01150\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int32,\ int64);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{01151\ \textcolor{preprocessor}{\ \ \ \ template\ \_macro(int64,\ int64)}}
\DoxyCodeLine{01152\ }
\DoxyCodeLine{01153\ }
\DoxyCodeLine{01154\ \}\ \ \textcolor{comment}{//\ namespace\ distributed}}
\DoxyCodeLine{01155\ \}\ \ \textcolor{comment}{//\ namespace\ experimental}}
\DoxyCodeLine{01156\ \}\ \ \textcolor{comment}{//\ namespace\ gko}}
\DoxyCodeLine{01157\ }
\DoxyCodeLine{01158\ }
\DoxyCodeLine{01159\ \textcolor{preprocessor}{\#endif\ \ }\textcolor{comment}{//\ GKO\_PUBLIC\_CORE\_BASE\_TYPES\_HPP\_}}

\end{DoxyCode}
