\doxysection{gko Namespace Reference}
\hypertarget{namespacegko}{}\label{namespacegko}\index{gko@{gko}}


The Ginkgo namespace.  


\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1matrix}{matrix}}
\begin{DoxyCompactList}\small\item\em The matrix namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1name__demangling}{name\+\_\+demangling}}
\begin{DoxyCompactList}\small\item\em The name demangling namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1accessor}{accessor}}
\begin{DoxyCompactList}\small\item\em The accessor namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1xstd}{xstd}}
\begin{DoxyCompactList}\small\item\em The namespace for functionalities after C++14 standard. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1multigrid}{multigrid}}
\begin{DoxyCompactList}\small\item\em The multigrid components namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1factorization}{factorization}}
\begin{DoxyCompactList}\small\item\em The Factorization namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1log}{log}}
\begin{DoxyCompactList}\small\item\em The logger namespace . \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1stop}{stop}}
\begin{DoxyCompactList}\small\item\em The Stopping criterion namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1preconditioner}{preconditioner}}
\begin{DoxyCompactList}\small\item\em The Preconditioner namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1reorder}{reorder}}
\begin{DoxyCompactList}\small\item\em The Reorder namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1solver}{solver}}
\begin{DoxyCompactList}\small\item\em The ginkgo Solve namespace. \end{DoxyCompactList}\item 
namespace \doxymbox{\hyperlink{namespacegko_1_1syn}{syn}}
\begin{DoxyCompactList}\small\item\em The Synthesizer namespace. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \doxymbox{\hyperlink{classgko_1_1AbstractFactory}{Abstract\+Factory}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1AbstractFactory}{Abstract\+Factory} is a generic interface template that enables easy implementation of the abstract factory design pattern. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1EnableDefaultFactory}{Enable\+Default\+Factory}}
\begin{DoxyCompactList}\small\item\em This mixin provides a default implementation of a concrete factory. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1enable__parameters__type}{enable\+\_\+parameters\+\_\+type}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1enable__parameters__type}{enable\+\_\+parameters\+\_\+type} mixin is used to create a base implementation of the factory parameters structure. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter}{deferred\+\_\+factory\+\_\+parameter}}
\begin{DoxyCompactList}\small\item\em Represents a factory parameter of factory type that can either initialized by a pre-\/existing factory or by passing in a factory\+\_\+parameters object whose {\ttfamily .on(exec)} will be called to instantiate a factory. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1array}{array}}
\begin{DoxyCompactList}\small\item\em An array is a container which encapsulates fixed-\/sized arrays, stored on the \doxylink{classgko_1_1Executor}{Executor} tied to the array. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\+\_\+dim}}
\begin{DoxyCompactList}\small\item\em A type representing the dimensions of a multidimensional batch object. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1bfloat16}{bfloat16}}
\begin{DoxyCompactList}\small\item\em A class providing basic support for \doxylink{classgko_1_1bfloat16}{bfloat16} precision floating point types. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1BlockOperator}{Block\+Operator}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1BlockOperator}{Block\+Operator} represents a linear operator that is partitioned into multiple blocks. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Combination}{Combination}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1Combination}{Combination} class can be used to construct a linear combination of multiple linear operators {\ttfamily c1 \texorpdfstring{$\ast$}{*} op1 + c2 \texorpdfstring{$\ast$}{*} op2 + ... + ck \texorpdfstring{$\ast$}{*} opk}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Composition}{Composition}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1Composition}{Composition} class can be used to compose linear operators {\ttfamily op1, op2, ..., opn} and obtain the operator {\ttfamily op1 \texorpdfstring{$\ast$}{*} op2 \texorpdfstring{$\ast$}{*} ... \texorpdfstring{$\ast$}{*} opn}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1UseComposition}{Use\+Composition}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1UseComposition}{Use\+Composition} class can be used to store the composition information in \doxylink{classgko_1_1LinOp}{Lin\+Op}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1nvidia__device}{nvidia\+\_\+device}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1nvidia__device}{nvidia\+\_\+device} handles the number of executor on Nvidia devices and have the corresponding recursive\+\_\+mutex. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1amd__device}{amd\+\_\+device}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1amd__device}{amd\+\_\+device} handles the number of executor on Amd devices and have the corresponding recursive\+\_\+mutex. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}
\begin{DoxyCompactList}\small\item\em This type is a device-\/side equivalent to \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data}. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1dim}{dim}}
\begin{DoxyCompactList}\small\item\em A type representing the dimensions of a multidimensional object. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1dim_3_011u_00_01DimensionType_01_4}{dim$<$ 1u, Dimension\+Type $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1Error}{Error}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1Error}{Error} class is used to report exceptional behaviour in library functions. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1NotImplemented}{Not\+Implemented}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1NotImplemented}{Not\+Implemented} is thrown in case an operation has not yet been implemented (but will be implemented in the future). \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1NotCompiled}{Not\+Compiled}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1NotCompiled}{Not\+Compiled} is thrown when attempting to call an operation which is a part of a module that was not compiled on the system. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1NotSupported}{Not\+Supported}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1NotSupported}{Not\+Supported} is thrown in case it is not possible to perform the requested operation on the given object type. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1MpiError}{Mpi\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1MpiError}{Mpi\+Error} is thrown when a MPI routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CudaError}{Cuda\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1CudaError}{Cuda\+Error} is thrown when a CUDA routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CublasError}{Cublas\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1CublasError}{Cublas\+Error} is thrown when a cu\+BLAS routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CurandError}{Curand\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1CurandError}{Curand\+Error} is thrown when a cu\+RAND routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CusparseError}{Cusparse\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1CusparseError}{Cusparse\+Error} is thrown when a cu\+SPARSE routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CufftError}{Cufft\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1CufftError}{Cufft\+Error} is thrown when a cu\+FFT routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipError}{Hip\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1HipError}{Hip\+Error} is thrown when a HIP routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipblasError}{Hipblas\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1HipblasError}{Hipblas\+Error} is thrown when a hip\+BLAS routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HiprandError}{Hiprand\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1HiprandError}{Hiprand\+Error} is thrown when a hip\+RAND routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipsparseError}{Hipsparse\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1HipsparseError}{Hipsparse\+Error} is thrown when a hip\+SPARSE routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipfftError}{Hipfft\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1HipfftError}{Hipfft\+Error} is thrown when a hip\+FFT routine throws a non-\/zero error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1MetisError}{Metis\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1MetisError}{Metis\+Error} is thrown when METIS routine throws an error code. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1DimensionMismatch}{Dimension\+Mismatch}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1DimensionMismatch}{Dimension\+Mismatch} is thrown if an operation is being applied to Lin\+Ops of incompatible size. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1BadDimension}{Bad\+Dimension}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1BadDimension}{Bad\+Dimension} is thrown if an operation is being applied to a \doxylink{classgko_1_1LinOp}{Lin\+Op} with bad dimensions. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1BlockSizeError}{Block\+Size\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1Error}{Error} that denotes issues between block sizes and matrix dimensions. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1ValueMismatch}{Value\+Mismatch}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1ValueMismatch}{Value\+Mismatch} is thrown if two values are not equal. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1AllocationError}{Allocation\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1AllocationError}{Allocation\+Error} is thrown if a memory allocation fails. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1OutOfBoundsError}{Out\+Of\+Bounds\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1OutOfBoundsError}{Out\+Of\+Bounds\+Error} is thrown if a memory access is detected to be out-\/of-\/bounds. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1OverflowError}{Overflow\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1OverflowError}{Overflow\+Error} is thrown when an index calculation for storage requirements overflows. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1StreamError}{Stream\+Error}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1StreamError}{Stream\+Error} is thrown if accessing a stream failed. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1KernelNotFound}{Kernel\+Not\+Found}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1KernelNotFound}{Kernel\+Not\+Found} is thrown if Ginkgo cannot find a kernel which satisfies the criteria imposed by the input arguments. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1UnsupportedMatrixProperty}{Unsupported\+Matrix\+Property}}
\begin{DoxyCompactList}\small\item\em Exception throws if a matrix does not have a property required by a numerical method. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1InvalidStateError}{Invalid\+State\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown if an object is in an invalid state. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Operation}{Operation}}
\begin{DoxyCompactList}\small\item\em Operations can be used to define functionalities whose implementations differ among devices. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}
\begin{DoxyCompactList}\small\item\em The first step in using the Ginkgo library consists of creating an executor. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1executor__deleter}{executor\+\_\+deleter}}
\begin{DoxyCompactList}\small\item\em This is a deleter that uses an executor\textquotesingle{}s {\ttfamily free} method to deallocate the data. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1executor__deleter_3_01T_0f_0e_4}{executor\+\_\+deleter$<$ T\+[$\,$]\+$>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1OmpExecutor}{Omp\+Executor}}
\begin{DoxyCompactList}\small\item\em This is the \doxylink{classgko_1_1Executor}{Executor} subclass which represents the Open\+MP device (typically CPU). \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1ReferenceExecutor}{Reference\+Executor}}
\begin{DoxyCompactList}\small\item\em This is a specialization of the \doxylink{classgko_1_1OmpExecutor}{Omp\+Executor}, which runs the reference implementations of the kernels used for debugging purposes. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CudaExecutor}{Cuda\+Executor}}
\begin{DoxyCompactList}\small\item\em This is the \doxylink{classgko_1_1Executor}{Executor} subclass which represents the CUDA device. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipExecutor}{Hip\+Executor}}
\begin{DoxyCompactList}\small\item\em This is the \doxylink{classgko_1_1Executor}{Executor} subclass which represents the HIP enhanced device. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1DpcppExecutor}{Dpcpp\+Executor}}
\begin{DoxyCompactList}\small\item\em This is the \doxylink{classgko_1_1Executor}{Executor} subclass which represents a DPC++ enhanced device. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1truncated}{truncated}}
\item 
class \doxymbox{\hyperlink{classgko_1_1half}{half}}
\begin{DoxyCompactList}\small\item\em A class providing basic support for half precision floating point types. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1index__set}{index\+\_\+set}}
\begin{DoxyCompactList}\small\item\em An index set class represents an ordered set of intervals. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}}
\item 
class \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{Lin\+Op\+Factory}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOpFactory}{Lin\+Op\+Factory} represents a higher order mapping which transforms one linear operator into another. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Transposable}{Transposable}}
\begin{DoxyCompactList}\small\item\em Linear operators which support transposition should implement the \doxylink{classgko_1_1Transposable}{Transposable} interface. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Permutable}{Permutable}}
\begin{DoxyCompactList}\small\item\em Linear operators which support permutation should implement the \doxylink{classgko_1_1Permutable}{Permutable} interface. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{Readable\+From\+Matrix\+Data}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface can read its data from a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{Writable\+To\+Matrix\+Data}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface can write its data to a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Preconditionable}{Preconditionable}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface can be preconditioned. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1DiagonalLinOpExtractable}{Diagonal\+Lin\+Op\+Extractable}}
\begin{DoxyCompactList}\small\item\em The diagonal of a \doxylink{classgko_1_1LinOp}{Lin\+Op} can be extracted. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable}{Diagonal\+Extractable}}
\begin{DoxyCompactList}\small\item\em The diagonal of a \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface can be extracted. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1AbsoluteComputable}{Absolute\+Computable}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1AbsoluteComputable}{Absolute\+Computable} is an interface that allows to get the component wise absolute of a \doxylink{classgko_1_1LinOp}{Lin\+Op}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{Enable\+Absolute\+Computation}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1EnableAbsoluteComputation}{Enable\+Absolute\+Computation} mixin provides the default implementations of {\ttfamily \doxylink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop}} and the absolute interface. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1ScaledIdentityAddable}{Scaled\+Identity\+Addable}}
\begin{DoxyCompactList}\small\item\em Adds the operation M \texorpdfstring{$<$}{<}-\/ a I + b M for matrix M, identity operator I and scalars a and b, where M is the calling object. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1EnableLinOp}{Enable\+Lin\+Op}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1EnableLinOp}{Enable\+Lin\+Op} mixin can be used to provide sensible default implementations of the majority of the \doxylink{classgko_1_1LinOp}{Lin\+Op} and \doxylink{classgko_1_1PolymorphicObject}{Polymorphic\+Object} interface. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1machine__topology}{machine\+\_\+topology}}
\begin{DoxyCompactList}\small\item\em The machine topology class represents the hierarchical topology of a machine, including NUMA nodes, cores and PCI Devices. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1cpx__real__type}{cpx\+\_\+real\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Access the underlying real type of a complex number. \end{DoxyCompactList}\item 
struct {\bfseries cpx\+\_\+real\+\_\+type$<$ std::\+complex$<$ T $>$ $>$}
\begin{DoxyCompactList}\small\item\em Specialization for complex types. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1default__converter}{default\+\_\+converter}}
\begin{DoxyCompactList}\small\item\em Used to convert objects of type {\ttfamily S} to objects of type {\ttfamily R} using static\+\_\+cast. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1matrix__assembly__data}{matrix\+\_\+assembly\+\_\+data}}
\begin{DoxyCompactList}\small\item\em This structure is used as an intermediate type to assemble a sparse matrix. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1matrix__data__entry}{matrix\+\_\+data\+\_\+entry}}
\begin{DoxyCompactList}\small\item\em Type used to store nonzeros. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}
\begin{DoxyCompactList}\small\item\em This structure is used as an intermediate data type to store a sparse matrix. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Allocator}{Allocator}}
\begin{DoxyCompactList}\small\item\em Provides generic allocation and deallocation functionality to be used by an \doxylink{classgko_1_1Executor}{Executor}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CpuAllocatorBase}{Cpu\+Allocator\+Base}}
\begin{DoxyCompactList}\small\item\em Implement this interface to provide an allocator for \doxylink{classgko_1_1OmpExecutor}{Omp\+Executor} or \doxylink{classgko_1_1ReferenceExecutor}{Reference\+Executor}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CudaAllocatorBase}{Cuda\+Allocator\+Base}}
\begin{DoxyCompactList}\small\item\em Implement this interface to provide an allocator for \doxylink{classgko_1_1CudaExecutor}{Cuda\+Executor}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipAllocatorBase}{Hip\+Allocator\+Base}}
\begin{DoxyCompactList}\small\item\em Implement this interface to provide an allocator for \doxylink{classgko_1_1HipExecutor}{Hip\+Executor}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CpuAllocator}{Cpu\+Allocator}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1Allocator}{Allocator} using new/\+delete. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CudaAllocator}{Cuda\+Allocator}}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1Allocator}{Allocator} using cuda\+Malloc. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CudaAsyncAllocator}{Cuda\+Async\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1CudaUnifiedAllocator}{Cuda\+Unified\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1CudaHostAllocator}{Cuda\+Host\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1HipAllocator}{Hip\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1HipAsyncAllocator}{Hip\+Async\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1HipUnifiedAllocator}{Hip\+Unified\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1HipHostAllocator}{Hip\+Host\+Allocator}}
\item 
class \doxymbox{\hyperlink{classgko_1_1Perturbation}{Perturbation}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1Perturbation}{Perturbation} class can be used to construct a \doxylink{classgko_1_1LinOp}{Lin\+Op} to represent the operation {\ttfamily (identity + scalar \texorpdfstring{$\ast$}{*} basis \texorpdfstring{$\ast$}{*} projector)}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{Polymorphic\+Object}}
\begin{DoxyCompactList}\small\item\em A \doxylink{classgko_1_1PolymorphicObject}{Polymorphic\+Object} is the abstract base for all "{}heavy"{} objects in Ginkgo that behave polymorphically. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicObject}{Enable\+Polymorphic\+Object}}
\begin{DoxyCompactList}\small\item\em This mixin inherits from (a subclass of) \doxylink{classgko_1_1PolymorphicObject}{Polymorphic\+Object} and provides a base implementation of a new concrete polymorphic object. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{Enable\+Polymorphic\+Assignment}}
\begin{DoxyCompactList}\small\item\em This mixin is used to enable a default \doxylink{classgko_1_1PolymorphicObject_a3c431a34c3ad724e1337b73165f1da9b}{Polymorphic\+Object::\+copy\+\_\+from()} implementation for objects that have implemented conversions between them. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1EnableCreateMethod}{Enable\+Create\+Method}}
\begin{DoxyCompactList}\small\item\em This mixin implements a static {\ttfamily create()} method on {\ttfamily Concrete\+Type} that dynamically allocates the memory, uses the passed-\/in arguments to construct the object, and returns an std::\+unique\+\_\+ptr to such an object. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1span}{span}}
\begin{DoxyCompactList}\small\item\em A span is a lightweight structure used to create sub-\/ranges from other ranges. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}}
\begin{DoxyCompactList}\small\item\em A span that is used exclusively for local numbering. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1range}{range}}
\begin{DoxyCompactList}\small\item\em A range is a multidimensional view of the memory. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1scoped__device__id__guard}{scoped\+\_\+device\+\_\+id\+\_\+guard}}
\begin{DoxyCompactList}\small\item\em This move-\/only class uses RAII to set the device id within a scoped block, if necessary. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1segmented__array}{segmented\+\_\+array}}
\begin{DoxyCompactList}\small\item\em A minimal interface for a segmented array. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1cuda__stream}{cuda\+\_\+stream}}
\begin{DoxyCompactList}\small\item\em An RAII wrapper for a custom CUDA stream. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1hip__stream}{hip\+\_\+stream}}
\begin{DoxyCompactList}\small\item\em An RAII wrapper for a custom HIP stream. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1err}{err}}
\item 
class \doxymbox{\hyperlink{classgko_1_1time__point}{time\+\_\+point}}
\begin{DoxyCompactList}\small\item\em An opaque wrapper for a time point generated by a timer. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1Timer}{Timer}}
\begin{DoxyCompactList}\small\item\em Represents a generic timer that can be used to record time points and measure time differences on host or device streams. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CpuTimer}{Cpu\+Timer}}
\begin{DoxyCompactList}\small\item\em A timer using std::\+chrono::\+steady\+\_\+clock for timing. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1CudaTimer}{Cuda\+Timer}}
\begin{DoxyCompactList}\small\item\em A timer using events for timing on a \doxylink{classgko_1_1CudaExecutor}{Cuda\+Executor}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1HipTimer}{Hip\+Timer}}
\begin{DoxyCompactList}\small\item\em A timer using events for timing on a \doxylink{classgko_1_1HipExecutor}{Hip\+Executor}. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1DpcppTimer}{Dpcpp\+Timer}}
\begin{DoxyCompactList}\small\item\em A timer using kernels for timing on a \doxylink{classgko_1_1DpcppExecutor}{Dpcpp\+Executor} in profiling mode. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1are__all__integral}{are\+\_\+all\+\_\+integral}}
\begin{DoxyCompactList}\small\item\em Evaluates if all template arguments Args fulfill std::\+is\+\_\+integral. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1are__all__integral_3_01First_00_01Args_8_8_8_01_4}{are\+\_\+all\+\_\+integral$<$ First, Args... $>$}}
\item 
class \doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}}
\begin{DoxyCompactList}\small\item\em This class is used to encode storage precisions of low precision algorithms. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}
\begin{DoxyCompactList}\small\item\em This class is used for function parameters in the place of raw pointers. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1null__deleter}{null\+\_\+deleter}}
\begin{DoxyCompactList}\small\item\em This is a deleter that does not delete the object. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1null__deleter_3_01T_0f_0e_4}{null\+\_\+deleter$<$ T\+[$\,$]\+$>$}}
\item 
struct \doxymbox{\hyperlink{structgko_1_1version}{version}}
\begin{DoxyCompactList}\small\item\em This structure is used to represent versions of various Ginkgo modules. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1version__info}{version\+\_\+info}}
\begin{DoxyCompactList}\small\item\em Ginkgo uses version numbers to label new features and to communicate backward compatibility guarantees:\+ \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}}
\begin{DoxyCompactList}\small\item\em This class is used to keep track of the stopping status of one vector. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Concrete\+Factory, typename Concrete\+Lin\+Op, typename Parameters\+Type, typename Polymorphic\+Base = Lin\+Op\+Factory$>$ }\\using \doxymbox{\hyperlink{group__LinOp_gab1cdce0d622345d1322a2bc6bdcaa9b6}{Enable\+Default\+Lin\+Op\+Factory}}
\begin{DoxyCompactList}\small\item\em This is an alias for the \doxylink{classgko_1_1EnableDefaultFactory}{Enable\+Default\+Factory} mixin, which correctly sets the template parameters to enable a subclass of \doxylink{classgko_1_1LinOpFactory}{Lin\+Op\+Factory}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\using \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}} = detail::\+is\+\_\+complex\+\_\+impl$<$T$>$
\begin{DoxyCompactList}\small\item\em Allows to check if T is a complex value during compile time by accessing the {\ttfamily value} attribute of this struct. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\using \doxymbox{\hyperlink{namespacegko_abf707c1057eb7f959355ab06990441a8}{is\+\_\+complex\+\_\+or\+\_\+scalar\+\_\+s}} = detail::\+is\+\_\+complex\+\_\+or\+\_\+scalar\+\_\+impl$<$T$>$
\begin{DoxyCompactList}\small\item\em Allows to check if T is a complex or scalar value during compile time by accessing the {\ttfamily value} attribute of this struct. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\using \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}} = typename detail::\+remove\+\_\+complex\+\_\+s$<$T$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtain the type which removed the complex of complex/\+scalar type or the template parameter of class by accessing the {\ttfamily type} attribute of this struct. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\using \doxymbox{\hyperlink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{to\+\_\+complex}} = typename detail::\+to\+\_\+complex\+\_\+s$<$T$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtain the type which adds the complex of complex/\+scalar type or the template parameter of class by accessing the {\ttfamily type} attribute of this struct. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\using \doxymbox{\hyperlink{namespacegko_ad6b4f42aaf509f2f3660fcba0d230cac}{to\+\_\+real}} = \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$T$>$
\begin{DoxyCompactList}\small\item\em \doxylink{namespacegko_ad6b4f42aaf509f2f3660fcba0d230cac}{to\+\_\+real} is alias of \doxylink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex} \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a2c2416a808014f8b0647d5e4ba42a735}\label{namespacegko_a2c2416a808014f8b0647d5e4ba42a735} 
{\footnotesize template$<$typename T$>$ }\\using {\bfseries next\+\_\+precision\+\_\+base} = typename detail::\+next\+\_\+precision\+\_\+base\+\_\+impl$<$T$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtains the next type in the singly-\/linked precision list. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\using \doxymbox{\hyperlink{namespacegko_a7f9e0f5413aca83838f94cbe9863e15c}{previous\+\_\+precision\+\_\+base}} = \doxymbox{\hyperlink{namespacegko_a2c2416a808014f8b0647d5e4ba42a735}{next\+\_\+precision\+\_\+base}}$<$T$>$
\begin{DoxyCompactList}\small\item\em Obtains the previous type in the singly-\/linked precision list. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}\label{namespacegko_aee37f85b217e5e26fe64207d41fa4bac} 
{\footnotesize template$<$typename T, int step = 1$>$ }\\using {\bfseries next\+\_\+precision} = typename detail::\+find\+\_\+precision\+\_\+impl$<$T, step$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtains the next {\ttfamily move} type of T in the singly-\/linked precision corresponding bfloat16/\+half. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_ada2119004771922e8f7fcb6910a0363c}\label{namespacegko_ada2119004771922e8f7fcb6910a0363c} 
{\footnotesize template$<$typename T, int step = 1$>$ }\\using {\bfseries previous\+\_\+precision} = typename detail::\+find\+\_\+precision\+\_\+impl$<$T, -\/step$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtains the previous {\ttfamily move} type of T in the singly-\/linked precision corresponding bfloat16/\+half. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a87a96a1b78352538d905c10518bf5571}\label{namespacegko_a87a96a1b78352538d905c10518bf5571} 
{\footnotesize template$<$typename T$>$ }\\using {\bfseries reduce\+\_\+precision} = typename detail::\+reduce\+\_\+precision\+\_\+impl$<$T$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtains the next type in the hierarchy with lower precision than T. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_ad6883fe3514ba0b125a4fc26c94ea9d1}\label{namespacegko_ad6883fe3514ba0b125a4fc26c94ea9d1} 
{\footnotesize template$<$typename T$>$ }\\using {\bfseries increase\+\_\+precision} = typename detail::\+increase\+\_\+precision\+\_\+impl$<$T$>$::\+type
\begin{DoxyCompactList}\small\item\em Obtains the next type in the hierarchy with higher precision than T. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename... Ts$>$ }\\using \doxymbox{\hyperlink{namespacegko_ad643dd5de46195d05150e07455fa5712}{highest\+\_\+precision}}
\begin{DoxyCompactList}\small\item\em Obtains the smallest arithmetic type that is able to store elements of all template parameter types exactly. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Limit = sizeof(uint16) \texorpdfstring{$\ast$}{*} byte\+\_\+size$>$ }\\using \doxymbox{\hyperlink{namespacegko_a7b2d4de99c595e68fb962b862c1c532f}{truncate\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Truncates the type by half (by dropping bits), but ensures that it is at least {\ttfamily Limit} bits wide. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}\label{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771} 
using {\bfseries size\+\_\+type} = std::\+size\+\_\+t
\begin{DoxyCompactList}\small\item\em Integral type used for allocation quantities. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a7ff694002fd7739ee5c4c03f4159c3ca}\label{namespacegko_a7ff694002fd7739ee5c4c03f4159c3ca} 
using {\bfseries int8} = std::\+int8\+\_\+t
\begin{DoxyCompactList}\small\item\em 8-\/bit signed integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a1c5858448a3585731f33870694860aff}\label{namespacegko_a1c5858448a3585731f33870694860aff} 
using {\bfseries int16} = std::\+int16\+\_\+t
\begin{DoxyCompactList}\small\item\em 16-\/bit signed integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a16bd14c10900eb804d784908d8aab5ab}\label{namespacegko_a16bd14c10900eb804d784908d8aab5ab} 
using {\bfseries int32} = std::\+int32\+\_\+t
\begin{DoxyCompactList}\small\item\em 32-\/bit signed integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a913ec044df518649fa5a891f8dffae34}\label{namespacegko_a913ec044df518649fa5a891f8dffae34} 
using {\bfseries int64} = std::\+int64\+\_\+t
\begin{DoxyCompactList}\small\item\em 64-\/bit signed integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a06d96f1ecdca6b86399173969771c3fb}\label{namespacegko_a06d96f1ecdca6b86399173969771c3fb} 
using {\bfseries uint8} = std::\+uint8\+\_\+t
\begin{DoxyCompactList}\small\item\em 8-\/bit unsigned integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_af07ab7e285d68cde5e10f9c4ed642213}\label{namespacegko_af07ab7e285d68cde5e10f9c4ed642213} 
using {\bfseries uint16} = std::\+uint16\+\_\+t
\begin{DoxyCompactList}\small\item\em 16-\/bit unsigned integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a7cf056fa904140b50658e0637fba428c}\label{namespacegko_a7cf056fa904140b50658e0637fba428c} 
using {\bfseries uint32} = std::\+uint32\+\_\+t
\begin{DoxyCompactList}\small\item\em 32-\/bit unsigned integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a09ee89da532d8b1fa6fdecec2d20b9bf}\label{namespacegko_a09ee89da532d8b1fa6fdecec2d20b9bf} 
using {\bfseries uint64} = std::\+uint64\+\_\+t
\begin{DoxyCompactList}\small\item\em 64-\/bit unsigned integral type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a70648f1299a0c1297e2bf86f47264626}\label{namespacegko_a70648f1299a0c1297e2bf86f47264626} 
using {\bfseries uintptr} = std::\+uintptr\+\_\+t
\begin{DoxyCompactList}\small\item\em Unsigned integer type capable of holding a pointer to void. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_af1e94db06aba818c1db32a2a683836c9}\label{namespacegko_af1e94db06aba818c1db32a2a683836c9} 
using {\bfseries float16} = \doxymbox{\hyperlink{classgko_1_1half}{half}}
\begin{DoxyCompactList}\small\item\em 16 bit floating point type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_af14be891fe28c2fb9ad22509ba49b8f4}\label{namespacegko_af14be891fe28c2fb9ad22509ba49b8f4} 
using {\bfseries float32} = float
\begin{DoxyCompactList}\small\item\em Single precision floating point type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a86e94f8a1bcd1b4d7fd970383c138a30}\label{namespacegko_a86e94f8a1bcd1b4d7fd970383c138a30} 
using {\bfseries float64} = double
\begin{DoxyCompactList}\small\item\em Double precision floating point type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a1a74b54097c5a16d13644658efa18de0}\label{namespacegko_a1a74b54097c5a16d13644658efa18de0} 
using {\bfseries full\+\_\+precision} = double
\begin{DoxyCompactList}\small\item\em The most precise floating-\/point type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a89637c833af7ae805802226d97cebebf}\label{namespacegko_a89637c833af7ae805802226d97cebebf} 
using {\bfseries default\+\_\+precision} = double
\begin{DoxyCompactList}\small\item\em Precision used if no precision is explicitly specified. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum class \doxymbox{\hyperlink{namespacegko_aa2543f42cbbe1a9373dc46d04c112bee}{log\+\_\+propagation\+\_\+mode}} \{ \doxymbox{\hyperlink{namespacegko_aa2543f42cbbe1a9373dc46d04c112beeac7561db7a418dd39b2201dfe110ab4a4}{never}}
, \doxymbox{\hyperlink{namespacegko_aa2543f42cbbe1a9373dc46d04c112beea2bd9c0ed00116be1258e0cc66617d7c8}{automatic}}
 \}
\begin{DoxyCompactList}\small\item\em How Logger events are propagated to their \doxylink{classgko_1_1Executor}{Executor}. \end{DoxyCompactList}\item 
enum class \doxymbox{\hyperlink{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}{allocation\+\_\+mode}} \{ {\bfseries device}
, {\bfseries unified\+\_\+global}
, {\bfseries unified\+\_\+host}
 \}
\begin{DoxyCompactList}\small\item\em Specify the mode of allocation for CUDA/\+\+HIP GPUs. \end{DoxyCompactList}\item 
enum class \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}{layout\+\_\+type}} \{ \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af1f713c9e000f5d3f280adbd124df4f5}{array}}
, \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af5d7aa3ba4929cc12dc51a92c59fabd3}{coordinate}}
 \}
\begin{DoxyCompactList}\small\item\em Specifies the layout type when writing data in matrix market format. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Value\+Type$>$ }\\Value\+Type \doxymbox{\hyperlink{namespacegko_a12e62081e2511f958dc2c9f1cc73c11d}{reduce\+\_\+add}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \&input\+\_\+arr, const Value\+Type init\+\_\+val=0)
\begin{DoxyCompactList}\small\item\em Reduce (sum) the values in the array. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type$>$ }\\void \doxymbox{\hyperlink{namespacegko_a718bb2876f514b73c900f72fcc9d464e}{reduce\+\_\+add}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \&input\+\_\+arr, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \&result)
\begin{DoxyCompactList}\small\item\em Reduce (sum) the values in the array. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type$>$ }\\\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \doxymbox{\hyperlink{namespacegko_a752922d291cf7c72e3042cc5b367aa60}{make\+\_\+array\+\_\+view}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size, Value\+Type \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Helper function to create an array view deducing the value type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type$>$ }\\detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \doxymbox{\hyperlink{namespacegko_a5309c321872a54fc9818ed9f5556eef4}{make\+\_\+const\+\_\+array\+\_\+view}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size, const Value\+Type \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Helper function to create a const array view deducing the value type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Dimension\+Type$>$ }\\\doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\+\_\+dim}}$<$ 2, Dimension\+Type $>$ \doxymbox{\hyperlink{namespacegko_aacad7f87b38d3f26674ed034d442a1a0}{transpose}} (const \doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\+\_\+dim}}$<$ 2, Dimension\+Type $>$ \&input)
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{structgko_1_1batch__dim}{batch\+\_\+dim} object with its dimensions swapped for batched operators. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Dimension\+Type$>$ }\\constexpr \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2, Dimension\+Type $>$ \doxymbox{\hyperlink{namespacegko_a471f1b79842d9b7e2e97d10d2eef5fee}{transpose}} (const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2, Dimension\+Type $>$ \&dimensions) noexcept
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{structgko_1_1dim}{dim$<$2$>$} object with its dimensions swapped. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr bool \doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex}} ()
\begin{DoxyCompactList}\small\item\em Checks if T is a complex type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr bool \doxymbox{\hyperlink{namespacegko_a6881ebae53e15cb88342c0540d953f59}{is\+\_\+complex\+\_\+or\+\_\+scalar}} ()
\begin{DoxyCompactList}\small\item\em Checks if T is a complex/\+scalar type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr \doxymbox{\hyperlink{namespacegko_a87a96a1b78352538d905c10518bf5571}{reduce\+\_\+precision}}$<$ T $>$ \doxymbox{\hyperlink{namespacegko_a8f5c64893cb6241b6c91c3aad724158f}{round\+\_\+down}} (T val)
\begin{DoxyCompactList}\small\item\em Reduces the precision of the input parameter. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr \doxymbox{\hyperlink{namespacegko_ad6883fe3514ba0b125a4fc26c94ea9d1}{increase\+\_\+precision}}$<$ T $>$ \doxymbox{\hyperlink{namespacegko_a1a24c8b8654e0027471eee100e76e639}{round\+\_\+up}} (T val)
\begin{DoxyCompactList}\small\item\em Increases the precision of the input parameter. \end{DoxyCompactList}\item 
constexpr \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} \doxymbox{\hyperlink{namespacegko_a93065a86872e6511b701b73b75823483}{ceildiv}} (\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} num, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} den)
\begin{DoxyCompactList}\small\item\em Performs integer division with rounding up. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero}} ()
\begin{DoxyCompactList}\small\item\em Returns the additive identity for T. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_a9f1cd7be946b9a2c15b01b744cf3e732}{zero}} (const T \&)
\begin{DoxyCompactList}\small\item\em Returns the additive identity for T. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_a0059e27f8f4bc348ff65c1e60caf47c8}{one}} ()
\begin{DoxyCompactList}\small\item\em Returns the multiplicative identity for T. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a082f4684d162759a96c26fa30181103f}\label{namespacegko_a082f4684d162759a96c26fa30181103f} 
template$<$$>$ constexpr \doxymbox{\hyperlink{classgko_1_1half}{half}} {\bfseries one$<$ half $>$} ()
\item 
\Hypertarget{namespacegko_a7842aa374806eb88cd974ac102e81def}\label{namespacegko_a7842aa374806eb88cd974ac102e81def} 
template$<$$>$ constexpr \doxymbox{\hyperlink{classgko_1_1bfloat16}{bfloat16}} {\bfseries one$<$ bfloat16 $>$} ()
\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_ab4f16ecf0a759f46259cf9518f1e4568}{one}} (const T \&)
\begin{DoxyCompactList}\small\item\em Returns the multiplicative identity for T. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr bool \doxymbox{\hyperlink{namespacegko_a785976e6dbc9d8511325617ca46040bf}{is\+\_\+zero}} (T value)
\begin{DoxyCompactList}\small\item\em Returns true if and only if the given value is zero. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr bool \doxymbox{\hyperlink{namespacegko_aef9b29733e6eb45475a2b84f79a6d012}{is\+\_\+nonzero}} (T value)
\begin{DoxyCompactList}\small\item\em Returns true if and only if the given value is not zero. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_af1812df45c6ec07780d579a12b64c753}{max}} (const T \&x, const T \&y)
\begin{DoxyCompactList}\small\item\em Returns the larger of the arguments. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_aaaf8487194bcb40b528969c187a413a0}{min}} (const T \&x, const T \&y)
\begin{DoxyCompactList}\small\item\em Returns the smaller of the arguments. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr auto \doxymbox{\hyperlink{namespacegko_af21648097306adbabc6234b4609ce297}{real}} (const T \&x)
\begin{DoxyCompactList}\small\item\em Returns the real part of the object. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr auto \doxymbox{\hyperlink{namespacegko_a795f649e3744fbfe128aec0b0f928aaa}{imag}} (const T \&x)
\begin{DoxyCompactList}\small\item\em Returns the imaginary part of the object. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr auto \doxymbox{\hyperlink{namespacegko_ad79fd5c1fb85403796c40c0a916a15f2}{conj}} (const T \&x)
\begin{DoxyCompactList}\small\item\em Returns the conjugate of an object. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr auto \doxymbox{\hyperlink{namespacegko_abbb55709b10d707b2cbef803832aa834}{squared\+\_\+norm}} (const T \&x) -\/$>$ decltype(\doxymbox{\hyperlink{namespacegko_af21648097306adbabc6234b4609ce297}{real}}(\doxymbox{\hyperlink{namespacegko_ad79fd5c1fb85403796c40c0a916a15f2}{conj}}(x) \texorpdfstring{$\ast$}{*}x))
\begin{DoxyCompactList}\small\item\em Returns the squared norm of the object. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, T $>$ \doxymbox{\hyperlink{namespacegko_a0cb7d0ece3444fcf3a7ebd82e1cb0a69}{abs}} (const T \&x)
\begin{DoxyCompactList}\small\item\em Returns the absolute value of the object. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a672f12d55e0569c174e6a17acec33a66}\label{namespacegko_a672f12d55e0569c174e6a17acec33a66} 
{\footnotesize template$<$typename T$>$ }\\constexpr std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$ T $>$ $>$ {\bfseries abs} (const T \&x)
\item 
\Hypertarget{namespacegko_a706e6d4214dcd751b0f6dda94bf11608}\label{namespacegko_a706e6d4214dcd751b0f6dda94bf11608} 
\doxymbox{\hyperlink{classgko_1_1half}{gko::\+half}} {\bfseries abs} (const std::\+complex$<$ \doxymbox{\hyperlink{classgko_1_1half}{gko::\+half}} $>$ \&x)
\item 
\Hypertarget{namespacegko_af32f4b09c884d173e83f770d867c75f3}\label{namespacegko_af32f4b09c884d173e83f770d867c75f3} 
\doxymbox{\hyperlink{classgko_1_1bfloat16}{gko::\+bfloat16}} {\bfseries abs} (const std::\+complex$<$ \doxymbox{\hyperlink{classgko_1_1bfloat16}{gko::\+bfloat16}} $>$ \&x)
\item 
\Hypertarget{namespacegko_ab6a35f93a8a77f8fffd7d7e1c1338941}\label{namespacegko_ab6a35f93a8a77f8fffd7d7e1c1338941} 
\doxymbox{\hyperlink{classgko_1_1half}{gko::\+half}} {\bfseries sqrt} (\doxymbox{\hyperlink{classgko_1_1half}{gko::\+half}} a)
\item 
\Hypertarget{namespacegko_a79dcef20f0f040eda6e543dd66e94157}\label{namespacegko_a79dcef20f0f040eda6e543dd66e94157} 
std::\+complex$<$ \doxymbox{\hyperlink{classgko_1_1half}{gko::\+half}} $>$ {\bfseries sqrt} (std::\+complex$<$ \doxymbox{\hyperlink{classgko_1_1half}{gko::\+half}} $>$ a)
\item 
\Hypertarget{namespacegko_a50295b2c4b1072234a0abe00b027fe94}\label{namespacegko_a50295b2c4b1072234a0abe00b027fe94} 
\doxymbox{\hyperlink{classgko_1_1bfloat16}{gko::\+bfloat16}} {\bfseries sqrt} (\doxymbox{\hyperlink{classgko_1_1bfloat16}{gko::\+bfloat16}} a)
\item 
\Hypertarget{namespacegko_a56eba83c5a6766c8d875392a1c34ddda}\label{namespacegko_a56eba83c5a6766c8d875392a1c34ddda} 
std::\+complex$<$ \doxymbox{\hyperlink{classgko_1_1bfloat16}{gko::\+bfloat16}} $>$ {\bfseries sqrt} (std::\+complex$<$ \doxymbox{\hyperlink{classgko_1_1bfloat16}{gko::\+bfloat16}} $>$ a)
\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_a0603ce0a60183a6698ac9b523694fb68}{pi}} ()
\begin{DoxyCompactList}\small\item\em Returns the value of pi. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr std::\+complex$<$ \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$ T $>$ $>$ \doxymbox{\hyperlink{namespacegko_a7d18aa213befc4d1dac5dbc8eeed6e7d}{unit\+\_\+root}} (\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} n, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} k=1)
\begin{DoxyCompactList}\small\item\em Returns the value of exp(2 \texorpdfstring{$\ast$}{*} pi \texorpdfstring{$\ast$}{*} i \texorpdfstring{$\ast$}{*} k /\+ n), i.\+e. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr \doxymbox{\hyperlink{namespacegko_a7cf056fa904140b50658e0637fba428c}{uint32}} \doxymbox{\hyperlink{namespacegko_a4eea40e4123a3fdb60fcd92f902c6d6d}{get\+\_\+significant\+\_\+bit}} (const T \&n, \doxymbox{\hyperlink{namespacegko_a7cf056fa904140b50658e0637fba428c}{uint32}} hint=0u) noexcept
\begin{DoxyCompactList}\small\item\em Returns the position of the most significant bit of the number. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr T \doxymbox{\hyperlink{namespacegko_ad39645fe8148a8a812a9528865a77600}{get\+\_\+superior\+\_\+power}} (const T \&base, const T \&limit, const T \&hint=T\{1\}) noexcept
\begin{DoxyCompactList}\small\item\em Returns the smallest power of {\ttfamily base} not smaller than {\ttfamily limit}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ \doxymbox{\hyperlink{namespacegko_a01e4cc92b86977c60de3fe3ee991fa40}{is\+\_\+finite}} (const T \&value)
\begin{DoxyCompactList}\small\item\em Checks if a floating point number is finite, meaning it is neither +/\+-\/ infinity nor NaN. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ \doxymbox{\hyperlink{namespacegko_aafd1826b8d8325e5eadec7c9568dbc14}{is\+\_\+finite}} (const T \&value)
\begin{DoxyCompactList}\small\item\em Checks if all components of a complex value are finite, meaning they are neither +/\+-\/ infinity nor NaN. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\T \doxymbox{\hyperlink{namespacegko_aa1470fdc2a75dcda76bea4b879a29886}{safe\+\_\+divide}} (T a, T b)
\begin{DoxyCompactList}\small\item\em Computes the quotient of the given parameters, guarding against division by zero. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ \doxymbox{\hyperlink{namespacegko_a6f943e1343264921351afce70b33009a}{is\+\_\+nan}} (const T \&value)
\begin{DoxyCompactList}\small\item\em Checks if a floating point number is NaN. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ \doxymbox{\hyperlink{namespacegko_acff21f04b9f0d01bf5fc5d8da3d939e0}{is\+\_\+nan}} (const T \&value)
\begin{DoxyCompactList}\small\item\em Checks if any component of a complex value is NaN. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, T $>$ \doxymbox{\hyperlink{namespacegko_a70bf9f2c62b689f4f7e074392be0f828}{nan}} ()
\begin{DoxyCompactList}\small\item\em Returns a quiet NaN of the given type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\constexpr std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, T $>$ \doxymbox{\hyperlink{namespacegko_a2d8c25cb4bc4a661a986b5cae340c96b}{nan}} ()
\begin{DoxyCompactList}\small\item\em Returns a complex with both components quiet NaN. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ }\\\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \doxymbox{\hyperlink{namespacegko_afddd8179d8034cce9a2f7e02bae33fd7}{read\+\_\+raw}} (std::\+istream \&is)
\begin{DoxyCompactList}\small\item\em Reads a matrix stored in matrix market format from an input stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ }\\\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \doxymbox{\hyperlink{namespacegko_a5e379ed0d74e7c7f8c33fbfe6816e697}{read\+\_\+binary\+\_\+raw}} (std::\+istream \&is)
\begin{DoxyCompactList}\small\item\em Reads a matrix stored in Ginkgo\textquotesingle{}s binary matrix format from an input stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ }\\\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \doxymbox{\hyperlink{namespacegko_a70492b519a55d1d62a3a11f6b297ecd9}{read\+\_\+generic\+\_\+raw}} (std::\+istream \&is)
\begin{DoxyCompactList}\small\item\em Reads a matrix stored in either binary or matrix market format from an input stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Index\+Type$>$ }\\void \doxymbox{\hyperlink{namespacegko_a2d4b63ce98a16dc2c48aacd534a7b8ba}{write\+\_\+raw}} (std::\+ostream \&os, const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \&data, \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}{layout\+\_\+type}} layout=\doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af5d7aa3ba4929cc12dc51a92c59fabd3}{layout\+\_\+type::\+coordinate}})
\begin{DoxyCompactList}\small\item\em Writes a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure to a stream in matrix market format. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Index\+Type$>$ }\\void \doxymbox{\hyperlink{namespacegko_a3b27a0c0282115116c160884dc0a9468}{write\+\_\+binary\+\_\+raw}} (std::\+ostream \&os, const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \&data)
\begin{DoxyCompactList}\small\item\em Writes a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure to a stream in binary format. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix\+Type, typename Stream\+Type, typename... Matrix\+Args$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix\+Type $>$ \doxymbox{\hyperlink{namespacegko_abc58509ecdcb48399e12f9a081ed7545}{read}} (Stream\+Type \&\&is, Matrix\+Args \&\&... args)
\begin{DoxyCompactList}\small\item\em Reads a matrix stored in matrix market format from an input stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix\+Type, typename Stream\+Type, typename... Matrix\+Args$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix\+Type $>$ \doxymbox{\hyperlink{namespacegko_a06b6aa3ec2d20b977d8730cc9cfdafd8}{read\+\_\+binary}} (Stream\+Type \&\&is, Matrix\+Args \&\&... args)
\begin{DoxyCompactList}\small\item\em Reads a matrix stored in binary format from an input stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix\+Type, typename Stream\+Type, typename... Matrix\+Args$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix\+Type $>$ \doxymbox{\hyperlink{namespacegko_a3c49cd22dbd4f0fa54597a950a145b63}{read\+\_\+generic}} (Stream\+Type \&\&is, Matrix\+Args \&\&... args)
\begin{DoxyCompactList}\small\item\em Reads a matrix stored either in binary or matrix market format from an input stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix\+Ptr\+Type, typename Stream\+Type, std::\+enable\+\_\+if\+\_\+t$<$!std::\+is\+\_\+same\+\_\+v$<$ std::\+remove\+\_\+cv\+\_\+t$<$ detail::\+pointee$<$ Matrix\+Ptr\+Type $>$ $>$, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\void \doxymbox{\hyperlink{namespacegko_af82d8f7795fefcf5f38a38895e316c02}{write}} (Stream\+Type \&\&os, Matrix\+Ptr\+Type \&\&\doxymbox{\hyperlink{namespacegko_1_1matrix}{matrix}}, \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}{layout\+\_\+type}} layout=detail::\+mtx\+\_\+io\+\_\+traits$<$ std::\+remove\+\_\+cv\+\_\+t$<$ detail::\+pointee$<$ Matrix\+Ptr\+Type $>$ $>$ $>$::\+default\+\_\+layout)
\begin{DoxyCompactList}\small\item\em Writes a matrix into an output stream in matrix market format. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{namespacegko_abc28c235c3fbbf3c495b1850c61746d2}{write}} (std::\+ostream \&os, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{namespacegko_1_1matrix}{matrix}})
\begin{DoxyCompactList}\small\item\em Writes a \doxylink{classgko_1_1LinOp}{Lin\+Op} into an output stream in matrix market format. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix\+Ptr\+Type, typename Stream\+Type$>$ }\\void \doxymbox{\hyperlink{namespacegko_aba9ca89ef08421197d3dbf84b0ad884c}{write\+\_\+binary}} (Stream\+Type \&\&os, Matrix\+Ptr\+Type \&\&\doxymbox{\hyperlink{namespacegko_1_1matrix}{matrix}})
\begin{DoxyCompactList}\small\item\em Writes a matrix into an output stream in binary format. \end{DoxyCompactList}\item 
virtual void \doxymbox{\hyperlink{namespacegko_a7cb327baf9ca9018d06fa5554464d29d}{convert\+\_\+to}} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) const =0
\begin{DoxyCompactList}\small\item\em Convertible\+To interface is used to mark that the implementer can be converted to the object of Result\+Type. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a6a0c218d128fe0634a98d20717907a8a}\label{namespacegko_a6a0c218d128fe0634a98d20717907a8a} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ result\+\_\+type $>$ result) const
\item 
virtual void \doxymbox{\hyperlink{namespacegko_a6fcc3453bf500454b56a5f2f196b871c}{move\+\_\+to}} (result\+\_\+type \texorpdfstring{$\ast$}{*}result)=0
\begin{DoxyCompactList}\small\item\em Converts the implementer to an object of type result\+\_\+type by moving data from this object. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a44a9af10f479f80224405d3d65444915}\label{namespacegko_a44a9af10f479f80224405d3d65444915} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ result\+\_\+type $>$ result)
\item 
{\footnotesize template$<$typename R, typename T$>$ }\\std::\+unique\+\_\+ptr$<$ R, std::\+function$<$ void(R \texorpdfstring{$\ast$}{*})$>$ $>$ \doxymbox{\hyperlink{namespacegko_ae4916d7f4a38162b665935d0adfb3825}{copy\+\_\+and\+\_\+convert\+\_\+to}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, T \texorpdfstring{$\ast$}{*}obj)
\begin{DoxyCompactList}\small\item\em Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename R, typename T$>$ }\\std::\+unique\+\_\+ptr$<$ const R, std::\+function$<$ void(const R \texorpdfstring{$\ast$}{*})$>$ $>$ \doxymbox{\hyperlink{namespacegko_ae27269c18937d9a8866b431aff94433e}{copy\+\_\+and\+\_\+convert\+\_\+to}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const T \texorpdfstring{$\ast$}{*}obj)
\begin{DoxyCompactList}\small\item\em Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec.    \end{DoxyCompactList}\item 
{\footnotesize template$<$typename R, typename T$>$ }\\std::\+shared\+\_\+ptr$<$ R $>$ \doxymbox{\hyperlink{namespacegko_a2c02ca75c7c97c556424bc2996510c83}{copy\+\_\+and\+\_\+convert\+\_\+to}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, std::\+shared\+\_\+ptr$<$ T $>$ obj)
\begin{DoxyCompactList}\small\item\em Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename R, typename T$>$ }\\std::\+shared\+\_\+ptr$<$ const R $>$ \doxymbox{\hyperlink{namespacegko_ab6954ded2bc4730777068facde07983a}{copy\+\_\+and\+\_\+convert\+\_\+to}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, std::\+shared\+\_\+ptr$<$ const T $>$ obj)
\begin{DoxyCompactList}\small\item\em Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec.    \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Ptr$>$ }\\detail::\+temporary\+\_\+conversion$<$ std::\+conditional\+\_\+t$<$ std::\+is\+\_\+const$<$ detail::\+pointee$<$ Ptr $>$ $>$::\+value, const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ Value\+Type $>$, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ Value\+Type $>$ $>$ $>$ \doxymbox{\hyperlink{namespacegko_a53160e02553fceb89af3e58435de2aca}{make\+\_\+temporary\+\_\+conversion}} (Ptr \&\&\doxymbox{\hyperlink{namespacegko_1_1matrix}{matrix}})
\begin{DoxyCompactList}\small\item\em Convert the given \doxylink{classgko_1_1LinOp}{Lin\+Op} from \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$...$>$} to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Function, typename... Args$>$ }\\void \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch}} (Function fn, Args \texorpdfstring{$\ast$}{*}... linops)
\begin{DoxyCompactList}\small\item\em Calls the given function with each given argument \doxylink{classgko_1_1LinOp}{Lin\+Op} temporarily converted into \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$} as parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Function$>$ }\\void \doxymbox{\hyperlink{namespacegko_a98c5a37c89e32c0f2b567f8e73870e3a}{precision\+\_\+dispatch\+\_\+real\+\_\+complex}} (Function fn, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}in, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}out)
\begin{DoxyCompactList}\small\item\em Calls the given function with the given Lin\+Ops temporarily converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Function$>$ }\\void \doxymbox{\hyperlink{namespacegko_a24dd55a9e5d991204024c68a501cdb3e}{precision\+\_\+dispatch\+\_\+real\+\_\+complex}} (Function fn, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}alpha, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}in, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}out)
\begin{DoxyCompactList}\small\item\em Calls the given function with the given Lin\+Ops temporarily converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Function$>$ }\\void \doxymbox{\hyperlink{namespacegko_aaebbe93d733274398213df2d3acf1b79}{precision\+\_\+dispatch\+\_\+real\+\_\+complex}} (Function fn, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}alpha, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}in, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}beta, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}out)
\begin{DoxyCompactList}\small\item\em Calls the given function with the given Lin\+Ops temporarily converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Function$>$ }\\void \doxymbox{\hyperlink{namespacegko_a205901dcce27e1df970c569d46d87551}{mixed\+\_\+precision\+\_\+dispatch}} (Function fn, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}in, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}out)
\begin{DoxyCompactList}\small\item\em Calls the given function with each given argument \doxylink{classgko_1_1LinOp}{Lin\+Op} converted into \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$} as parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Value\+Type, typename Function, std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex}}$<$ Value\+Type $>$()$>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\void \doxymbox{\hyperlink{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89}{mixed\+\_\+precision\+\_\+dispatch\+\_\+real\+\_\+complex}} (Function fn, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}in, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}out)
\begin{DoxyCompactList}\small\item\em Calls the given function with the given Lin\+Ops cast to their dynamic type \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89}\label{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89} 
{\footnotesize template$<$typename Value\+Type, typename Function, std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex}}$<$ Value\+Type $>$()$>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ }\\void {\bfseries mixed\+\_\+precision\+\_\+dispatch\+\_\+real\+\_\+complex} (Function fn, const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}in, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}out)
\item 
\Hypertarget{namespacegko_a22cd8a74bb04c04ba81d88de0d0677b2}\label{namespacegko_a22cd8a74bb04c04ba81d88de0d0677b2} 
constexpr bool {\bfseries operator$<$} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&first, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&second)
\item 
\Hypertarget{namespacegko_aece8127f67d50be468da56463320819f}\label{namespacegko_aece8127f67d50be468da56463320819f} 
constexpr bool {\bfseries operator$<$=} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&first, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&second)
\item 
\Hypertarget{namespacegko_abfec3871dd48b1b7abd345404fc5fea4}\label{namespacegko_abfec3871dd48b1b7abd345404fc5fea4} 
constexpr bool {\bfseries operator$>$} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&first, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&second)
\item 
\Hypertarget{namespacegko_af6a579660b1a1d65b353ede9ab691730}\label{namespacegko_af6a579660b1a1d65b353ede9ab691730} 
constexpr bool {\bfseries operator$>$=} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&first, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&second)
\item 
\Hypertarget{namespacegko_afa4fd5d9324b20d7205d3cc6ab610444}\label{namespacegko_afa4fd5d9324b20d7205d3cc6ab610444} 
constexpr bool {\bfseries operator==} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&first, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&second)
\item 
\Hypertarget{namespacegko_a76b572cdf444e58282049b6eeed87f0a}\label{namespacegko_a76b572cdf444e58282049b6eeed87f0a} 
constexpr bool {\bfseries operator!=} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&first, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&second)
\item 
\Hypertarget{namespacegko_aff284b01779a5200f104606df7f6fcd1}\label{namespacegko_aff284b01779a5200f104606df7f6fcd1} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1unary__plus}{accessor::\+unary\+\_\+plus}}$<$ Accessor $>$ $>$ {\bfseries operator+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a58f561721aac52581444231af9ed8c0e}\label{namespacegko_a58f561721aac52581444231af9ed8c0e} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1unary__minus}{accessor::\+unary\+\_\+minus}}$<$ Accessor $>$ $>$ {\bfseries operator-\/} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a3b28ea22965c927f49f3ecd4a15122fc}\label{namespacegko_a3b28ea22965c927f49f3ecd4a15122fc} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__not}{accessor::\+logical\+\_\+not}}$<$ Accessor $>$ $>$ {\bfseries operator!} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a57cf3387d68358675b48c3b352a606ac}\label{namespacegko_a57cf3387d68358675b48c3b352a606ac} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__not}{accessor::\+bitwise\+\_\+not}}$<$ Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\sim$}{\string~}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a2d8ab4afb16f37dbd7f36de77edc2efe}\label{namespacegko_a2d8ab4afb16f37dbd7f36de77edc2efe} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1zero__operation}{accessor::\+zero\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries zero} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_af81b955d8e54b3ad999521e0c04521fe}\label{namespacegko_af81b955d8e54b3ad999521e0c04521fe} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1one__operation}{accessor::\+one\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries one} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_af1300561307f535a72a769cc8f92d696}\label{namespacegko_af1300561307f535a72a769cc8f92d696} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1abs__operation}{accessor::\+abs\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries abs} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_ae8f5ab6a6a0583549addddebc8b2f6cc}\label{namespacegko_ae8f5ab6a6a0583549addddebc8b2f6cc} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1real__operation}{accessor::\+real\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries real} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a4d5b4b38c819171c0d63197b94544bd9}\label{namespacegko_a4d5b4b38c819171c0d63197b94544bd9} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1imag__operation}{accessor::\+imag\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries imag} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a6e10c1fb372558b47c8fcbe0265e1fd7}\label{namespacegko_a6e10c1fb372558b47c8fcbe0265e1fd7} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1conj__operation}{accessor::\+conj\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries conj} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_acf1dc6574a15c52bf036c17754a6a758}\label{namespacegko_acf1dc6574a15c52bf036c17754a6a758} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1squared__norm__operation}{accessor::\+squared\+\_\+norm\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries squared\+\_\+norm} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a4885c201783ed7a67b3d5c8840442371}\label{namespacegko_a4885c201783ed7a67b3d5c8840442371} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1transpose__operation}{accessor::\+transpose\+\_\+operation}}$<$ Accessor $>$ $>$ {\bfseries transpose} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&operand)
\item 
\Hypertarget{namespacegko_a10c9fa4a239cce1ddd6f4c055c85efa2}\label{namespacegko_a10c9fa4a239cce1ddd6f4c055c85efa2} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1add}{accessor::\+add}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a452b7d6263ce7d8857511aeda8e0f3b0}\label{namespacegko_a452b7d6263ce7d8857511aeda8e0f3b0} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1add}{accessor::\+add}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a16f00e7644a455cc3b210319664065bb}\label{namespacegko_a16f00e7644a455cc3b210319664065bb} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1add}{accessor::\+add}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_ac761a0cea97525381a61a260c059a865}\label{namespacegko_ac761a0cea97525381a61a260c059a865} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1add}{accessor::\+add}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator+} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a93196521ddba0b048f94917fbffa8d3d}\label{namespacegko_a93196521ddba0b048f94917fbffa8d3d} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1sub}{accessor::\+sub}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator-\/} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a1b2d8cfffb3064de411e3a5cacfa7844}\label{namespacegko_a1b2d8cfffb3064de411e3a5cacfa7844} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1sub}{accessor::\+sub}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator-\/} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a1cb56514bd2f16e341b25fd519a7802c}\label{namespacegko_a1cb56514bd2f16e341b25fd519a7802c} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1sub}{accessor::\+sub}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator-\/} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_ac202251806090462d56b014b5435c618}\label{namespacegko_ac202251806090462d56b014b5435c618} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1sub}{accessor::\+sub}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator-\/} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_aea5a29c49d1b3388d554cfc5467c4995}\label{namespacegko_aea5a29c49d1b3388d554cfc5467c4995} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mul}{accessor::\+mul}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\ast$}{*}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ae818db4b83701381e34faf4bb4a87bc6}\label{namespacegko_ae818db4b83701381e34faf4bb4a87bc6} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mul}{accessor::\+mul}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\ast$}{*}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a07711c0171342d538601549257dad3dd}\label{namespacegko_a07711c0171342d538601549257dad3dd} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mul}{accessor::\+mul}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\texorpdfstring{$\ast$}{*}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a8216f5228c78661f6f81aeeb89c937d5}\label{namespacegko_a8216f5228c78661f6f81aeeb89c937d5} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mul}{accessor::\+mul}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\ast$}{*}} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a9a8d029d0aca196094b50a24069ca80a}\label{namespacegko_a9a8d029d0aca196094b50a24069ca80a} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1div}{accessor::\+div}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator/\+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a1bb6abe1932cb2addcd0682d433cfbd7}\label{namespacegko_a1bb6abe1932cb2addcd0682d433cfbd7} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1div}{accessor::\+div}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator/\+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_aca6584967d4bb51fb2cc06cfc7d32f47}\label{namespacegko_aca6584967d4bb51fb2cc06cfc7d32f47} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1div}{accessor::\+div}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator/\+} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_af0e214dd65a526fdb3b648a2372b4f22}\label{namespacegko_af0e214dd65a526fdb3b648a2372b4f22} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1div}{accessor::\+div}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator/\+} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a98a7d635a24a3b6da6e1c681aded7b43}\label{namespacegko_a98a7d635a24a3b6da6e1c681aded7b43} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mod}{accessor::\+mod}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\%} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ab5bb8f7f1168be04534fffa46905a0c5}\label{namespacegko_ab5bb8f7f1168be04534fffa46905a0c5} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mod}{accessor::\+mod}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\%} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_aec7c71d8c4cbaf20fb7e9a84ad95dfd7}\label{namespacegko_aec7c71d8c4cbaf20fb7e9a84ad95dfd7} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mod}{accessor::\+mod}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\%} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_afe7ca57a9f1cac595eb4d280b750b6b3}\label{namespacegko_afe7ca57a9f1cac595eb4d280b750b6b3} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mod}{accessor::\+mod}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\%} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a09711c3b69d7947450e66fe781408fc1}\label{namespacegko_a09711c3b69d7947450e66fe781408fc1} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less}{accessor::\+less}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator$<$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a2d190615fb86d64645f3fba11de82be8}\label{namespacegko_a2d190615fb86d64645f3fba11de82be8} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less}{accessor::\+less}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator$<$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a20d07d9551c04f92c8c3a3c1bed75f2e}\label{namespacegko_a20d07d9551c04f92c8c3a3c1bed75f2e} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less}{accessor::\+less}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator$<$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_ae4fdfcb959472bc4e701aea8c6cbf59b}\label{namespacegko_ae4fdfcb959472bc4e701aea8c6cbf59b} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less}{accessor::\+less}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator$<$} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a30fa8dd1e59d358c475406e5c209367e}\label{namespacegko_a30fa8dd1e59d358c475406e5c209367e} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater}{accessor::\+greater}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator$>$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ae882858db02f1cea7d384eb32e4883d1}\label{namespacegko_ae882858db02f1cea7d384eb32e4883d1} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater}{accessor::\+greater}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator$>$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ab67cdb9c3e5827eab24b3870b5743ec7}\label{namespacegko_ab67cdb9c3e5827eab24b3870b5743ec7} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater}{accessor::\+greater}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator$>$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a1468c3b3499ced86eec14b4874b1648f}\label{namespacegko_a1468c3b3499ced86eec14b4874b1648f} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater}{accessor::\+greater}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator$>$} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_aabfa4095cad9c1586826c1c4bcc3b378}\label{namespacegko_aabfa4095cad9c1586826c1c4bcc3b378} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less__or__equal}{accessor::\+less\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator$<$=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_acf22ecfdb9937ea5500397ef3c3c2627}\label{namespacegko_acf22ecfdb9937ea5500397ef3c3c2627} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less__or__equal}{accessor::\+less\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator$<$=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a260b0aefd7eaffadece3bd22893d10fe}\label{namespacegko_a260b0aefd7eaffadece3bd22893d10fe} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less__or__equal}{accessor::\+less\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator$<$=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a6b298fd039d0ce822d08e125668f89fb}\label{namespacegko_a6b298fd039d0ce822d08e125668f89fb} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1less__or__equal}{accessor::\+less\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator$<$=} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a28bab3e83635d8d84d9ec83e2317424e}\label{namespacegko_a28bab3e83635d8d84d9ec83e2317424e} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater__or__equal}{accessor::\+greater\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator$>$=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a90ef5e24e56673d01f05630354efb4ed}\label{namespacegko_a90ef5e24e56673d01f05630354efb4ed} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater__or__equal}{accessor::\+greater\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator$>$=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a09a4cd2ff57c85d2b79e8aeef2ceec7e}\label{namespacegko_a09a4cd2ff57c85d2b79e8aeef2ceec7e} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater__or__equal}{accessor::\+greater\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator$>$=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a916cb86ad0c5a689b473b3ad0ad87bd3}\label{namespacegko_a916cb86ad0c5a689b473b3ad0ad87bd3} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1greater__or__equal}{accessor::\+greater\+\_\+or\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator$>$=} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a87942a6449f4543affddbd613389df95}\label{namespacegko_a87942a6449f4543affddbd613389df95} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1equal}{accessor::\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator==} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a7043f24263d71e2cbdd77fcba599b885}\label{namespacegko_a7043f24263d71e2cbdd77fcba599b885} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1equal}{accessor::\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator==} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a5a9933c9d962934a272851135298522c}\label{namespacegko_a5a9933c9d962934a272851135298522c} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1equal}{accessor::\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator==} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a39b65ac30df7fd38b97b03ab1a61b026}\label{namespacegko_a39b65ac30df7fd38b97b03ab1a61b026} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1equal}{accessor::\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator==} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a7d1cfc451b72f4c441be27d4361bb06a}\label{namespacegko_a7d1cfc451b72f4c441be27d4361bb06a} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1not__equal}{accessor::\+not\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator!=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a5691b1d8998fec44eecb2c631de4af11}\label{namespacegko_a5691b1d8998fec44eecb2c631de4af11} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1not__equal}{accessor::\+not\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator!=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a54408134229e3a6ec00366a76d0ea63d}\label{namespacegko_a54408134229e3a6ec00366a76d0ea63d} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1not__equal}{accessor::\+not\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator!=} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a2692c8fb1a421ae67f322e8a0c22461d}\label{namespacegko_a2692c8fb1a421ae67f322e8a0c22461d} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1not__equal}{accessor::\+not\+\_\+equal}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator!=} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_afadaa7426940eac5dceaa5da4a4938d2}\label{namespacegko_afadaa7426940eac5dceaa5da4a4938d2} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__or}{accessor::\+logical\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a9f1219874d01e629078df35d1f5fa0d2}\label{namespacegko_a9f1219874d01e629078df35d1f5fa0d2} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__or}{accessor::\+logical\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a306129f5c27ea1761a1864da6f31ab8c}\label{namespacegko_a306129f5c27ea1761a1864da6f31ab8c} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__or}{accessor::\+logical\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a9a9e0e941bdfe49b7ec5c916ae3be71c}\label{namespacegko_a9a9e0e941bdfe49b7ec5c916ae3be71c} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__or}{accessor::\+logical\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|}} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a779b0f91f0e6d41e7be77681157dbc90}\label{namespacegko_a779b0f91f0e6d41e7be77681157dbc90} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__and}{accessor::\+logical\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\&\&} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a98bcf1c643450006006f87530d0c5c78}\label{namespacegko_a98bcf1c643450006006f87530d0c5c78} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__and}{accessor::\+logical\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\&\&} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a9727eee259f729f2c4480aefc45a8ee2}\label{namespacegko_a9727eee259f729f2c4480aefc45a8ee2} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__and}{accessor::\+logical\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\&\&} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a69b0bee62b83c198c45f8749347d1ea0}\label{namespacegko_a69b0bee62b83c198c45f8749347d1ea0} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1logical__and}{accessor::\+logical\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\&\&} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ae1b0c7331477496a50c325dc944dedb9}\label{namespacegko_ae1b0c7331477496a50c325dc944dedb9} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__or}{accessor::\+bitwise\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ac7b7b8b68031a606408805103bb17714}\label{namespacegko_ac7b7b8b68031a606408805103bb17714} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__or}{accessor::\+bitwise\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ad00654a91a7088aed1bec9bcac5772b9}\label{namespacegko_ad00654a91a7088aed1bec9bcac5772b9} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__or}{accessor::\+bitwise\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a8970e50a50b9f7814cf2c2f24efb97a6}\label{namespacegko_a8970e50a50b9f7814cf2c2f24efb97a6} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__or}{accessor::\+bitwise\+\_\+or}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$\vert$}{|}} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a24216cc8b15b83b35e1959339ffc62ad}\label{namespacegko_a24216cc8b15b83b35e1959339ffc62ad} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__and}{accessor::\+bitwise\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\&} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a4b3b404d7e898b9e7b440b7f27754cb8}\label{namespacegko_a4b3b404d7e898b9e7b440b7f27754cb8} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__and}{accessor::\+bitwise\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\&} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a589943c888bf5a657f68802b0cae4bf8}\label{namespacegko_a589943c888bf5a657f68802b0cae4bf8} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__and}{accessor::\+bitwise\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\&} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a89a3e5b0443eb53e66bd6a9b83a22fd4}\label{namespacegko_a89a3e5b0443eb53e66bd6a9b83a22fd4} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__and}{accessor::\+bitwise\+\_\+and}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\&} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a0a7a12fbde4560517b3ef3885f207938}\label{namespacegko_a0a7a12fbde4560517b3ef3885f207938} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__xor}{accessor::\+bitwise\+\_\+xor}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$^\wedge$}{\string^}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a6d24d7d75a0cf3b11c70f41cc5f656f8}\label{namespacegko_a6d24d7d75a0cf3b11c70f41cc5f656f8} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__xor}{accessor::\+bitwise\+\_\+xor}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$^\wedge$}{\string^}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a373255acff2140cb9743eaa8099a4b05}\label{namespacegko_a373255acff2140cb9743eaa8099a4b05} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__xor}{accessor::\+bitwise\+\_\+xor}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator\texorpdfstring{$^\wedge$}{\string^}} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_ae3b2ff8a42698478deb5337a73566318}\label{namespacegko_ae3b2ff8a42698478deb5337a73566318} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1bitwise__xor}{accessor::\+bitwise\+\_\+xor}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator\texorpdfstring{$^\wedge$}{\string^}} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a7732030662b9e8339d814b9a3a9ce2f8}\label{namespacegko_a7732030662b9e8339d814b9a3a9ce2f8} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1left__shift}{accessor::\+left\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator$<$$<$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ab3ff1391035585cd6c5785fbca634f52}\label{namespacegko_ab3ff1391035585cd6c5785fbca634f52} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1left__shift}{accessor::\+left\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator$<$$<$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a26e9bc358186a0d7d685e292eee86b5b}\label{namespacegko_a26e9bc358186a0d7d685e292eee86b5b} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1left__shift}{accessor::\+left\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator$<$$<$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_add77a553587d58a628a0bb90bf114790}\label{namespacegko_add77a553587d58a628a0bb90bf114790} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1left__shift}{accessor::\+left\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator$<$$<$} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_acced532e1c9744a8f1e9b63fbb68fbd8}\label{namespacegko_acced532e1c9744a8f1e9b63fbb68fbd8} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1right__shift}{accessor::\+right\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries operator$>$$>$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_aabdb5017332bd08becc50921d8530508}\label{namespacegko_aabdb5017332bd08becc50921d8530508} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1right__shift}{accessor::\+right\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries operator$>$$>$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ad1e02d1e9561d02bacd31fd84faa8c7e}\label{namespacegko_ad1e02d1e9561d02bacd31fd84faa8c7e} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1right__shift}{accessor::\+right\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries operator$>$$>$} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_ad373f3a1edddc83a2996f17e5a7b30ce}\label{namespacegko_ad373f3a1edddc83a2996f17e5a7b30ce} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1right__shift}{accessor::\+right\+\_\+shift}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries operator$>$$>$} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a20e1b8e57c3749228a80750f40989c7d}\label{namespacegko_a20e1b8e57c3749228a80750f40989c7d} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1max__operation}{accessor::\+max\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries max} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_ae441fc03595e647765c4b963c3ec6675}\label{namespacegko_ae441fc03595e647765c4b963c3ec6675} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1max__operation}{accessor::\+max\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries max} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a7e3bad93f8f76e5a45ef399e2abbdbd9}\label{namespacegko_a7e3bad93f8f76e5a45ef399e2abbdbd9} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1max__operation}{accessor::\+max\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries max} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a2c653b2c7e9c4158a742d33eb21c691f}\label{namespacegko_a2c653b2c7e9c4158a742d33eb21c691f} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1max__operation}{accessor::\+max\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries max} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_aa0c48481fdc5737c5f9ba5e1d879ea7e}\label{namespacegko_aa0c48481fdc5737c5f9ba5e1d879ea7e} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1min__operation}{accessor::\+min\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries min} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a895b093f17beaeb54acfad17f58c5694}\label{namespacegko_a895b093f17beaeb54acfad17f58c5694} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1min__operation}{accessor::\+min\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries min} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a33b51af50c9123314f0f883e31497a23}\label{namespacegko_a33b51af50c9123314f0f883e31497a23} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1min__operation}{accessor::\+min\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries min} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_a1f33e6b5747fa0976a48658889ed00f8}\label{namespacegko_a1f33e6b5747fa0976a48658889ed00f8} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1min__operation}{accessor::\+min\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries min} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a6a2378dcbe2d3d8f7120b4c9a9a5580f}\label{namespacegko_a6a2378dcbe2d3d8f7120b4c9a9a5580f} 
{\footnotesize template$<$typename Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mmul__operation}{accessor::\+mmul\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, Accessor, Accessor $>$ $>$ {\bfseries mmul} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_abc4a8b8bc6ebb1238bfef3aad764382b}\label{namespacegko_abc4a8b8bc6ebb1238bfef3aad764382b} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mmul__operation}{accessor::\+mmul\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+range, First\+Accessor, Second\+Accessor $>$ $>$ {\bfseries mmul} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
\Hypertarget{namespacegko_a5259dcbd8dff3eeea0ffa7064ab6f5c9}\label{namespacegko_a5259dcbd8dff3eeea0ffa7064ab6f5c9} 
{\footnotesize template$<$typename First\+Accessor, typename Second\+Operand$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mmul__operation}{accessor::\+mmul\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+range\+\_\+by\+\_\+scalar, First\+Accessor, Second\+Operand $>$ $>$ {\bfseries mmul} (const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ First\+Accessor $>$ \&first, const Second\+Operand \&second)
\item 
\Hypertarget{namespacegko_ae94cfedcd385ec54ed125c90c0fe0a4b}\label{namespacegko_ae94cfedcd385ec54ed125c90c0fe0a4b} 
{\footnotesize template$<$typename First\+Operand, typename Second\+Accessor$>$ }\\constexpr \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ \doxymbox{\hyperlink{structgko_1_1accessor_1_1mmul__operation}{accessor::\+mmul\+\_\+operation}}$<$ ::\+gko::\+detail::\+operation\+\_\+kind::\+scalar\+\_\+by\+\_\+range, First\+Operand, Second\+Accessor $>$ $>$ {\bfseries mmul} (const First\+Operand \&first, const \doxymbox{\hyperlink{classgko_1_1range}{range}}$<$ Second\+Accessor $>$ \&second)
\item 
{\footnotesize template$<$typename Ptr$>$ }\\detail::\+temporary\+\_\+clone$<$ detail::\+pointee$<$ Ptr $>$ $>$ \doxymbox{\hyperlink{namespacegko_adf2f8602dc9453752a787b40bbf13fcf}{make\+\_\+temporary\+\_\+clone}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, Ptr \&\&ptr)
\begin{DoxyCompactList}\small\item\em Creates a temporary\+\_\+clone. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Ptr$>$ }\\detail::\+temporary\+\_\+clone$<$ detail::\+pointee$<$ Ptr $>$ $>$ \doxymbox{\hyperlink{namespacegko_a64c4f7d1a2e86dafc644d9d96f7f4514}{make\+\_\+temporary\+\_\+output\+\_\+clone}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, Ptr \&\&ptr)
\begin{DoxyCompactList}\small\item\em Creates a uninitialized temporary\+\_\+clone that will be copied back to the input afterwards. \end{DoxyCompactList}\item 
constexpr bool \doxymbox{\hyperlink{namespacegko_a4dbafa6e062c2036991ec8c3f6b201cf}{operator==}} (\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}} x, \doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}} y) noexcept
\begin{DoxyCompactList}\small\item\em Checks if two \doxylink{classgko_1_1precision__reduction}{precision\+\_\+reduction} encodings are equal. \end{DoxyCompactList}\item 
constexpr bool \doxymbox{\hyperlink{namespacegko_a61d408b4cd77aae6cac7a40c8307fddb}{operator!=}} (\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}} x, \doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}} y) noexcept
\begin{DoxyCompactList}\small\item\em Checks if two \doxylink{classgko_1_1precision__reduction}{precision\+\_\+reduction} encodings are different. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_afec01a3afbf68d99fc0f886c51bdc713}\label{namespacegko_afec01a3afbf68d99fc0f886c51bdc713} 
{\footnotesize template$<$typename Index\+Type$>$ }\\constexpr Index\+Type {\bfseries invalid\+\_\+index} ()
\begin{DoxyCompactList}\small\item\em Value for an invalid signed index type. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Pointer$>$ }\\detail::\+cloned\+\_\+type$<$ Pointer $>$ \doxymbox{\hyperlink{namespacegko_aa194e34282452493231ca7b01ffb5e64}{clone}} (const Pointer \&p)
\begin{DoxyCompactList}\small\item\em Creates a unique clone of the object pointed to by {\ttfamily p}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Pointer$>$ }\\detail::\+cloned\+\_\+type$<$ Pointer $>$ \doxymbox{\hyperlink{namespacegko_a7412910f84951c1a23563e758eb01282}{clone}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const Pointer \&p)
\begin{DoxyCompactList}\small\item\em Creates a unique clone of the object pointed to by {\ttfamily p} on \doxylink{classgko_1_1Executor}{Executor} {\ttfamily exec}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Owning\+Pointer$>$ }\\detail::\+shared\+\_\+type$<$ Owning\+Pointer $>$ \doxymbox{\hyperlink{namespacegko_ae99fdd8bfa5ac694adcb7297d432967e}{share}} (Owning\+Pointer \&\&p)
\begin{DoxyCompactList}\small\item\em Marks the object pointed to by {\ttfamily p} as shared. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Owning\+Pointer$>$ }\\std::\+remove\+\_\+reference$<$ Owning\+Pointer $>$::\+type \&\& \doxymbox{\hyperlink{namespacegko_abc3b2c363d6eb3d9837a6d9efa589844}{give}} (Owning\+Pointer \&\&p)
\begin{DoxyCompactList}\small\item\em Marks that the object pointed to by {\ttfamily p} can be given to the callee. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Pointer$>$ }\\std::\+enable\+\_\+if$<$ detail::\+have\+\_\+ownership\+\_\+s$<$ Pointer $>$::\+value, detail::\+pointee$<$ Pointer $>$ \texorpdfstring{$\ast$}{*} $>$::\+type \doxymbox{\hyperlink{namespacegko_aa011422ea11684b8b3121058cd6f8933}{lend}} (const Pointer \&p)
\begin{DoxyCompactList}\small\item\em Returns a non-\/owning (plain) pointer to the object pointed to by {\ttfamily p}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Pointer$>$ }\\std::\+enable\+\_\+if$<$!detail::\+have\+\_\+ownership\+\_\+s$<$ Pointer $>$::\+value, detail::\+pointee$<$ Pointer $>$ \texorpdfstring{$\ast$}{*} $>$::\+type \doxymbox{\hyperlink{namespacegko_acc4ed16c876310fd8cffaca4d6c62664}{lend}} (const Pointer \&p)
\begin{DoxyCompactList}\small\item\em Returns a non-\/owning (plain) pointer to the object pointed to by {\ttfamily p}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{namespacegko_ae3e355a655feea026a7c46814d37a9c9}{as}} (U \texorpdfstring{$\ast$}{*}obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\const std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{namespacegko_a6e42260dd30f8bd5c4a28fa49b0fca49}{as}} (const U \texorpdfstring{$\ast$}{*}obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{namespacegko_a2f94c3fc158c7bed4506a5fa03746e09}{as}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ U $>$ obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion on a \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\const std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{namespacegko_a3c360489a4f78b1fc92f75f27b3b7e13}{as}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const U $>$ obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\std::\+unique\+\_\+ptr$<$ std::\+decay\+\_\+t$<$ T $>$ $>$ \doxymbox{\hyperlink{namespacegko_a6d9d11fc6d039b7715a96d3ef9841898}{as}} (std::\+unique\+\_\+ptr$<$ U $>$ \&\&obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion of a unique\+\_\+ptr. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\std::\+shared\+\_\+ptr$<$ std::\+decay\+\_\+t$<$ T $>$ $>$ \doxymbox{\hyperlink{namespacegko_a5949df0b865aea945843bfac6946831a}{as}} (std::\+shared\+\_\+ptr$<$ U $>$ obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion of a shared\+\_\+ptr. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T, typename U$>$ }\\std::\+shared\+\_\+ptr$<$ const std::\+decay\+\_\+t$<$ T $>$ $>$ \doxymbox{\hyperlink{namespacegko_a962c3722ef8395c17a374ddbcb9cbb50}{as}} (std::\+shared\+\_\+ptr$<$ const U $>$ obj)
\begin{DoxyCompactList}\small\item\em Performs polymorphic type conversion of a shared\+\_\+ptr. \end{DoxyCompactList}\item 
\Hypertarget{namespacegko_aeeaafa7179e5dbc1f1c02197598664fb}\label{namespacegko_aeeaafa7179e5dbc1f1c02197598664fb} 
bool {\bfseries operator==} (const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&first, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&second)
\item 
\Hypertarget{namespacegko_af2d150bb18c9fbdc62c2a02315bd908b}\label{namespacegko_af2d150bb18c9fbdc62c2a02315bd908b} 
bool {\bfseries operator!=} (const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&first, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&second)
\item 
\Hypertarget{namespacegko_a70e5d651d3fc23e6ed48980efd2098d3}\label{namespacegko_a70e5d651d3fc23e6ed48980efd2098d3} 
bool {\bfseries operator$<$} (const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&first, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&second)
\item 
\Hypertarget{namespacegko_aa3a749f76b73c3b0e161e2019ad12308}\label{namespacegko_aa3a749f76b73c3b0e161e2019ad12308} 
bool {\bfseries operator$<$=} (const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&first, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&second)
\item 
\Hypertarget{namespacegko_aa6724904a78b5293c610d113e3b23682}\label{namespacegko_aa6724904a78b5293c610d113e3b23682} 
bool {\bfseries operator$>$} (const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&first, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&second)
\item 
\Hypertarget{namespacegko_ac033cb13ef2c4d291a894f26d2c64862}\label{namespacegko_ac033cb13ef2c4d291a894f26d2c64862} 
bool {\bfseries operator$>$=} (const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&first, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&second)
\item 
std::\+ostream \& \doxymbox{\hyperlink{namespacegko_a48951a7770f9167cbb1e8e199a98dfab}{operator$<$$<$}} (std::\+ostream \&os, const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&ver)
\begin{DoxyCompactList}\small\item\em Prints version information to a stream. \end{DoxyCompactList}\item 
std::\+ostream \& \doxymbox{\hyperlink{namespacegko_a95f2df4e14987d3f8c17e90ea9d8d48a}{operator$<$$<$}} (std::\+ostream \&os, const \doxymbox{\hyperlink{classgko_1_1version__info}{version\+\_\+info}} \&ver\+\_\+info)
\begin{DoxyCompactList}\small\item\em Prints library version information in human-\/readable format to a stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$template$<$ typename, typename $>$ class Matrix\+Type, typename... Args$>$ }\\auto \doxymbox{\hyperlink{namespacegko_a537803d962d07cf43e1e0cbc9f6a3f8b}{with\+\_\+matrix\+\_\+type}} (Args \&\&... create\+\_\+args)
\begin{DoxyCompactList}\small\item\em This function returns a type that delays a call to Matrix\+Type::\+create. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vec\+Ptr$>$ }\\std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ typename detail::\+pointee$<$ Vec\+Ptr $>$::\+value\+\_\+type $>$ $>$ \doxymbox{\hyperlink{namespacegko_a6d2de0c8ecbe3736e7d201e6a372be02}{make\+\_\+dense\+\_\+view}} (Vec\+Ptr \&\&vector)
\begin{DoxyCompactList}\small\item\em Creates a view of a given Dense vector. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vec\+Ptr$>$ }\\std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ typename detail::\+pointee$<$ Vec\+Ptr $>$::\+value\+\_\+type $>$ $>$ \doxymbox{\hyperlink{namespacegko_a218d2e44e2d95fbe638ad98789fccb07}{make\+\_\+const\+\_\+dense\+\_\+view}} (Vec\+Ptr \&\&vector)
\begin{DoxyCompactList}\small\item\em Creates a view of a given Dense vector. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix, typename... TArgs$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix $>$ \doxymbox{\hyperlink{group__LinOp_ga70851b4c3c9b01bb667b3a8e438fb6d2}{initialize}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride, std::\+initializer\+\_\+list$<$ typename Matrix::\+value\+\_\+type $>$ vals, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, TArgs \&\&... create\+\_\+args)
\begin{DoxyCompactList}\small\item\em Creates and initializes a column-\/vector. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix, typename... TArgs$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix $>$ \doxymbox{\hyperlink{group__LinOp_ga97de1557afe54a2e9013f9f95f290387}{initialize}} (std::\+initializer\+\_\+list$<$ typename Matrix::\+value\+\_\+type $>$ vals, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, TArgs \&\&... create\+\_\+args)
\begin{DoxyCompactList}\small\item\em Creates and initializes a column-\/vector. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix, typename... TArgs$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix $>$ \doxymbox{\hyperlink{group__LinOp_ga698f7e43f788413f45a6e91fd65d0c1e}{initialize}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride, std::\+initializer\+\_\+list$<$ std::\+initializer\+\_\+list$<$ typename Matrix::\+value\+\_\+type $>$ $>$ vals, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, TArgs \&\&... create\+\_\+args)
\begin{DoxyCompactList}\small\item\em Creates and initializes a matrix. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Matrix, typename... TArgs$>$ }\\std::\+unique\+\_\+ptr$<$ Matrix $>$ \doxymbox{\hyperlink{group__LinOp_ga858a8403f19e76ac1ded3c154a91d7eb}{initialize}} (std::\+initializer\+\_\+list$<$ std::\+initializer\+\_\+list$<$ typename Matrix::\+value\+\_\+type $>$ $>$ vals, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, TArgs \&\&... create\+\_\+args)
\begin{DoxyCompactList}\small\item\em Creates and initializes a matrix. \end{DoxyCompactList}\item 
bool \doxymbox{\hyperlink{namespacegko_ad1f668258612e583add058f77ff91be3}{operator==}} (const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&x, const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&y)
\begin{DoxyCompactList}\small\item\em Checks if two stopping statuses are equivalent. \end{DoxyCompactList}\item 
bool \doxymbox{\hyperlink{namespacegko_accf6e6291e57abe8d7d05968666a42e0}{operator!=}} (const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&x, const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&y)
\begin{DoxyCompactList}\small\item\em Checks if two stopping statuses are different. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
constexpr \doxymbox{\hyperlink{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}{allocation\+\_\+mode}} \doxymbox{\hyperlink{namespacegko_a75fb6095836eeaadd8ae9137b9d224c2}{default\+\_\+cuda\+\_\+alloc\+\_\+mode}}
\item 
constexpr \doxymbox{\hyperlink{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}{allocation\+\_\+mode}} \doxymbox{\hyperlink{namespacegko_a6dc4eaf27900ef925725bf542d705351}{default\+\_\+hip\+\_\+alloc\+\_\+mode}}
\item 
\Hypertarget{namespacegko_acae2e648052ec788bd8ba9e0192652a6}\label{namespacegko_acae2e648052ec788bd8ba9e0192652a6} 
constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries byte\+\_\+size} = CHAR\+\_\+\+BIT
\begin{DoxyCompactList}\small\item\em Number of bits in a byte. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The Ginkgo namespace. 

\label{doc-typedef-members}
\Hypertarget{namespacegko_doc-typedef-members}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespacegko_ad643dd5de46195d05150e07455fa5712}\index{gko@{gko}!highest\_precision@{highest\_precision}}
\index{highest\_precision@{highest\_precision}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{highest\_precision}{highest\_precision}}
{\footnotesize\ttfamily \label{namespacegko_ad643dd5de46195d05150e07455fa5712} 
template$<$typename... Ts$>$ \\
using \doxymbox{\hyperlink{namespacegko_ad643dd5de46195d05150e07455fa5712}{gko::\+highest\+\_\+precision}}}

{\bfseries Initial value:\+}
\begin{DoxyCode}{0}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{typename}\ detail::highest\_precision\_variadic<Ts...>::type}

\end{DoxyCode}


Obtains the smallest arithmetic type that is able to store elements of all template parameter types exactly. 

All template type parameters need to be either real or complex types, mixing them is not possible.

Formally, it computes a right-\/fold over the type list, with the highest precision of a pair of real arithmetic types T1, T2 computed as {\ttfamily decltype(T1\{\} + T2\{\})}, or {\ttfamily std::\+complex\texorpdfstring{$<$}{<}\doxylink{namespacegko_ad643dd5de46195d05150e07455fa5712}{highest\+\_\+precision}\texorpdfstring{$<$}{<}\doxylink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}\texorpdfstring{$<$}{<}T1\texorpdfstring{$>$}{>}, \doxylink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}\texorpdfstring{$<$}{<}T2\texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>}} for complex types. \Hypertarget{namespacegko_abf707c1057eb7f959355ab06990441a8}\index{gko@{gko}!is\_complex\_or\_scalar\_s@{is\_complex\_or\_scalar\_s}}
\index{is\_complex\_or\_scalar\_s@{is\_complex\_or\_scalar\_s}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_complex\_or\_scalar\_s}{is\_complex\_or\_scalar\_s}}
{\footnotesize\ttfamily \label{namespacegko_abf707c1057eb7f959355ab06990441a8} 
template$<$typename T$>$ \\
using \doxymbox{\hyperlink{namespacegko_abf707c1057eb7f959355ab06990441a8}{gko::\+is\+\_\+complex\+\_\+or\+\_\+scalar\+\_\+s}} = detail::\+is\+\_\+complex\+\_\+or\+\_\+scalar\+\_\+impl$<$T$>$}



Allows to check if T is a complex or scalar value during compile time by accessing the {\ttfamily value} attribute of this struct. 

If {\ttfamily value} is {\ttfamily true}, T is a complex/\+scalar type, if it is {\ttfamily false}, T is not a complex/\+scalar type.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to check \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespacegko_a700d12db3a341bb7a46bede49e1d6715}\index{gko@{gko}!is\_complex\_s@{is\_complex\_s}}
\index{is\_complex\_s@{is\_complex\_s}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_complex\_s}{is\_complex\_s}}
{\footnotesize\ttfamily \label{namespacegko_a700d12db3a341bb7a46bede49e1d6715} 
template$<$typename T$>$ \\
using \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{gko::\+is\+\_\+complex\+\_\+s}} = detail::\+is\+\_\+complex\+\_\+impl$<$T$>$}



Allows to check if T is a complex value during compile time by accessing the {\ttfamily value} attribute of this struct. 

If {\ttfamily value} is {\ttfamily true}, T is a complex type, if it is {\ttfamily false}, T is not a complex type.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to check \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespacegko_a7f9e0f5413aca83838f94cbe9863e15c}\index{gko@{gko}!previous\_precision\_base@{previous\_precision\_base}}
\index{previous\_precision\_base@{previous\_precision\_base}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{previous\_precision\_base}{previous\_precision\_base}}
{\footnotesize\ttfamily \label{namespacegko_a7f9e0f5413aca83838f94cbe9863e15c} 
template$<$typename T$>$ \\
using \doxymbox{\hyperlink{namespacegko_a7f9e0f5413aca83838f94cbe9863e15c}{gko::\+previous\+\_\+precision\+\_\+base}} = \doxymbox{\hyperlink{namespacegko_a2c2416a808014f8b0647d5e4ba42a735}{next\+\_\+precision\+\_\+base}}$<$T$>$}



Obtains the previous type in the singly-\/linked precision list. 

\begin{DoxyNote}{Note}
Currently our lists contains only two elements, so this is the same as \doxylink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}. 
\end{DoxyNote}
\Hypertarget{namespacegko_a107302a750bfa82a2107c77293f791c9}\index{gko@{gko}!remove\_complex@{remove\_complex}}
\index{remove\_complex@{remove\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{remove\_complex}{remove\_complex}}
{\footnotesize\ttfamily \label{namespacegko_a107302a750bfa82a2107c77293f791c9} 
template$<$typename T$>$ \\
using \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{gko::\+remove\+\_\+complex}} = typename detail::\+remove\+\_\+complex\+\_\+s$<$T$>$::\+type}



Obtain the type which removed the complex of complex/\+scalar type or the template parameter of class by accessing the {\ttfamily type} attribute of this struct. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to remove complex\\
\hline
\end{DoxyTemplParams}
\begin{DoxyNote}{Note}
\doxylink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex$<$class$>$} can not be used in friend class declaration. 
\end{DoxyNote}
\Hypertarget{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}\index{gko@{gko}!to\_complex@{to\_complex}}
\index{to\_complex@{to\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{to\_complex}{to\_complex}}
{\footnotesize\ttfamily \label{namespacegko_a4ad20e5381a84928753efde0b2bc7f85} 
template$<$typename T$>$ \\
using \doxymbox{\hyperlink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{gko::\+to\+\_\+complex}} = typename detail::\+to\+\_\+complex\+\_\+s$<$T$>$::\+type}



Obtain the type which adds the complex of complex/\+scalar type or the template parameter of class by accessing the {\ttfamily type} attribute of this struct. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to complex\+\_\+type\\
\hline
\end{DoxyTemplParams}
\begin{DoxyNote}{Note}
\doxylink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{to\+\_\+complex$<$class$>$} can not be used in friend class declaration. the followings are the error message from different combination. friend \doxylink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{to\+\_\+complex$<$\+Csr$>$}; error:\+ can not recognize it is class correctly. friend class \doxylink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{to\+\_\+complex$<$\+Csr$>$}; error:\+ using alias template specialization friend class to\+\_\+complex\+\_\+s$<$\+Csr$<$\+Value\+Type,\+Index\+Type$>$$>$::\+type; error:\+ can not recognize it is class correctly. 
\end{DoxyNote}
\Hypertarget{namespacegko_ad6b4f42aaf509f2f3660fcba0d230cac}\index{gko@{gko}!to\_real@{to\_real}}
\index{to\_real@{to\_real}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{to\_real}{to\_real}}
{\footnotesize\ttfamily \label{namespacegko_ad6b4f42aaf509f2f3660fcba0d230cac} 
template$<$typename T$>$ \\
using \doxymbox{\hyperlink{namespacegko_ad6b4f42aaf509f2f3660fcba0d230cac}{gko::\+to\+\_\+real}} = \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$T$>$}



\doxylink{namespacegko_ad6b4f42aaf509f2f3660fcba0d230cac}{to\+\_\+real} is alias of \doxylink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex} 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to real \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespacegko_a7b2d4de99c595e68fb962b862c1c532f}\index{gko@{gko}!truncate\_type@{truncate\_type}}
\index{truncate\_type@{truncate\_type}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{truncate\_type}{truncate\_type}}
{\footnotesize\ttfamily \label{namespacegko_a7b2d4de99c595e68fb962b862c1c532f} 
template$<$typename T, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Limit = sizeof(uint16) \texorpdfstring{$\ast$}{*} byte\+\_\+size$>$ \\
using \doxymbox{\hyperlink{namespacegko_a7b2d4de99c595e68fb962b862c1c532f}{gko::\+truncate\+\_\+type}}}

{\bfseries Initial value:\+}
\begin{DoxyCode}{0}
\DoxyCodeLine{}
\DoxyCodeLine{std::conditional\_t<detail::type\_size\_impl<T>::value\ >=\ 2\ *\ Limit,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{typename}\ detail::truncate\_type\_impl<T>::type,\ T>}

\end{DoxyCode}


Truncates the type by half (by dropping bits), but ensures that it is at least {\ttfamily Limit} bits wide. 



\label{doc-enum-members}
\Hypertarget{namespacegko_doc-enum-members}
\doxysubsection{Enumeration Type Documentation}
\Hypertarget{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}\index{gko@{gko}!allocation\_mode@{allocation\_mode}}
\index{allocation\_mode@{allocation\_mode}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{allocation\_mode}{allocation\_mode}}
{\footnotesize\ttfamily \label{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb} 
enum class \doxymbox{\hyperlink{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}{gko::\+allocation\+\_\+mode}}\hspace{0.3cm}{\ttfamily [strong]}}



Specify the mode of allocation for CUDA/\+\+HIP GPUs. 

{\ttfamily device} allocates memory on the device and Unified Memory model is not used.

{\ttfamily unified\+\_\+global} allocates memory on the device, but is accessible by the host through the Unified memory model.

{\ttfamily unified\+\_\+host} allocates memory on the host and it is not available on devices which do not have concurrent accesses switched on, but this access can be explicitly switched on, when necessary. \Hypertarget{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}\index{gko@{gko}!layout\_type@{layout\_type}}
\index{layout\_type@{layout\_type}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{layout\_type}{layout\_type}}
{\footnotesize\ttfamily \label{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68} 
enum class \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}{gko::\+layout\+\_\+type}}\hspace{0.3cm}{\ttfamily [strong]}}



Specifies the layout type when writing data in matrix market format. 

\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{array@{array}!gko@{gko}}
\index{gko@{gko}!array@{array}}
}\Hypertarget{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af1f713c9e000f5d3f280adbd124df4f5}\label{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af1f713c9e000f5d3f280adbd124df4f5} 
array&The matrix should be written as dense matrix in column-\/major order. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{coordinate@{coordinate}!gko@{gko}}
\index{gko@{gko}!coordinate@{coordinate}}
}\Hypertarget{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af5d7aa3ba4929cc12dc51a92c59fabd3}\label{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af5d7aa3ba4929cc12dc51a92c59fabd3} 
coordinate&The matrix should be written as a sparse matrix in coordinate format. \\
\hline

\end{DoxyEnumFields}
\Hypertarget{namespacegko_aa2543f42cbbe1a9373dc46d04c112bee}\index{gko@{gko}!log\_propagation\_mode@{log\_propagation\_mode}}
\index{log\_propagation\_mode@{log\_propagation\_mode}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{log\_propagation\_mode}{log\_propagation\_mode}}
{\footnotesize\ttfamily \label{namespacegko_aa2543f42cbbe1a9373dc46d04c112bee} 
enum class \doxymbox{\hyperlink{namespacegko_aa2543f42cbbe1a9373dc46d04c112bee}{gko::\+log\+\_\+propagation\+\_\+mode}}\hspace{0.3cm}{\ttfamily [strong]}}



How Logger events are propagated to their \doxylink{classgko_1_1Executor}{Executor}. 

\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{never@{never}!gko@{gko}}
\index{gko@{gko}!never@{never}}
}\Hypertarget{namespacegko_aa2543f42cbbe1a9373dc46d04c112beeac7561db7a418dd39b2201dfe110ab4a4}\label{namespacegko_aa2543f42cbbe1a9373dc46d04c112beeac7561db7a418dd39b2201dfe110ab4a4} 
never&Events only get reported at loggers attached to the triggering object. (Except for allocation/\+free, copy and Operations, since they happen at the \doxylink{classgko_1_1Executor}{Executor}). \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{automatic@{automatic}!gko@{gko}}
\index{gko@{gko}!automatic@{automatic}}
}\Hypertarget{namespacegko_aa2543f42cbbe1a9373dc46d04c112beea2bd9c0ed00116be1258e0cc66617d7c8}\label{namespacegko_aa2543f42cbbe1a9373dc46d04c112beea2bd9c0ed00116be1258e0cc66617d7c8} 
automatic&Events get reported to loggers attached to the triggering object and propagating loggers (Logger::\+needs\+\_\+propagation() return true) attached to its \doxylink{classgko_1_1Executor}{Executor}. \\
\hline

\end{DoxyEnumFields}


\label{doc-func-members}
\Hypertarget{namespacegko_doc-func-members}
\doxysubsection{Function Documentation}
\Hypertarget{namespacegko_a0cb7d0ece3444fcf3a7ebd82e1cb0a69}\index{gko@{gko}!abs@{abs}}
\index{abs@{abs}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{abs()}{abs()}}
{\footnotesize\ttfamily \label{namespacegko_a0cb7d0ece3444fcf3a7ebd82e1cb0a69} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, T $>$ gko::\+abs (\begin{DoxyParamCaption}\item[{const T \&}]{x}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the absolute value of the object. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the type of the object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em x} & the object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
x \texorpdfstring{$>$}{>}= \doxylink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero$<$\+T$>$()} ? x :\+ -\/x; 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a01e4cc92b86977c60de3fe3ee991fa40}{is\+\_\+finite()}}.

\Hypertarget{namespacegko_a6e42260dd30f8bd5c4a28fa49b0fca49}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [1/7]}}
{\footnotesize\ttfamily \label{namespacegko_a6e42260dd30f8bd5c4a28fa49b0fca49} 
template$<$typename T, typename U$>$ \\
const std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} gko::\+as (\begin{DoxyParamCaption}\item[{const U \texorpdfstring{$\ast$}{*}}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion. 

This is the constant version of the function.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the object which should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a pointer to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. 
\end{DoxyReturn}
\Hypertarget{namespacegko_a3c360489a4f78b1fc92f75f27b3b7e13}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [2/7]}}
{\footnotesize\ttfamily \label{namespacegko_a3c360489a4f78b1fc92f75f27b3b7e13} 
template$<$typename T, typename U$>$ \\
const std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} gko::\+as (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const U $>$}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion. 

This is the constant version of the function.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the object which should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a pointer to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_ae3e355a655feea026a7c46814d37a9c9}{as()}}, and \doxymbox{\hyperlink{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}{gko::\+ptr\+\_\+param$<$ T $>$::\+get()}}.

\Hypertarget{namespacegko_a2f94c3fc158c7bed4506a5fa03746e09}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [3/7]}}
{\footnotesize\ttfamily \label{namespacegko_a2f94c3fc158c7bed4506a5fa03746e09} 
template$<$typename T, typename U$>$ \\
std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} gko::\+as (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ U $>$}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion on a \doxylink{classgko_1_1ptr__param}{ptr\+\_\+param}. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the object which should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a pointer to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_ae3e355a655feea026a7c46814d37a9c9}{as()}}, and \doxymbox{\hyperlink{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}{gko::\+ptr\+\_\+param$<$ T $>$::\+get()}}.

\Hypertarget{namespacegko_a962c3722ef8395c17a374ddbcb9cbb50}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [4/7]}}
{\footnotesize\ttfamily \label{namespacegko_a962c3722ef8395c17a374ddbcb9cbb50} 
template$<$typename T, typename U$>$ \\
std::\+shared\+\_\+ptr$<$ const std::\+decay\+\_\+t$<$ T $>$ $>$ gko::\+as (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const U $>$}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion of a shared\+\_\+ptr. 

This is the constant version of the function.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the shared\+\_\+ptr to the object which should be converted.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a shared\+\_\+ptr to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. This pointer shares ownership with the input pointer. 
\end{DoxyReturn}
\Hypertarget{namespacegko_a5949df0b865aea945843bfac6946831a}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [5/7]}}
{\footnotesize\ttfamily \label{namespacegko_a5949df0b865aea945843bfac6946831a} 
template$<$typename T, typename U$>$ \\
std::\+shared\+\_\+ptr$<$ std::\+decay\+\_\+t$<$ T $>$ $>$ gko::\+as (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ U $>$}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion of a shared\+\_\+ptr. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the shared\+\_\+ptr to the object which should be converted.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a shared\+\_\+ptr to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. This pointer shares ownership with the input pointer. 
\end{DoxyReturn}
\Hypertarget{namespacegko_a6d9d11fc6d039b7715a96d3ef9841898}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [6/7]}}
{\footnotesize\ttfamily \label{namespacegko_a6d9d11fc6d039b7715a96d3ef9841898} 
template$<$typename T, typename U$>$ \\
std::\+unique\+\_\+ptr$<$ std::\+decay\+\_\+t$<$ T $>$ $>$ gko::\+as (\begin{DoxyParamCaption}\item[{std::\+unique\+\_\+ptr$<$ U $>$ \&\&}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion of a unique\+\_\+ptr. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the unique\+\_\+ptr to the object which should be converted. If successful, it will be reset to a nullptr.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a unique\+\_\+ptr to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. 
\end{DoxyReturn}
\Hypertarget{namespacegko_ae3e355a655feea026a7c46814d37a9c9}\index{gko@{gko}!as@{as}}
\index{as@{as}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{as()}{as()}\hspace{0.1cm}{\footnotesize\ttfamily [7/7]}}
{\footnotesize\ttfamily \label{namespacegko_ae3e355a655feea026a7c46814d37a9c9} 
template$<$typename T, typename U$>$ \\
std::\+decay\+\_\+t$<$ T $>$ \texorpdfstring{$\ast$}{*} gko::\+as (\begin{DoxyParamCaption}\item[{U \texorpdfstring{$\ast$}{*}}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Performs polymorphic type conversion. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & requested result type \\
\hline
{\em U} & static type of the passed object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em obj} & the object which should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If successful, returns a pointer to the subtype, otherwise throws \doxylink{classgko_1_1NotSupported}{Not\+Supported}. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1ScaledIdentityAddable_a43d679d3a9857780f9566bbc61c6b847}{gko::\+\+Scaled\+Identity\+Addable::\+add\+\_\+scaled\+\_\+identity()}}, \doxymbox{\hyperlink{namespacegko_a3c360489a4f78b1fc92f75f27b3b7e13}{as()}}, \doxymbox{\hyperlink{namespacegko_a2f94c3fc158c7bed4506a5fa03746e09}{as()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a871b1f3209b309c88af7d61fdae865a5}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+conj\+\_\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_aa3123328a37f3680a5a07edb4f40b23a}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+conj\+\_\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Isai_ae50f779e814c9aa6683c5c1133ceb694}{gko::\+preconditioner::\+\+Isai$<$ Isai\+Type==isai\+\_\+type::\+general ? isai\+\_\+type::\+general :\+\+Isai\+Type==isai\+\_\+type::\+spd ? isai\+\_\+type::\+spd :\+\+Isai\+Type==isai\+\_\+type::\+lower ? isai\+\_\+type::\+upper :\+isai\+\_\+type::\+lower, Value\+Type, Index\+Type $>$::\+get\+\_\+approximate\+\_\+inverse()}}, \doxymbox{\hyperlink{classgko_1_1Permutable_aab402585e8e7850744d1b3b0baec60a3}{gko::\+\+Permutable$<$ Index\+Type $>$::\+inverse\+\_\+permute()}}, \doxymbox{\hyperlink{classgko_1_1Permutable_ae4fb8d127c4942e648eef400117039de}{gko::\+\+Permutable$<$ Index\+Type $>$::\+permute()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a50377c364b6b4b472cd5a58d94b0aacc}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+transpose()}}, and \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_a617173d48bdd4489c68273e2b9e00e15}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+transpose()}}.

\Hypertarget{namespacegko_a93065a86872e6511b701b73b75823483}\index{gko@{gko}!ceildiv@{ceildiv}}
\index{ceildiv@{ceildiv}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{ceildiv()}{ceildiv()}}
{\footnotesize\ttfamily \label{namespacegko_a93065a86872e6511b701b73b75823483} 
\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} gko::\+ceildiv (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}}]{num}{, }\item[{\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}}]{den}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Performs integer division with rounding up. 


\begin{DoxyParams}{Parameters}
{\em num} & numerator \\
\hline
{\em den} & denominator\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
returns the ceiled quotient. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_ac0413220bebe762defe180d900240fac}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+clac\+\_\+size()}}, \doxymbox{\hyperlink{structgko_1_1preconditioner_1_1block__interleaved__storage__scheme_ae46b38432c1e1b87d5743a649f2cfe84}{gko::\+preconditioner::\+block\+\_\+interleaved\+\_\+storage\+\_\+scheme$<$ Index\+Type $>$::\+compute\+\_\+storage\+\_\+space()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_a0849e0d936dda023474673d7316e73d8}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+process()}}.

\Hypertarget{namespacegko_aa194e34282452493231ca7b01ffb5e64}\index{gko@{gko}!clone@{clone}}
\index{clone@{clone}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{clone()}{clone()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_aa194e34282452493231ca7b01ffb5e64} 
template$<$typename Pointer$>$ \\
detail::\+cloned\+\_\+type$<$ Pointer $>$ gko::\+clone (\begin{DoxyParamCaption}\item[{const Pointer \&}]{p}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates a unique clone of the object pointed to by {\ttfamily p}. 

The pointee (i.\+e. {\ttfamily \texorpdfstring{$\ast$}{*}p}) needs to have a clone method that returns a std::\+unique\+\_\+ptr in order for this method to work.


\begin{DoxyTemplParams}{Template Parameters}
{\em Pointer} & type of pointer to the object (plain or smart pointer)\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em p} & a pointer to the object\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The difference between this function and directly calling Lin\+Op::\+clone() is that this one preserves the static type of the object. 
\end{DoxyNote}


Referenced by \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a2bde451992151de66f7d6c15818914cb}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+operator=()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a375dcf8ab16c15bbb4d4a1d79d9524a1}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+operator=()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_aed03c680a2a5715409de7ff9d75b127a}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+operator=()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_ace08d776bf5ba2f0f89f37f3bb2035e5}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+operator=()}}, \doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionable_ad1f52e213256cd7c50811787dfcf4288}{gko::\+solver::\+\+Enable\+Preconditionable$<$ Derived\+Type $>$::\+set\+\_\+preconditioner()}}, and \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase_a5e96a31681a2bc03fffb2d76e7a7da12}{gko::\+solver::\+\+Enable\+Iterative\+Base$<$ Derived\+Type $>$::\+set\+\_\+stop\+\_\+criterion\+\_\+factory()}}.

\Hypertarget{namespacegko_a7412910f84951c1a23563e758eb01282}\index{gko@{gko}!clone@{clone}}
\index{clone@{clone}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{clone()}{clone()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a7412910f84951c1a23563e758eb01282} 
template$<$typename Pointer$>$ \\
detail::\+cloned\+\_\+type$<$ Pointer $>$ gko::\+clone (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const Pointer \&}]{p}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates a unique clone of the object pointed to by {\ttfamily p} on \doxylink{classgko_1_1Executor}{Executor} {\ttfamily exec}. 

The pointee (i.\+e. {\ttfamily \texorpdfstring{$\ast$}{*}p}) needs to have a clone method that takes an executor and returns a std::\+unique\+\_\+ptr in order for this method to work.


\begin{DoxyTemplParams}{Template Parameters}
{\em Pointer} & type of pointer to the object (plain or smart pointer)\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the cloned object should be stored \\
\hline
{\em p} & a pointer to the object\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The difference between this function and directly calling Lin\+Op::\+clone() is that this one preserves the static type of the object. 
\end{DoxyNote}
\Hypertarget{namespacegko_ad79fd5c1fb85403796c40c0a916a15f2}\index{gko@{gko}!conj@{conj}}
\index{conj@{conj}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{conj()}{conj()}}
{\footnotesize\ttfamily \label{namespacegko_ad79fd5c1fb85403796c40c0a916a15f2} 
template$<$typename T$>$ \\
auto gko::\+conj (\begin{DoxyParamCaption}\item[{const T \&}]{x}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the conjugate of an object. 


\begin{DoxyParams}{Parameters}
{\em x} & the number to conjugate\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
conjugate of the object (by default, the object itself) 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{namespacegko_abbb55709b10d707b2cbef803832aa834}{squared\+\_\+norm()}}.

\Hypertarget{namespacegko_a7cb327baf9ca9018d06fa5554464d29d}\index{gko@{gko}!convert\_to@{convert\_to}}
\index{convert\_to@{convert\_to}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{convert\_to()}{convert\_to()}}
{\footnotesize\ttfamily \label{namespacegko_a7cb327baf9ca9018d06fa5554464d29d} 
virtual void gko::\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{result\+\_\+type \texorpdfstring{$\ast$}{*}}]{result}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Convertible\+To interface is used to mark that the implementer can be converted to the object of Result\+Type. 

This interface is used to enable conversions between polymorphic objects. To mark that an object of type {\ttfamily U} can be converted to an object of type {\ttfamily V}, {\ttfamily U} should implement Convertible\+To$<$\+V$>$. Then, the implementation of {\ttfamily \doxylink{classgko_1_1PolymorphicObject_a3c431a34c3ad724e1337b73165f1da9b}{Polymorphic\+Object::\+copy\+\_\+from}} automatically generated by {\ttfamily \doxylink{classgko_1_1EnablePolymorphicObject}{Enable\+Polymorphic\+Object}} mixin will use RTTI to figure out that {\ttfamily U} implements the interface and convert it using the convert\+\_\+to /\+ move\+\_\+to methods of the interface.

As an example, the following function:\+


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordtype}{void}\ my\_function(\textcolor{keyword}{const}\ U\ *u,\ V\ *v)\ \{}
\DoxyCodeLine{\ \ \ \ v-\/>copy\_from(u);}
\DoxyCodeLine{\}}

\end{DoxyCode}


will convert object {\ttfamily u} to object {\ttfamily v} by checking that {\ttfamily u} can be dynamically casted to {\ttfamily Convertible\+To\textbackslash{}\texorpdfstring{$<$}{<}V\textbackslash{}\texorpdfstring{$>$}{>}}, and calling Convertible\+To\texorpdfstring{$<$}{<}V\texorpdfstring{$>$}{>}::\+convert\+\_\+to(\+V\texorpdfstring{$\ast$}{*})\`{} to do the actual conversion.

In case {\ttfamily u} is passed as a unique\+\_\+ptr, call to {\ttfamily \doxylink{namespacegko_a7cb327baf9ca9018d06fa5554464d29d}{convert\+\_\+to}} will be replaced by a call to {\ttfamily \doxylink{namespacegko_a6fcc3453bf500454b56a5f2f196b871c}{move\+\_\+to}} and trigger move semantics.


\begin{DoxyTemplParams}{Template Parameters}
{\em Result\+Type} & the type to which the implementer can be converted to, has to be a subclass of \doxylink{classgko_1_1PolymorphicObject}{Polymorphic\+Object} \texorpdfstring{$\ast$}{*}/\+ template $<$typename Result\+Type$>$ class Convertible\+To \{ public:\+ using result\+\_\+type = Result\+Type;\\
\hline
\end{DoxyTemplParams}
virtual \texorpdfstring{$\sim$}{\string~}\+Convertible\+To() = default;

/\+\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} Converts the implementer to an object of type result\+\_\+type.


\begin{DoxyParams}{Parameters}
{\em result} & the object used to store the result of the conversion \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{namespacegko_a7cb327baf9ca9018d06fa5554464d29d}{convert\+\_\+to()}}, and \doxymbox{\hyperlink{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}{gko::\+ptr\+\_\+param$<$ T $>$::\+get()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a7cb327baf9ca9018d06fa5554464d29d}{convert\+\_\+to()}}.

\Hypertarget{namespacegko_ae27269c18937d9a8866b431aff94433e}\index{gko@{gko}!copy\_and\_convert\_to@{copy\_and\_convert\_to}}
\index{copy\_and\_convert\_to@{copy\_and\_convert\_to}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{copy\_and\_convert\_to()}{copy\_and\_convert\_to()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{namespacegko_ae27269c18937d9a8866b431aff94433e} 
template$<$typename R, typename T$>$ \\
std::\+unique\+\_\+ptr$<$ const R, std::\+function$<$ void(const R \texorpdfstring{$\ast$}{*})$>$ $>$ gko::\+copy\+\_\+and\+\_\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const T \texorpdfstring{$\ast$}{*}}]{obj}{}\end{DoxyParamCaption})}



Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec.    

If the object is already of the requested type and on the requested executor, the copy and conversion is avoided and a reference to the original object is returned instead.


\begin{DoxyTemplParams}{Template Parameters}
{\em R} & the type to which the object should be converted \\
\hline
{\em T} & the type of the input object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the result should be placed \\
\hline
{\em obj} & the object that should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a unique pointer (with dynamically bound deleter) to the converted object   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is a version of the function which adds the const qualifier to the result if the input had the same qualifier. 
\end{DoxyNote}
\Hypertarget{namespacegko_ab6954ded2bc4730777068facde07983a}\index{gko@{gko}!copy\_and\_convert\_to@{copy\_and\_convert\_to}}
\index{copy\_and\_convert\_to@{copy\_and\_convert\_to}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{copy\_and\_convert\_to()}{copy\_and\_convert\_to()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{namespacegko_ab6954ded2bc4730777068facde07983a} 
template$<$typename R, typename T$>$ \\
std::\+shared\+\_\+ptr$<$ const R $>$ gko::\+copy\+\_\+and\+\_\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{std::\+shared\+\_\+ptr$<$ const T $>$}]{obj}{}\end{DoxyParamCaption})}



Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec.    

This is the version that takes in the std::\+shared\+\_\+ptr and returns a std::\+shared\+\_\+ptr

If the object is already of the requested type and on the requested executor, the copy and conversion is avoided and a reference to the original object is returned instead.


\begin{DoxyTemplParams}{Template Parameters}
{\em R} & the type to which the object should be converted \\
\hline
{\em T} & the type of the input object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the result should be placed \\
\hline
{\em obj} & the object that should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a shared pointer to the converted object   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is a version of the function which adds the const qualifier to the result if the input had the same qualifier. 
\end{DoxyNote}
\Hypertarget{namespacegko_a2c02ca75c7c97c556424bc2996510c83}\index{gko@{gko}!copy\_and\_convert\_to@{copy\_and\_convert\_to}}
\index{copy\_and\_convert\_to@{copy\_and\_convert\_to}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{copy\_and\_convert\_to()}{copy\_and\_convert\_to()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{namespacegko_a2c02ca75c7c97c556424bc2996510c83} 
template$<$typename R, typename T$>$ \\
std::\+shared\+\_\+ptr$<$ R $>$ gko::\+copy\+\_\+and\+\_\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{std::\+shared\+\_\+ptr$<$ T $>$}]{obj}{}\end{DoxyParamCaption})}



Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec. 

This is the version that takes in the std::\+shared\+\_\+ptr and returns a std::\+shared\+\_\+ptr

If the object is already of the requested type and on the requested executor, the copy and conversion is avoided and a reference to the original object is returned instead.


\begin{DoxyTemplParams}{Template Parameters}
{\em R} & the type to which the object should be converted \\
\hline
{\em T} & the type of the input object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the result should be placed \\
\hline
{\em obj} & the object that should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a shared pointer to the converted object 
\end{DoxyReturn}
\Hypertarget{namespacegko_ae4916d7f4a38162b665935d0adfb3825}\index{gko@{gko}!copy\_and\_convert\_to@{copy\_and\_convert\_to}}
\index{copy\_and\_convert\_to@{copy\_and\_convert\_to}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{copy\_and\_convert\_to()}{copy\_and\_convert\_to()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{namespacegko_ae4916d7f4a38162b665935d0adfb3825} 
template$<$typename R, typename T$>$ \\
std::\+unique\+\_\+ptr$<$ R, std::\+function$<$ void(R \texorpdfstring{$\ast$}{*})$>$ $>$ gko::\+copy\+\_\+and\+\_\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{T \texorpdfstring{$\ast$}{*}}]{obj}{}\end{DoxyParamCaption})}



Converts the object to R and places it on \doxylink{classgko_1_1Executor}{Executor} exec. 

If the object is already of the requested type and on the requested executor, the copy and conversion is avoided and a reference to the original object is returned instead.


\begin{DoxyTemplParams}{Template Parameters}
{\em R} & the type to which the object should be converted \\
\hline
{\em T} & the type of the input object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the result should be placed \\
\hline
{\em obj} & the object that should be converted\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a unique pointer (with dynamically bound deleter) to the converted object 
\end{DoxyReturn}
\Hypertarget{namespacegko_a4eea40e4123a3fdb60fcd92f902c6d6d}\index{gko@{gko}!get\_significant\_bit@{get\_significant\_bit}}
\index{get\_significant\_bit@{get\_significant\_bit}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{get\_significant\_bit()}{get\_significant\_bit()}}
{\footnotesize\ttfamily \label{namespacegko_a4eea40e4123a3fdb60fcd92f902c6d6d} 
template$<$typename T$>$ \\
\doxymbox{\hyperlink{namespacegko_a7cf056fa904140b50658e0637fba428c}{uint32}} gko::\+get\+\_\+significant\+\_\+bit (\begin{DoxyParamCaption}\item[{const T \&}]{n}{, }\item[{\doxymbox{\hyperlink{namespacegko_a7cf056fa904140b50658e0637fba428c}{uint32}}}]{hint}{ = {\ttfamily 0u}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Returns the position of the most significant bit of the number. 

This is the same as the rounded down base-\/2 logarithm of the number.


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & a numeric type supporting bit shift and comparison\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em n} & a number \\
\hline
{\em hint} & a lower bound for the position o the significant bit\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
maximum of {\ttfamily hint} and the significant bit position of {\ttfamily n} 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a4eea40e4123a3fdb60fcd92f902c6d6d}{get\+\_\+significant\+\_\+bit()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a4eea40e4123a3fdb60fcd92f902c6d6d}{get\+\_\+significant\+\_\+bit()}}.

\Hypertarget{namespacegko_ad39645fe8148a8a812a9528865a77600}\index{gko@{gko}!get\_superior\_power@{get\_superior\_power}}
\index{get\_superior\_power@{get\_superior\_power}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{get\_superior\_power()}{get\_superior\_power()}}
{\footnotesize\ttfamily \label{namespacegko_ad39645fe8148a8a812a9528865a77600} 
template$<$typename T$>$ \\
T gko::\+get\+\_\+superior\+\_\+power (\begin{DoxyParamCaption}\item[{const T \&}]{base}{, }\item[{const T \&}]{limit}{, }\item[{const T \&}]{hint}{ = {\ttfamily T\{1\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Returns the smallest power of {\ttfamily base} not smaller than {\ttfamily limit}. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & a numeric type supporting multiplication and comparison\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em base} & the base of the power to be returned \\
\hline
{\em limit} & the lower limit on the size of the power returned \\
\hline
{\em hint} & a lower bound on the result, has to be a power of base\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the smallest power of {\ttfamily base} not smaller than {\ttfamily limit} 
\end{DoxyReturn}
\Hypertarget{namespacegko_abc3b2c363d6eb3d9837a6d9efa589844}\index{gko@{gko}!give@{give}}
\index{give@{give}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{give()}{give()}}
{\footnotesize\ttfamily \label{namespacegko_abc3b2c363d6eb3d9837a6d9efa589844} 
template$<$typename Owning\+Pointer$>$ \\
std::\+remove\+\_\+reference$<$ Owning\+Pointer $>$::\+type \&\& gko::\+give (\begin{DoxyParamCaption}\item[{Owning\+Pointer \&\&}]{p}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Marks that the object pointed to by {\ttfamily p} can be given to the callee. 

Effectively calls {\ttfamily std::\+move(p)}.


\begin{DoxyTemplParams}{Template Parameters}
{\em Owning\+Pointer} & type of pointer with ownership to the object (has to be a smart pointer)\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em p} & a pointer to the object\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The original pointer {\ttfamily p} becomes invalid after this call. 
\end{DoxyNote}
\Hypertarget{namespacegko_a795f649e3744fbfe128aec0b0f928aaa}\index{gko@{gko}!imag@{imag}}
\index{imag@{imag}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{imag()}{imag()}}
{\footnotesize\ttfamily \label{namespacegko_a795f649e3744fbfe128aec0b0f928aaa} 
template$<$typename T$>$ \\
auto gko::\+imag (\begin{DoxyParamCaption}\item[{const T \&}]{x}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the imaginary part of the object. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em x} & the object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
imaginary part of the object (by default, \doxylink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero$<$\+T$>$()}) 
\end{DoxyReturn}
\Hypertarget{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}\index{gko@{gko}!is\_complex@{is\_complex}}
\index{is\_complex@{is\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_complex()}{is\_complex()}}
{\footnotesize\ttfamily \label{namespacegko_a9b3e79911bb6145d7ba865dbe436b915} 
template$<$typename T$>$ \\
bool gko::\+is\+\_\+complex (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Checks if T is a complex type. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to check\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if T is a complex type, {\ttfamily false} otherwise 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a76b1f78aad396f2a87ae070e0b11c1f3}{gko::\+experimental::\+distributed::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a87ee066b077fed30ab6e2da949faef6e}{gko::\+experimental::\+distributed::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a6348d5cfc6451aa9f12509e5658de943}{gko::\+experimental::\+distributed::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_aaebbe93d733274398213df2d3acf1b79}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_a24dd55a9e5d991204024c68a501cdb3e}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, and \doxymbox{\hyperlink{namespacegko_a98c5a37c89e32c0f2b567f8e73870e3a}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}.

\Hypertarget{namespacegko_a6881ebae53e15cb88342c0540d953f59}\index{gko@{gko}!is\_complex\_or\_scalar@{is\_complex\_or\_scalar}}
\index{is\_complex\_or\_scalar@{is\_complex\_or\_scalar}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_complex\_or\_scalar()}{is\_complex\_or\_scalar()}}
{\footnotesize\ttfamily \label{namespacegko_a6881ebae53e15cb88342c0540d953f59} 
template$<$typename T$>$ \\
bool gko::\+is\+\_\+complex\+\_\+or\+\_\+scalar (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Checks if T is a complex/\+scalar type. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type to check\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if T is a complex/\+scalar type, {\ttfamily false} otherwise 
\end{DoxyReturn}
\Hypertarget{namespacegko_aafd1826b8d8325e5eadec7c9568dbc14}\index{gko@{gko}!is\_finite@{is\_finite}}
\index{is\_finite@{is\_finite}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_finite()}{is\_finite()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_aafd1826b8d8325e5eadec7c9568dbc14} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ gko::\+is\+\_\+finite (\begin{DoxyParamCaption}\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Checks if all components of a complex value are finite, meaning they are neither +/\+-\/ infinity nor NaN. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & complex type of the value to check\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em value} & complex value to check\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if both components of the given value are finite, meaning they are neither +/\+-\/ infinity nor NaN. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a01e4cc92b86977c60de3fe3ee991fa40}{is\+\_\+finite()}}.

\Hypertarget{namespacegko_a01e4cc92b86977c60de3fe3ee991fa40}\index{gko@{gko}!is\_finite@{is\_finite}}
\index{is\_finite@{is\_finite}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_finite()}{is\_finite()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a01e4cc92b86977c60de3fe3ee991fa40} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ gko::\+is\+\_\+finite (\begin{DoxyParamCaption}\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Checks if a floating point number is finite, meaning it is neither +/\+-\/ infinity nor NaN. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the value to check\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em value} & value to check\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if the value is finite, meaning it are neither +/\+-\/ infinity nor NaN. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a0cb7d0ece3444fcf3a7ebd82e1cb0a69}{abs()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_aafd1826b8d8325e5eadec7c9568dbc14}{is\+\_\+finite()}}.

\Hypertarget{namespacegko_acff21f04b9f0d01bf5fc5d8da3d939e0}\index{gko@{gko}!is\_nan@{is\_nan}}
\index{is\_nan@{is\_nan}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_nan()}{is\_nan()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_acff21f04b9f0d01bf5fc5d8da3d939e0} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ gko::\+is\+\_\+nan (\begin{DoxyParamCaption}\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Checks if any component of a complex value is NaN. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & complex type of the value to check\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em value} & complex value to check\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if any component of the given value is NaN. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a6f943e1343264921351afce70b33009a}{is\+\_\+nan()}}.

\Hypertarget{namespacegko_a6f943e1343264921351afce70b33009a}\index{gko@{gko}!is\_nan@{is\_nan}}
\index{is\_nan@{is\_nan}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_nan()}{is\_nan()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a6f943e1343264921351afce70b33009a} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, bool $>$ gko::\+is\+\_\+nan (\begin{DoxyParamCaption}\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Checks if a floating point number is NaN. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the value to check\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em value} & value to check\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if the value is NaN. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a6f943e1343264921351afce70b33009a}{is\+\_\+nan()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a6f943e1343264921351afce70b33009a}{is\+\_\+nan()}}.

\Hypertarget{namespacegko_aef9b29733e6eb45475a2b84f79a6d012}\index{gko@{gko}!is\_nonzero@{is\_nonzero}}
\index{is\_nonzero@{is\_nonzero}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_nonzero()}{is\_nonzero()}}
{\footnotesize\ttfamily \label{namespacegko_aef9b29733e6eb45475a2b84f79a6d012} 
template$<$typename T$>$ \\
bool gko::\+is\+\_\+nonzero (\begin{DoxyParamCaption}\item[{T}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns true if and only if the given value is not zero. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the type of the value\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em value} & the given value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true iff the given value is not zero, i.\+e. {\ttfamily value != \doxylink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero}\texorpdfstring{$<$}{<}T\texorpdfstring{$>$}{>}()} 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero()}}.



Referenced by \doxymbox{\hyperlink{structgko_1_1matrix__data_a307091117617a342b9e576bcc9dd3c80}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+diag()}}, \doxymbox{\hyperlink{structgko_1_1matrix__data_a380d2b8207621f3c997804afa6d729af}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+matrix\+\_\+data()}}, \doxymbox{\hyperlink{structgko_1_1matrix__data_aea89944190aba3ace872bf31fd98fd3d}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+matrix\+\_\+data()}}, and \doxymbox{\hyperlink{structgko_1_1matrix__data_ac78cdd3da5bed7779109ba2569ce93fe}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+matrix\+\_\+data()}}.

\Hypertarget{namespacegko_a785976e6dbc9d8511325617ca46040bf}\index{gko@{gko}!is\_zero@{is\_zero}}
\index{is\_zero@{is\_zero}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{is\_zero()}{is\_zero()}}
{\footnotesize\ttfamily \label{namespacegko_a785976e6dbc9d8511325617ca46040bf} 
template$<$typename T$>$ \\
bool gko::\+is\+\_\+zero (\begin{DoxyParamCaption}\item[{T}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns true if and only if the given value is zero. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the type of the value\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em value} & the given value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true iff the given value is zero, i.\+e. {\ttfamily value == \doxylink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero}\texorpdfstring{$<$}{<}T\texorpdfstring{$>$}{>}()} 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero()}}.



Referenced by \doxymbox{\hyperlink{structgko_1_1matrix__data_a7b360eaf4c11e846c561f2910e2d425f}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+remove\+\_\+zeros()}}.

\Hypertarget{namespacegko_acc4ed16c876310fd8cffaca4d6c62664}\index{gko@{gko}!lend@{lend}}
\index{lend@{lend}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{lend()}{lend()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_acc4ed16c876310fd8cffaca4d6c62664} 
template$<$typename Pointer$>$ \\
std::\+enable\+\_\+if$<$!detail::\+have\+\_\+ownership\+\_\+s$<$ Pointer $>$::\+value, detail::\+pointee$<$ Pointer $>$ \texorpdfstring{$\ast$}{*} $>$::\+type gko::\+lend (\begin{DoxyParamCaption}\item[{const Pointer \&}]{p}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a non-\/owning (plain) pointer to the object pointed to by {\ttfamily p}. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Pointer} & type of pointer to the object (plain or smart pointer)\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em p} & a pointer to the object\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is the overload for non-\/owning (plain) pointers, that just returns {\ttfamily p}. 
\end{DoxyNote}


References \doxymbox{\hyperlink{namespacegko_aa011422ea11684b8b3121058cd6f8933}{lend()}}.

\Hypertarget{namespacegko_aa011422ea11684b8b3121058cd6f8933}\index{gko@{gko}!lend@{lend}}
\index{lend@{lend}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{lend()}{lend()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_aa011422ea11684b8b3121058cd6f8933} 
template$<$typename Pointer$>$ \\
std::\+enable\+\_\+if$<$ detail::\+have\+\_\+ownership\+\_\+s$<$ Pointer $>$::\+value, detail::\+pointee$<$ Pointer $>$ \texorpdfstring{$\ast$}{*} $>$::\+type gko::\+lend (\begin{DoxyParamCaption}\item[{const Pointer \&}]{p}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a non-\/owning (plain) pointer to the object pointed to by {\ttfamily p}. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Pointer} & type of pointer to the object (plain or smart pointer)\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em p} & a pointer to the object\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is the overload for owning (smart) pointers, that behaves the same as calling .get() on the smart pointer. 
\end{DoxyNote}


References \doxymbox{\hyperlink{namespacegko_aa011422ea11684b8b3121058cd6f8933}{lend()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_aa011422ea11684b8b3121058cd6f8933}{lend()}}.

\Hypertarget{namespacegko_a752922d291cf7c72e3042cc5b367aa60}\index{gko@{gko}!make\_array\_view@{make\_array\_view}}
\index{make\_array\_view@{make\_array\_view}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_array\_view()}{make\_array\_view()}}
{\footnotesize\ttfamily \label{namespacegko_a752922d291cf7c72e3042cc5b367aa60} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ gko::\+make\+\_\+array\+\_\+view (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{, }\item[{Value\+Type \texorpdfstring{$\ast$}{*}}]{data}{}\end{DoxyParamCaption})}



Helper function to create an array view deducing the value type. 


\begin{DoxyParams}{Parameters}
{\em exec} & the executor on which the array resides \\
\hline
{\em size} & the number of elements for the array \\
\hline
{\em data} & the pointer to the array we create a view on.\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the type of the array elements\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
{\ttfamily \doxylink{classgko_1_1array}{array}\texorpdfstring{$<$}{<}Value\+Type\texorpdfstring{$>$}{>}::view(exec, size, data)} 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a752922d291cf7c72e3042cc5b367aa60}{make\+\_\+array\+\_\+view()}}, and \doxymbox{\hyperlink{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635}{gko::\+array$<$ Value\+Type $>$::\+view()}}.



Referenced by \doxymbox{\hyperlink{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613}{gko::\+array$<$ Value\+Type $>$::\+copy\+\_\+to\+\_\+host()}}, and \doxymbox{\hyperlink{namespacegko_a752922d291cf7c72e3042cc5b367aa60}{make\+\_\+array\+\_\+view()}}.

\Hypertarget{namespacegko_a5309c321872a54fc9818ed9f5556eef4}\index{gko@{gko}!make\_const\_array\_view@{make\_const\_array\_view}}
\index{make\_const\_array\_view@{make\_const\_array\_view}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_const\_array\_view()}{make\_const\_array\_view()}}
{\footnotesize\ttfamily \label{namespacegko_a5309c321872a54fc9818ed9f5556eef4} 
template$<$typename Value\+Type$>$ \\
detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ gko::\+make\+\_\+const\+\_\+array\+\_\+view (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{, }\item[{const Value\+Type \texorpdfstring{$\ast$}{*}}]{data}{}\end{DoxyParamCaption})}



Helper function to create a const array view deducing the value type. 


\begin{DoxyParams}{Parameters}
{\em exec} & the executor on which the array resides \\
\hline
{\em size} & the number of elements for the array \\
\hline
{\em data} & the pointer to the array we create a view on.\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the type of the array elements\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
{\ttfamily \doxylink{classgko_1_1array}{array}\texorpdfstring{$<$}{<}Value\+Type\texorpdfstring{$>$}{>}::const\+\_\+view(exec, size, data)} 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a5c223b741d704bdef319279caaf54159}{gko::\+array$<$ Value\+Type $>$::\+const\+\_\+view()}}, and \doxymbox{\hyperlink{namespacegko_a5309c321872a54fc9818ed9f5556eef4}{make\+\_\+const\+\_\+array\+\_\+view()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a5309c321872a54fc9818ed9f5556eef4}{make\+\_\+const\+\_\+array\+\_\+view()}}.

\Hypertarget{namespacegko_a218d2e44e2d95fbe638ad98789fccb07}\index{gko@{gko}!make\_const\_dense\_view@{make\_const\_dense\_view}}
\index{make\_const\_dense\_view@{make\_const\_dense\_view}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_const\_dense\_view()}{make\_const\_dense\_view()}}
{\footnotesize\ttfamily \label{namespacegko_a218d2e44e2d95fbe638ad98789fccb07} 
template$<$typename Vec\+Ptr$>$ \\
std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ typename detail::\+pointee$<$ Vec\+Ptr $>$::\+value\+\_\+type $>$ $>$ gko::\+make\+\_\+const\+\_\+dense\+\_\+view (\begin{DoxyParamCaption}\item[{Vec\+Ptr \&\&}]{vector}{}\end{DoxyParamCaption})}



Creates a view of a given Dense vector. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Vec\+Ptr} & a (smart or raw) pointer to the vector.\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em vector} & the vector on which to create the view \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_abd682be340c3f29f55b73a630ca8ef64}{gko::\+matrix::\+\+Dense$<$ Value\+Type $>$::\+create\+\_\+const\+\_\+view\+\_\+of()}}.

\Hypertarget{namespacegko_a6d2de0c8ecbe3736e7d201e6a372be02}\index{gko@{gko}!make\_dense\_view@{make\_dense\_view}}
\index{make\_dense\_view@{make\_dense\_view}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_dense\_view()}{make\_dense\_view()}}
{\footnotesize\ttfamily \label{namespacegko_a6d2de0c8ecbe3736e7d201e6a372be02} 
template$<$typename Vec\+Ptr$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ typename detail::\+pointee$<$ Vec\+Ptr $>$::\+value\+\_\+type $>$ $>$ gko::\+make\+\_\+dense\+\_\+view (\begin{DoxyParamCaption}\item[{Vec\+Ptr \&\&}]{vector}{}\end{DoxyParamCaption})}



Creates a view of a given Dense vector. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Vec\+Ptr} & a (smart or raw) pointer to the vector.\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em vector} & the vector on which to create the view \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aa24190fef5a235843c610343e66ce141}{gko::\+matrix::\+\+Dense$<$ Value\+Type $>$::\+create\+\_\+view\+\_\+of()}}.

\Hypertarget{namespacegko_adf2f8602dc9453752a787b40bbf13fcf}\index{gko@{gko}!make\_temporary\_clone@{make\_temporary\_clone}}
\index{make\_temporary\_clone@{make\_temporary\_clone}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_temporary\_clone()}{make\_temporary\_clone()}}
{\footnotesize\ttfamily \label{namespacegko_adf2f8602dc9453752a787b40bbf13fcf} 
template$<$typename Ptr$>$ \\
detail::\+temporary\+\_\+clone$<$ detail::\+pointee$<$ Ptr $>$ $>$ gko::\+make\+\_\+temporary\+\_\+clone (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{Ptr \&\&}]{ptr}{}\end{DoxyParamCaption})}



Creates a temporary\+\_\+clone. 

This is a helper function which avoids the need to explicitly specify the type of the object, as would be the case if using the constructor of temporary\+\_\+clone.


\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the clone will be created \\
\hline
{\em ptr} & a pointer to the object of which the clone will be created\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Ptr} & the (raw or smart) pointer type to be temporarily cloned \\
\hline
\end{DoxyTemplParams}


Referenced by \doxymbox{\hyperlink{classgko_1_1ScaledIdentityAddable_a43d679d3a9857780f9566bbc61c6b847}{gko::\+\+Scaled\+Identity\+Addable::\+add\+\_\+scaled\+\_\+identity()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_a0f5d1c5bbd0ae8bb3a73eca78ff6d1b9}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_ae8e3f6ff61c48ea5e6b3b06e2bc23bd8}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_a8aba659b97d7bb9ad0c1a0d385c28f28}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1LinOp_acd4edb34e908c3fdeef43fe15e10625d}{gko::\+\+Lin\+Op::\+apply()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_a3ed41ecd59dcfe1b805ed910fada56a9}{gko::\+matrix::\+\+Csr$<$ value\+\_\+type, index\+\_\+type $>$::\+inv\+\_\+scale()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_ad1db62aaad519a9774dde49ff411edde}{gko::\+matrix::\+\+Csr$<$ value\+\_\+type, index\+\_\+type $>$::\+scale()}}.

\Hypertarget{namespacegko_a53160e02553fceb89af3e58435de2aca}\index{gko@{gko}!make\_temporary\_conversion@{make\_temporary\_conversion}}
\index{make\_temporary\_conversion@{make\_temporary\_conversion}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_temporary\_conversion()}{make\_temporary\_conversion()}}
{\footnotesize\ttfamily \label{namespacegko_a53160e02553fceb89af3e58435de2aca} 
template$<$typename Value\+Type, typename Ptr$>$ \\
detail::\+temporary\+\_\+conversion$<$ std::\+conditional\+\_\+t$<$ std::\+is\+\_\+const$<$ detail::\+pointee$<$ Ptr $>$ $>$::\+value, const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ Value\+Type $>$, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense}}$<$ Value\+Type $>$ $>$ $>$ gko::\+make\+\_\+temporary\+\_\+conversion (\begin{DoxyParamCaption}\item[{Ptr \&\&}]{matrix}{}\end{DoxyParamCaption})}



Convert the given \doxylink{classgko_1_1LinOp}{Lin\+Op} from \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$...$>$} to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}. 

The conversion tries to convert the input \doxylink{classgko_1_1LinOp}{Lin\+Op} to all Dense types with value type recursively reachable by \doxylink{namespacegko_a2c2416a808014f8b0647d5e4ba42a735}{next\+\_\+precision\+\_\+base$<$...$>$} starting from the Value\+Type template parameter. This means that all real-\/to-\/real and complex-\/to-\/complex conversions for default precisions are being considered. If the input matrix is non-\/const, the contents of the modified converted object will be converted back to the input matrix when the returned object is destroyed. This may lead to a loss of precision!


\begin{DoxyParams}{Parameters}
{\em \doxylink{namespacegko_1_1matrix}{matrix}} & the input matrix which is supposed to be converted. It is wrapped unchanged if it is already of type \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}, otherwise it will be converted to this type if possible.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a detail::\+temporary\+\_\+conversion pointing to the (potentially converted) object.
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classgko_1_1NotSupported}{Not\+Supported}} & if the input matrix cannot be converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\\
\hline
\end{DoxyExceptions}

\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the value type into whose associated \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense} type to convert the input \doxylink{classgko_1_1LinOp}{Lin\+Op}. \\
\hline
\end{DoxyTemplParams}


Referenced by \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()}}, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a76b1f78aad396f2a87ae070e0b11c1f3}{gko::\+experimental::\+distributed::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a87ee066b077fed30ab6e2da949faef6e}{gko::\+experimental::\+distributed::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_aaebbe93d733274398213df2d3acf1b79}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_a24dd55a9e5d991204024c68a501cdb3e}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, and \doxymbox{\hyperlink{namespacegko_a98c5a37c89e32c0f2b567f8e73870e3a}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}.

\Hypertarget{namespacegko_a64c4f7d1a2e86dafc644d9d96f7f4514}\index{gko@{gko}!make\_temporary\_output\_clone@{make\_temporary\_output\_clone}}
\index{make\_temporary\_output\_clone@{make\_temporary\_output\_clone}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{make\_temporary\_output\_clone()}{make\_temporary\_output\_clone()}}
{\footnotesize\ttfamily \label{namespacegko_a64c4f7d1a2e86dafc644d9d96f7f4514} 
template$<$typename Ptr$>$ \\
detail::\+temporary\+\_\+clone$<$ detail::\+pointee$<$ Ptr $>$ $>$ gko::\+make\+\_\+temporary\+\_\+output\+\_\+clone (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{Ptr \&\&}]{ptr}{}\end{DoxyParamCaption})}



Creates a uninitialized temporary\+\_\+clone that will be copied back to the input afterwards. 

It can be used for output parameters to avoid an unnecessary copy in make\+\_\+temporary\+\_\+clone.

This is a helper function which avoids the need to explicitly specify the type of the object, as would be the case if using the constructor of temporary\+\_\+clone.


\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the uninitialized clone will be created \\
\hline
{\em ptr} & a pointer to the object of which the clone will be created\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Ptr} & the (raw or smart) pointer type to be temporarily cloned \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespacegko_af1812df45c6ec07780d579a12b64c753}\index{gko@{gko}!max@{max}}
\index{max@{max}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{max()}{max()}}
{\footnotesize\ttfamily \label{namespacegko_af1812df45c6ec07780d579a12b64c753} 
template$<$typename T$>$ \\
T gko::\+max (\begin{DoxyParamCaption}\item[{const T \&}]{x}{, }\item[{const T \&}]{y}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the larger of the arguments. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the arguments\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em x} & first argument \\
\hline
{\em y} & second argument\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
x \texorpdfstring{$>$}{>}= y ? x :\+ y 
\end{DoxyReturn}
\Hypertarget{namespacegko_aaaf8487194bcb40b528969c187a413a0}\index{gko@{gko}!min@{min}}
\index{min@{min}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{min()}{min()}}
{\footnotesize\ttfamily \label{namespacegko_aaaf8487194bcb40b528969c187a413a0} 
template$<$typename T$>$ \\
T gko::\+min (\begin{DoxyParamCaption}\item[{const T \&}]{x}{, }\item[{const T \&}]{y}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the smaller of the arguments. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the arguments\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em x} & first argument \\
\hline
{\em y} & second argument\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
x \texorpdfstring{$<$}{<}= y ? x :\+ y 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_ac0413220bebe762defe180d900240fac}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+clac\+\_\+size()}}.

\Hypertarget{namespacegko_a205901dcce27e1df970c569d46d87551}\index{gko@{gko}!mixed\_precision\_dispatch@{mixed\_precision\_dispatch}}
\index{mixed\_precision\_dispatch@{mixed\_precision\_dispatch}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{mixed\_precision\_dispatch()}{mixed\_precision\_dispatch()}}
{\footnotesize\ttfamily \label{namespacegko_a205901dcce27e1df970c569d46d87551} 
template$<$typename Value\+Type, typename Function$>$ \\
void gko::\+mixed\+\_\+precision\+\_\+dispatch (\begin{DoxyParamCaption}\item[{Function}]{fn}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{in}{, }\item[{\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{out}{}\end{DoxyParamCaption})}



Calls the given function with each given argument \doxylink{classgko_1_1LinOp}{Lin\+Op} converted into \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$} as parameters. 

If GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION is defined, this means that the function will be called with its dynamic type as a static type, so the (templated/\+generic) function will be instantiated with all pairs of Dense$<$\+Value\+Type$>$ and Dense$<$next\+\_\+precision\+\_\+base$<$\+Value\+Type$>$$>$ parameter types, and the appropriate overload will be called based on the dynamic type of the parameter.

If GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION is not defined, it will behave exactly like precision\+\_\+dispatch.


\begin{DoxyParams}{Parameters}
{\em fn} & the given function. It will be called with one const and one non-\/const \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$...$>$} parameter based on the dynamic type of the inputs (GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION) or of type \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$} (no GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION). \\
\hline
{\em in} & The first parameter to be cast (GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION) or converted (no GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION) and used to call {\ttfamily fn}. \\
\hline
{\em out} & The second parameter to be cast (GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION) or converted (no GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION) and used to call {\ttfamily fn}.\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the value type to use for the parameters of {\ttfamily fn} (no GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION). With GINKGO\+\_\+\+MIXED\+\_\+\+PRECISION enabled, it only matters whether this type is complex or real. \\
\hline
{\em Function} & the function pointer, lambda or other functor type to call with the converted arguments. \\
\hline
\end{DoxyTemplParams}


References \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89}{mixed\+\_\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}.

\Hypertarget{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89}\index{gko@{gko}!mixed\_precision\_dispatch\_real\_complex@{mixed\_precision\_dispatch\_real\_complex}}
\index{mixed\_precision\_dispatch\_real\_complex@{mixed\_precision\_dispatch\_real\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{mixed\_precision\_dispatch\_real\_complex()}{mixed\_precision\_dispatch\_real\_complex()}}
{\footnotesize\ttfamily \label{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89} 
template$<$typename Value\+Type, typename Function, std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex}}$<$ Value\+Type $>$()$>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ \\
void gko::\+mixed\+\_\+precision\+\_\+dispatch\+\_\+real\+\_\+complex (\begin{DoxyParamCaption}\item[{Function}]{fn}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{in}{, }\item[{\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{out}{}\end{DoxyParamCaption})}



Calls the given function with the given Lin\+Ops cast to their dynamic type \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. 

If Value\+Type is real and both {\ttfamily in} and {\ttfamily out} are complex, uses matrix::\+\+Dense::\+get\+\_\+real\+\_\+view() to convert them into real matrices after precision conversion.

\begin{DoxySeeAlso}{See also}
\doxylink{namespacegko_a205901dcce27e1df970c569d46d87551}{mixed\+\_\+precision\+\_\+dispatch()} 
\end{DoxySeeAlso}


References \doxymbox{\hyperlink{namespacegko_a205901dcce27e1df970c569d46d87551}{mixed\+\_\+precision\+\_\+dispatch()}}, and \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()}}.

\Hypertarget{namespacegko_a6fcc3453bf500454b56a5f2f196b871c}\index{gko@{gko}!move\_to@{move\_to}}
\index{move\_to@{move\_to}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{move\_to()}{move\_to()}}
{\footnotesize\ttfamily \label{namespacegko_a6fcc3453bf500454b56a5f2f196b871c} 
virtual void gko::\+move\+\_\+to (\begin{DoxyParamCaption}\item[{result\+\_\+type \texorpdfstring{$\ast$}{*}}]{result}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Converts the implementer to an object of type result\+\_\+type by moving data from this object. 

This method is used when the implementer is a temporary object, and move semantics can be used.


\begin{DoxyParams}{Parameters}
{\em result} & the object used to emplace the result of the conversion\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Convertible\+To::\+move\+\_\+to can be implemented by simply calling Convertible\+To::\+convert\+\_\+to. However, this operation can often be optimized by exploiting the fact that implementer\textquotesingle{}s data can be moved to the result. 
\end{DoxyNote}


References \doxymbox{\hyperlink{classgko_1_1ptr__param_ad1245c2636fdba26d3a3fab9fec5e068}{gko::\+ptr\+\_\+param$<$ T $>$::\+get()}}, and \doxymbox{\hyperlink{namespacegko_a6fcc3453bf500454b56a5f2f196b871c}{move\+\_\+to()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a6fcc3453bf500454b56a5f2f196b871c}{move\+\_\+to()}}.

\Hypertarget{namespacegko_a2d8c25cb4bc4a661a986b5cae340c96b}\index{gko@{gko}!nan@{nan}}
\index{nan@{nan}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{nan()}{nan()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_a2d8c25cb4bc4a661a986b5cae340c96b} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$ \doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, T $>$ gko::\+nan (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns a complex with both components quiet NaN. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the type of the object\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
complex\{NaN, NaN\}. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a70bf9f2c62b689f4f7e074392be0f828}{nan()}}.

\Hypertarget{namespacegko_a70bf9f2c62b689f4f7e074392be0f828}\index{gko@{gko}!nan@{nan}}
\index{nan@{nan}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{nan()}{nan()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a70bf9f2c62b689f4f7e074392be0f828} 
template$<$typename T$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$!\doxymbox{\hyperlink{namespacegko_a700d12db3a341bb7a46bede49e1d6715}{is\+\_\+complex\+\_\+s}}$<$ T $>$::\+value, T $>$ gko::\+nan (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns a quiet NaN of the given type. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the type of the object\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
NaN. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{namespacegko_a2d8c25cb4bc4a661a986b5cae340c96b}{nan()}}.

\Hypertarget{namespacegko_a0059e27f8f4bc348ff65c1e60caf47c8}\index{gko@{gko}!one@{one}}
\index{one@{one}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{one()}{one()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_a0059e27f8f4bc348ff65c1e60caf47c8} 
template$<$typename T$>$ \\
T gko::\+one (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the multiplicative identity for T. 

\begin{DoxyReturn}{Returns}
the multiplicative identity for T 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr_a0fd936bd502e00c49376761f7431a098}{gko::\+matrix::\+\+Sparsity\+Csr$<$ value\+\_\+type, index\+\_\+type $>$::\+create()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr_a2db2987c619853127494421e201dfe40}{gko::\+matrix::\+\+Sparsity\+Csr$<$ value\+\_\+type, index\+\_\+type $>$::\+create()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr_af741e8f6ed23720b65c5aa43068a69d9}{gko::\+matrix::\+\+Sparsity\+Csr$<$ value\+\_\+type, index\+\_\+type $>$::\+create\+\_\+const()}}, \doxymbox{\hyperlink{structgko_1_1preconditioner_1_1block__interleaved__storage__scheme_af5eee19f00b1cd4c378ac3410be72093}{gko::\+preconditioner::\+block\+\_\+interleaved\+\_\+storage\+\_\+scheme$<$ Index\+Type $>$::\+get\+\_\+group\+\_\+size()}}, \doxymbox{\hyperlink{namespacegko_ab4f16ecf0a759f46259cf9518f1e4568}{one()}}, and \doxymbox{\hyperlink{namespacegko_a7d18aa213befc4d1dac5dbc8eeed6e7d}{unit\+\_\+root()}}.

\Hypertarget{namespacegko_ab4f16ecf0a759f46259cf9518f1e4568}\index{gko@{gko}!one@{one}}
\index{one@{one}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{one()}{one()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_ab4f16ecf0a759f46259cf9518f1e4568} 
template$<$typename T$>$ \\
T gko::\+one (\begin{DoxyParamCaption}\item[{const T \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the multiplicative identity for T. 

\begin{DoxyReturn}{Returns}
the multiplicative identity for T
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This version takes an unused reference argument to avoid complicated calls like {\ttfamily \doxylink{namespacegko_a0059e27f8f4bc348ff65c1e60caf47c8}{one}\texorpdfstring{$<$}{<}decltype(x)\texorpdfstring{$>$}{>}()}. Instead, it allows {\ttfamily one(x)}. 
\end{DoxyNote}


References \doxymbox{\hyperlink{namespacegko_a0059e27f8f4bc348ff65c1e60caf47c8}{one()}}.

\Hypertarget{namespacegko_accf6e6291e57abe8d7d05968666a42e0}\index{gko@{gko}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_accf6e6291e57abe8d7d05968666a42e0} 
bool gko::\+operator!= (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&}]{x}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&}]{y}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Checks if two stopping statuses are different. 


\begin{DoxyParams}{Parameters}
{\em x} & a stopping status \\
\hline
{\em y} & a stopping status\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if and only if {\ttfamily !(x == y)} 
\end{DoxyReturn}
\Hypertarget{namespacegko_a61d408b4cd77aae6cac7a40c8307fddb}\index{gko@{gko}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a61d408b4cd77aae6cac7a40c8307fddb} 
bool gko::\+operator!= (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}}}]{x}{, }\item[{\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}}}]{y}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Checks if two \doxylink{classgko_1_1precision__reduction}{precision\+\_\+reduction} encodings are different. 


\begin{DoxyParams}{Parameters}
{\em x} & an encoding \\
\hline
{\em y} & an encoding\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if and only if {\ttfamily x} and {\ttfamily y} are different encodings. 
\end{DoxyReturn}
\Hypertarget{namespacegko_a48951a7770f9167cbb1e8e199a98dfab}\index{gko@{gko}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_a48951a7770f9167cbb1e8e199a98dfab} 
std::\+ostream \& gko::\+operator$<$$<$ (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{os}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1version}{version}} \&}]{ver}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Prints version information to a stream. 


\begin{DoxyParams}{Parameters}
{\em os} & output stream \\
\hline
{\em ver} & version structure\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
os 
\end{DoxyReturn}


References \doxymbox{\hyperlink{structgko_1_1version_a019ce1d31714612e0c77c8ef5eb4cfde}{gko::\+version::\+major}}, \doxymbox{\hyperlink{structgko_1_1version_abb548e6dca39e0a3718ecf13cafbba36}{gko::\+version::\+minor}}, \doxymbox{\hyperlink{structgko_1_1version_a7580f68f7cf0600bc620c47ed6330c95}{gko::\+version::\+patch}}, and \doxymbox{\hyperlink{structgko_1_1version_a1bd0eaa4d551c145ff9cd0c10e555ac3}{gko::\+version::\+tag}}.

\Hypertarget{namespacegko_a95f2df4e14987d3f8c17e90ea9d8d48a}\index{gko@{gko}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a95f2df4e14987d3f8c17e90ea9d8d48a} 
std::\+ostream \& gko::\+operator$<$$<$ (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{os}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1version__info}{version\+\_\+info}} \&}]{ver\+\_\+info}{}\end{DoxyParamCaption})}



Prints library version information in human-\/readable format to a stream. 


\begin{DoxyParams}{Parameters}
{\em os} & output stream \\
\hline
{\em ver\+\_\+info} & version information\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
os 
\end{DoxyReturn}
\Hypertarget{namespacegko_ad1f668258612e583add058f77ff91be3}\index{gko@{gko}!operator==@{operator==}}
\index{operator==@{operator==}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_ad1f668258612e583add058f77ff91be3} 
bool gko::\+operator== (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&}]{x}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} \&}]{y}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Checks if two stopping statuses are equivalent. 


\begin{DoxyParams}{Parameters}
{\em x} & a stopping status \\
\hline
{\em y} & a stopping status\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if and only if both {\ttfamily x} and {\ttfamily y} have the same mask and converged and finalized state 
\end{DoxyReturn}
\Hypertarget{namespacegko_a4dbafa6e062c2036991ec8c3f6b201cf}\index{gko@{gko}!operator==@{operator==}}
\index{operator==@{operator==}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a4dbafa6e062c2036991ec8c3f6b201cf} 
bool gko::\+operator== (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}}}]{x}{, }\item[{\doxymbox{\hyperlink{classgko_1_1precision__reduction}{precision\+\_\+reduction}}}]{y}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Checks if two \doxylink{classgko_1_1precision__reduction}{precision\+\_\+reduction} encodings are equal. 


\begin{DoxyParams}{Parameters}
{\em x} & an encoding \\
\hline
{\em y} & an encoding\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if and only if {\ttfamily x} and {\ttfamily y} are the same encodings 
\end{DoxyReturn}
\Hypertarget{namespacegko_a0603ce0a60183a6698ac9b523694fb68}\index{gko@{gko}!pi@{pi}}
\index{pi@{pi}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{pi()}{pi()}}
{\footnotesize\ttfamily \label{namespacegko_a0603ce0a60183a6698ac9b523694fb68} 
template$<$typename T$>$ \\
T gko::\+pi (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the value of pi. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the value type to return \\
\hline
\end{DoxyTemplParams}


Referenced by \doxymbox{\hyperlink{namespacegko_a7d18aa213befc4d1dac5dbc8eeed6e7d}{unit\+\_\+root()}}.

\Hypertarget{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}\index{gko@{gko}!precision\_dispatch@{precision\_dispatch}}
\index{precision\_dispatch@{precision\_dispatch}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{precision\_dispatch()}{precision\_dispatch()}}
{\footnotesize\ttfamily \label{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e} 
template$<$typename Value\+Type, typename Function, typename... Args$>$ \\
void gko::\+precision\+\_\+dispatch (\begin{DoxyParamCaption}\item[{Function}]{fn}{, }\item[{Args \texorpdfstring{$\ast$}{*}...}]{linops}{}\end{DoxyParamCaption})}



Calls the given function with each given argument \doxylink{classgko_1_1LinOp}{Lin\+Op} temporarily converted into \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$} as parameters. 


\begin{DoxyParams}{Parameters}
{\em fn} & the given function. It will be passed one (potentially const) \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} parameter per parameter in the parameter pack {\ttfamily linops}. \\
\hline
{\em linops} & the given arguments to be converted and passed on to fn.\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the value type to use for the parameters of {\ttfamily fn}. \\
\hline
{\em Function} & the function pointer, lambda or other functor type to call with the converted arguments. \\
\hline
{\em Args} & the argument type list. \\
\hline
\end{DoxyTemplParams}


References \doxymbox{\hyperlink{namespacegko_a53160e02553fceb89af3e58435de2aca}{make\+\_\+temporary\+\_\+conversion()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a205901dcce27e1df970c569d46d87551}{mixed\+\_\+precision\+\_\+dispatch()}}, \doxymbox{\hyperlink{namespacegko_a3b9785eed86179e15b8fb4e74f7e9f89}{mixed\+\_\+precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_aaebbe93d733274398213df2d3acf1b79}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_a24dd55a9e5d991204024c68a501cdb3e}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}, and \doxymbox{\hyperlink{namespacegko_a98c5a37c89e32c0f2b567f8e73870e3a}{precision\+\_\+dispatch\+\_\+real\+\_\+complex()}}.

\Hypertarget{namespacegko_aaebbe93d733274398213df2d3acf1b79}\index{gko@{gko}!precision\_dispatch\_real\_complex@{precision\_dispatch\_real\_complex}}
\index{precision\_dispatch\_real\_complex@{precision\_dispatch\_real\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{precision\_dispatch\_real\_complex()}{precision\_dispatch\_real\_complex()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{namespacegko_aaebbe93d733274398213df2d3acf1b79} 
template$<$typename Value\+Type, typename Function$>$ \\
void gko::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex (\begin{DoxyParamCaption}\item[{Function}]{fn}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{alpha}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{in}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{beta}{, }\item[{\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{out}{}\end{DoxyParamCaption})}



Calls the given function with the given Lin\+Ops temporarily converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. 

If Value\+Type is real and both {\ttfamily in} and {\ttfamily out} are complex, uses matrix::\+\+Dense::\+get\+\_\+real\+\_\+view() to convert them into real matrices after precision conversion.

\begin{DoxySeeAlso}{See also}
\doxylink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()} 
\end{DoxySeeAlso}


References \doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_a53160e02553fceb89af3e58435de2aca}{make\+\_\+temporary\+\_\+conversion()}}, and \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()}}.

\Hypertarget{namespacegko_a24dd55a9e5d991204024c68a501cdb3e}\index{gko@{gko}!precision\_dispatch\_real\_complex@{precision\_dispatch\_real\_complex}}
\index{precision\_dispatch\_real\_complex@{precision\_dispatch\_real\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{precision\_dispatch\_real\_complex()}{precision\_dispatch\_real\_complex()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{namespacegko_a24dd55a9e5d991204024c68a501cdb3e} 
template$<$typename Value\+Type, typename Function$>$ \\
void gko::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex (\begin{DoxyParamCaption}\item[{Function}]{fn}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{alpha}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{in}{, }\item[{\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{out}{}\end{DoxyParamCaption})}



Calls the given function with the given Lin\+Ops temporarily converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. 

If Value\+Type is real and both {\ttfamily in} and {\ttfamily out} are complex, uses \doxylink{classgko_1_1matrix_1_1Dense_af50b1c2ccd8a72823c523aa00bbaabf3}{matrix::\+\+Dense::\+create\+\_\+real\+\_\+view()} to convert them into real matrices after precision conversion.

\begin{DoxySeeAlso}{See also}
\doxylink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()} 
\end{DoxySeeAlso}


References \doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_a53160e02553fceb89af3e58435de2aca}{make\+\_\+temporary\+\_\+conversion()}}, and \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()}}.

\Hypertarget{namespacegko_a98c5a37c89e32c0f2b567f8e73870e3a}\index{gko@{gko}!precision\_dispatch\_real\_complex@{precision\_dispatch\_real\_complex}}
\index{precision\_dispatch\_real\_complex@{precision\_dispatch\_real\_complex}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{precision\_dispatch\_real\_complex()}{precision\_dispatch\_real\_complex()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{namespacegko_a98c5a37c89e32c0f2b567f8e73870e3a} 
template$<$typename Value\+Type, typename Function$>$ \\
void gko::\+precision\+\_\+dispatch\+\_\+real\+\_\+complex (\begin{DoxyParamCaption}\item[{Function}]{fn}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{in}{, }\item[{\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*}}]{out}{}\end{DoxyParamCaption})}



Calls the given function with the given Lin\+Ops temporarily converted to \doxylink{classgko_1_1matrix_1_1Dense}{matrix::\+\+Dense$<$\+Value\+Type$>$}\texorpdfstring{$\ast$}{*} as parameters. 

If Value\+Type is real and both input vectors are complex, uses \doxylink{classgko_1_1matrix_1_1Dense_af50b1c2ccd8a72823c523aa00bbaabf3}{matrix::\+\+Dense::\+create\+\_\+real\+\_\+view()} to convert them into real matrices after precision conversion.

\begin{DoxySeeAlso}{See also}
\doxylink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()} 
\end{DoxySeeAlso}


References \doxymbox{\hyperlink{namespacegko_a9b3e79911bb6145d7ba865dbe436b915}{is\+\_\+complex()}}, \doxymbox{\hyperlink{namespacegko_a53160e02553fceb89af3e58435de2aca}{make\+\_\+temporary\+\_\+conversion()}}, and \doxymbox{\hyperlink{namespacegko_a3c46f1caf8135f7492aa83d9ac3bc83e}{precision\+\_\+dispatch()}}.

\Hypertarget{namespacegko_abc58509ecdcb48399e12f9a081ed7545}\index{gko@{gko}!read@{read}}
\index{read@{read}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{read()}{read()}}
{\footnotesize\ttfamily \label{namespacegko_abc58509ecdcb48399e12f9a081ed7545} 
template$<$typename Matrix\+Type, typename Stream\+Type, typename... Matrix\+Args$>$ \\
std::\+unique\+\_\+ptr$<$ Matrix\+Type $>$ gko::\+read (\begin{DoxyParamCaption}\item[{Stream\+Type \&\&}]{is}{, }\item[{Matrix\+Args \&\&...}]{args}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Reads a matrix stored in matrix market format from an input stream. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Matrix\+Type} & a \doxylink{classgko_1_1ReadableFromMatrixData}{Readable\+From\+Matrix\+Data} \doxylink{classgko_1_1LinOp}{Lin\+Op} type used to store the matrix once it\textquotesingle{}s been read from disk. \\
\hline
{\em Stream\+Type} & type of stream used to write the data to \\
\hline
{\em Matrix\+Args} & additional argument types passed to Matrix\+Type constructor\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em is} & input stream from which to read the data \\
\hline
{\em args} & additional arguments passed to Matrix\+Type constructor\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Matrix\+Type \doxylink{classgko_1_1LinOp}{Lin\+Op} filled with data from filename 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_afddd8179d8034cce9a2f7e02bae33fd7}{read\+\_\+raw()}}.

\Hypertarget{namespacegko_a06b6aa3ec2d20b977d8730cc9cfdafd8}\index{gko@{gko}!read\_binary@{read\_binary}}
\index{read\_binary@{read\_binary}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{read\_binary()}{read\_binary()}}
{\footnotesize\ttfamily \label{namespacegko_a06b6aa3ec2d20b977d8730cc9cfdafd8} 
template$<$typename Matrix\+Type, typename Stream\+Type, typename... Matrix\+Args$>$ \\
std::\+unique\+\_\+ptr$<$ Matrix\+Type $>$ gko::\+read\+\_\+binary (\begin{DoxyParamCaption}\item[{Stream\+Type \&\&}]{is}{, }\item[{Matrix\+Args \&\&...}]{args}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Reads a matrix stored in binary format from an input stream. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Matrix\+Type} & a \doxylink{classgko_1_1ReadableFromMatrixData}{Readable\+From\+Matrix\+Data} \doxylink{classgko_1_1LinOp}{Lin\+Op} type used to store the matrix once it\textquotesingle{}s been read from disk. \\
\hline
{\em Stream\+Type} & type of stream used to write the data to \\
\hline
{\em Matrix\+Args} & additional argument types passed to Matrix\+Type constructor\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em is} & input stream from which to read the data \\
\hline
{\em args} & additional arguments passed to Matrix\+Type constructor\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Matrix\+Type \doxylink{classgko_1_1LinOp}{Lin\+Op} filled with data from filename 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a5e379ed0d74e7c7f8c33fbfe6816e697}{read\+\_\+binary\+\_\+raw()}}.

\Hypertarget{namespacegko_a5e379ed0d74e7c7f8c33fbfe6816e697}\index{gko@{gko}!read\_binary\_raw@{read\_binary\_raw}}
\index{read\_binary\_raw@{read\_binary\_raw}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{read\_binary\_raw()}{read\_binary\_raw()}}
{\footnotesize\ttfamily \label{namespacegko_a5e379ed0d74e7c7f8c33fbfe6816e697} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ gko::\+read\+\_\+binary\+\_\+raw (\begin{DoxyParamCaption}\item[{std::\+istream \&}]{is}{}\end{DoxyParamCaption})}



Reads a matrix stored in Ginkgo\textquotesingle{}s binary matrix format from an input stream. 

Note that this format depends on the processor\textquotesingle{}s endianness, so files from a big endian processor can\textquotesingle{}t be read from a little endian processor and vice-\/versa.

The binary format has the following structure (in system endianness):\+
\begin{DoxyEnumerate}
\item A 32 byte header consisting of 4 uint64\+\_\+t values:\+ magic = GINKGO\+\_\+\+\_\+:\+ The highest two bytes stand for value and index type. value type:\+ S (float), D (double), C (complex$<$float$>$), Z(complex$<$double$>$) index type:\+ I (\doxylink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}), L (\doxylink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}) num\+\_\+rows:\+ Number of rows num\+\_\+cols:\+ Number of columns num\+\_\+entries:\+ Number of (row, column, value) tuples to follow
\item Following are num\+\_\+entries blocks of size sizeof(\+Index\+Type) \texorpdfstring{$\ast$}{*} 2 + sizeof(\+Value\+Type). Each consists of a row index stored as Index\+Type, followed by a column index stored as Index\+Type and a value stored as Value\+Type.
\end{DoxyEnumerate}


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & type of matrix values \\
\hline
{\em Index\+Type} & type of matrix indexes\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em is} & input stream from which to read the data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure containing the matrix. The nonzero elements are sorted in lexicographic order of their (row, column) indexes.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is an advanced routine that will return the raw matrix data structure. Consider using \doxylink{namespacegko_a06b6aa3ec2d20b977d8730cc9cfdafd8}{gko::\+read\+\_\+binary} instead. 
\end{DoxyNote}


Referenced by \doxymbox{\hyperlink{namespacegko_a06b6aa3ec2d20b977d8730cc9cfdafd8}{read\+\_\+binary()}}.

\Hypertarget{namespacegko_a3c49cd22dbd4f0fa54597a950a145b63}\index{gko@{gko}!read\_generic@{read\_generic}}
\index{read\_generic@{read\_generic}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{read\_generic()}{read\_generic()}}
{\footnotesize\ttfamily \label{namespacegko_a3c49cd22dbd4f0fa54597a950a145b63} 
template$<$typename Matrix\+Type, typename Stream\+Type, typename... Matrix\+Args$>$ \\
std::\+unique\+\_\+ptr$<$ Matrix\+Type $>$ gko::\+read\+\_\+generic (\begin{DoxyParamCaption}\item[{Stream\+Type \&\&}]{is}{, }\item[{Matrix\+Args \&\&...}]{args}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Reads a matrix stored either in binary or matrix market format from an input stream. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Matrix\+Type} & a \doxylink{classgko_1_1ReadableFromMatrixData}{Readable\+From\+Matrix\+Data} \doxylink{classgko_1_1LinOp}{Lin\+Op} type used to store the matrix once it\textquotesingle{}s been read from disk. \\
\hline
{\em Stream\+Type} & type of stream used to write the data to \\
\hline
{\em Matrix\+Args} & additional argument types passed to Matrix\+Type constructor\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em is} & input stream from which to read the data \\
\hline
{\em args} & additional arguments passed to Matrix\+Type constructor\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A Matrix\+Type \doxylink{classgko_1_1LinOp}{Lin\+Op} filled with data from filename 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a70492b519a55d1d62a3a11f6b297ecd9}{read\+\_\+generic\+\_\+raw()}}.

\Hypertarget{namespacegko_a70492b519a55d1d62a3a11f6b297ecd9}\index{gko@{gko}!read\_generic\_raw@{read\_generic\_raw}}
\index{read\_generic\_raw@{read\_generic\_raw}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{read\_generic\_raw()}{read\_generic\_raw()}}
{\footnotesize\ttfamily \label{namespacegko_a70492b519a55d1d62a3a11f6b297ecd9} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ gko::\+read\+\_\+generic\+\_\+raw (\begin{DoxyParamCaption}\item[{std::\+istream \&}]{is}{}\end{DoxyParamCaption})}



Reads a matrix stored in either binary or matrix market format from an input stream. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & type of matrix values \\
\hline
{\em Index\+Type} & type of matrix indexes\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em is} & input stream from which to read the data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure containing the matrix. The nonzero elements are sorted in lexicographic order of their (row, column) indexes.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is an advanced routine that will return the raw matrix data structure. Consider using \doxylink{namespacegko_a3c49cd22dbd4f0fa54597a950a145b63}{gko::\+read\+\_\+generic} instead. 
\end{DoxyNote}


Referenced by \doxymbox{\hyperlink{namespacegko_a3c49cd22dbd4f0fa54597a950a145b63}{read\+\_\+generic()}}.

\Hypertarget{namespacegko_afddd8179d8034cce9a2f7e02bae33fd7}\index{gko@{gko}!read\_raw@{read\_raw}}
\index{read\_raw@{read\_raw}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{read\_raw()}{read\_raw()}}
{\footnotesize\ttfamily \label{namespacegko_afddd8179d8034cce9a2f7e02bae33fd7} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ gko::\+read\+\_\+raw (\begin{DoxyParamCaption}\item[{std::\+istream \&}]{is}{}\end{DoxyParamCaption})}



Reads a matrix stored in matrix market format from an input stream. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & type of matrix values \\
\hline
{\em Index\+Type} & type of matrix indexes\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em is} & input stream from which to read the data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure containing the matrix. The nonzero elements are sorted in lexicographic order of their (row, column) indexes.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is an advanced routine that will return the raw matrix data structure. Consider using \doxylink{namespacegko_abc58509ecdcb48399e12f9a081ed7545}{gko::\+read} instead. 
\end{DoxyNote}


Referenced by \doxymbox{\hyperlink{namespacegko_abc58509ecdcb48399e12f9a081ed7545}{read()}}.

\Hypertarget{namespacegko_af21648097306adbabc6234b4609ce297}\index{gko@{gko}!real@{real}}
\index{real@{real}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{real()}{real()}}
{\footnotesize\ttfamily \label{namespacegko_af21648097306adbabc6234b4609ce297} 
template$<$typename T$>$ \\
auto gko::\+real (\begin{DoxyParamCaption}\item[{const T \&}]{x}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the real part of the object. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the object\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em x} & the object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
real part of the object (by default, the object itself) 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1config_1_1pnode_a9348847c0a14ef8904fd0e4a9759efad}{gko::\+config::\+pnode::\+pnode()}}, and \doxymbox{\hyperlink{namespacegko_abbb55709b10d707b2cbef803832aa834}{squared\+\_\+norm()}}.

\Hypertarget{namespacegko_a718bb2876f514b73c900f72fcc9d464e}\index{gko@{gko}!reduce\_add@{reduce\_add}}
\index{reduce\_add@{reduce\_add}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{reduce\_add()}{reduce\_add()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_a718bb2876f514b73c900f72fcc9d464e} 
template$<$typename Value\+Type$>$ \\
void gko::\+reduce\+\_\+add (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \&}]{input\+\_\+arr}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \&}]{result}{}\end{DoxyParamCaption})}



Reduce (sum) the values in the array. 


\begin{DoxyTemplParams}{Template Parameters}
{\em The} & type of the input data\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}[1]{Parameters}
\doxymbox{\texttt{in}}  & {\em input\+\_\+arr} & the input array to be reduced \\
\hline
\doxymbox{\texttt{in,out}}  & {\em result} & the reduced value. The result is written into the first entry and the value in the first entry is used as the initial value for the reduce. \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{namespacegko_a12e62081e2511f958dc2c9f1cc73c11d}{reduce\+\_\+add()}}.

\Hypertarget{namespacegko_a12e62081e2511f958dc2c9f1cc73c11d}\index{gko@{gko}!reduce\_add@{reduce\_add}}
\index{reduce\_add@{reduce\_add}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{reduce\_add()}{reduce\_add()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a12e62081e2511f958dc2c9f1cc73c11d} 
template$<$typename Value\+Type$>$ \\
Value\+Type gko::\+reduce\+\_\+add (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Value\+Type $>$ \&}]{input\+\_\+arr}{, }\item[{const Value\+Type}]{init\+\_\+val}{ = {\ttfamily 0}}\end{DoxyParamCaption})}



Reduce (sum) the values in the array. 


\begin{DoxyTemplParams}{Template Parameters}
{\em The} & type of the input data\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}[1]{Parameters}
\doxymbox{\texttt{in}}  & {\em input\+\_\+arr} & the input array to be reduced \\
\hline
\doxymbox{\texttt{in}}  & {\em init\+\_\+val} & the initial value\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the reduced value 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a12e62081e2511f958dc2c9f1cc73c11d}{reduce\+\_\+add()}}.



Referenced by \doxymbox{\hyperlink{namespacegko_a718bb2876f514b73c900f72fcc9d464e}{reduce\+\_\+add()}}, and \doxymbox{\hyperlink{namespacegko_a12e62081e2511f958dc2c9f1cc73c11d}{reduce\+\_\+add()}}.

\Hypertarget{namespacegko_a8f5c64893cb6241b6c91c3aad724158f}\index{gko@{gko}!round\_down@{round\_down}}
\index{round\_down@{round\_down}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{round\_down()}{round\_down()}}
{\footnotesize\ttfamily \label{namespacegko_a8f5c64893cb6241b6c91c3aad724158f} 
template$<$typename T$>$ \\
\doxymbox{\hyperlink{namespacegko_a87a96a1b78352538d905c10518bf5571}{reduce\+\_\+precision}}$<$ T $>$ gko::\+round\+\_\+down (\begin{DoxyParamCaption}\item[{T}]{val}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Reduces the precision of the input parameter. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the original precision\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em val} & the value to round down\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the rounded down value 
\end{DoxyReturn}
\Hypertarget{namespacegko_a1a24c8b8654e0027471eee100e76e639}\index{gko@{gko}!round\_up@{round\_up}}
\index{round\_up@{round\_up}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{round\_up()}{round\_up()}}
{\footnotesize\ttfamily \label{namespacegko_a1a24c8b8654e0027471eee100e76e639} 
template$<$typename T$>$ \\
\doxymbox{\hyperlink{namespacegko_ad6883fe3514ba0b125a4fc26c94ea9d1}{increase\+\_\+precision}}$<$ T $>$ gko::\+round\+\_\+up (\begin{DoxyParamCaption}\item[{T}]{val}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Increases the precision of the input parameter. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the original precision\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em val} & the value to round up\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the rounded up value 
\end{DoxyReturn}
\Hypertarget{namespacegko_aa1470fdc2a75dcda76bea4b879a29886}\index{gko@{gko}!safe\_divide@{safe\_divide}}
\index{safe\_divide@{safe\_divide}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{safe\_divide()}{safe\_divide()}}
{\footnotesize\ttfamily \label{namespacegko_aa1470fdc2a75dcda76bea4b879a29886} 
template$<$typename T$>$ \\
T gko::\+safe\+\_\+divide (\begin{DoxyParamCaption}\item[{T}]{a}{, }\item[{T}]{b}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Computes the quotient of the given parameters, guarding against division by zero. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & value type of the parameters\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em a} & the dividend \\
\hline
{\em b} & the divisor\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value of {\ttfamily a /\+ b} if b is non-\/zero, zero otherwise. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero()}}.

\Hypertarget{namespacegko_ae99fdd8bfa5ac694adcb7297d432967e}\index{gko@{gko}!share@{share}}
\index{share@{share}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{share()}{share()}}
{\footnotesize\ttfamily \label{namespacegko_ae99fdd8bfa5ac694adcb7297d432967e} 
template$<$typename Owning\+Pointer$>$ \\
detail::\+shared\+\_\+type$<$ Owning\+Pointer $>$ gko::\+share (\begin{DoxyParamCaption}\item[{Owning\+Pointer \&\&}]{p}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Marks the object pointed to by {\ttfamily p} as shared. 

Effectively converts a pointer with ownership to std::\+shared\+\_\+ptr.


\begin{DoxyTemplParams}{Template Parameters}
{\em Owning\+Pointer} & type of pointer with ownership to the object (has to be a smart pointer)\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em p} & a pointer to the object. It must be a temporary or explicitly marked movable (rvalue reference).\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The original pointer {\ttfamily p} becomes invalid after this call. 
\end{DoxyNote}


Referenced by \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a871b1f3209b309c88af7d61fdae865a5}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+conj\+\_\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_aa3123328a37f3680a5a07edb4f40b23a}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+conj\+\_\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a50377c364b6b4b472cd5a58d94b0aacc}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+transpose()}}, and \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_a617173d48bdd4489c68273e2b9e00e15}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+transpose()}}.

\Hypertarget{namespacegko_abbb55709b10d707b2cbef803832aa834}\index{gko@{gko}!squared\_norm@{squared\_norm}}
\index{squared\_norm@{squared\_norm}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{squared\_norm()}{squared\_norm()}}
{\footnotesize\ttfamily \label{namespacegko_abbb55709b10d707b2cbef803832aa834} 
template$<$typename T$>$ \\
auto gko::\+squared\+\_\+norm (\begin{DoxyParamCaption}\item[{const T \&}]{x}{}\end{DoxyParamCaption}) -\/$>$ decltype(\doxymbox{\hyperlink{namespacegko_af21648097306adbabc6234b4609ce297}{real}}(\doxymbox{\hyperlink{namespacegko_ad79fd5c1fb85403796c40c0a916a15f2}{conj}}(x) \texorpdfstring{$\ast$}{*}x))\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the squared norm of the object. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of the object.\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
The squared norm of the object. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{namespacegko_ad79fd5c1fb85403796c40c0a916a15f2}{conj()}}, and \doxymbox{\hyperlink{namespacegko_af21648097306adbabc6234b4609ce297}{real()}}.

\Hypertarget{namespacegko_aacad7f87b38d3f26674ed034d442a1a0}\index{gko@{gko}!transpose@{transpose}}
\index{transpose@{transpose}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{transpose()}{transpose()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_aacad7f87b38d3f26674ed034d442a1a0} 
template$<$typename Dimension\+Type$>$ \\
\doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\+\_\+dim}}$<$ 2, Dimension\+Type $>$ gko::\+transpose (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\+\_\+dim}}$<$ 2, Dimension\+Type $>$ \&}]{input}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a \doxylink{structgko_1_1batch__dim}{batch\+\_\+dim} object with its dimensions swapped for batched operators. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Dimension\+Type} & datatype used to represent each dimension\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em dimensions} & original object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a \doxylink{structgko_1_1batch__dim}{batch\+\_\+dim} object with dimensions swapped 
\end{DoxyReturn}


References \doxymbox{\hyperlink{structgko_1_1batch__dim_a2e5b548457e59a551328cb10cc38a688}{gko::\+batch\+\_\+dim$<$ Dimensionality, Dimension\+Type $>$::\+get\+\_\+common\+\_\+size()}}, \doxymbox{\hyperlink{structgko_1_1batch__dim_a380f449cd6305c8baba95569627503b2}{gko::\+batch\+\_\+dim$<$ Dimensionality, Dimension\+Type $>$::\+get\+\_\+num\+\_\+batch\+\_\+items()}}, and \doxymbox{\hyperlink{namespacegko_aacad7f87b38d3f26674ed034d442a1a0}{transpose()}}.



Referenced by \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a871b1f3209b309c88af7d61fdae865a5}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+conj\+\_\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_aa3123328a37f3680a5a07edb4f40b23a}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+conj\+\_\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ic_a50377c364b6b4b472cd5a58d94b0aacc}{gko::\+preconditioner::\+\+Ic$<$ LSolver\+Type\+Or\+Value\+Type, Index\+Type $>$::\+transpose()}}, \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Ilu_a617173d48bdd4489c68273e2b9e00e15}{gko::\+preconditioner::\+\+Ilu$<$ LSolver\+Type\+Or\+Value\+Type, USolver\+Type\+Or\+Value\+Type, Reverse\+Apply, Index\+Type $>$::\+transpose()}}, and \doxymbox{\hyperlink{namespacegko_aacad7f87b38d3f26674ed034d442a1a0}{transpose()}}.

\Hypertarget{namespacegko_a471f1b79842d9b7e2e97d10d2eef5fee}\index{gko@{gko}!transpose@{transpose}}
\index{transpose@{transpose}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{transpose()}{transpose()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a471f1b79842d9b7e2e97d10d2eef5fee} 
template$<$typename Dimension\+Type$>$ \\
\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2, Dimension\+Type $>$ gko::\+transpose (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2, Dimension\+Type $>$ \&}]{dimensions}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Returns a \doxylink{structgko_1_1dim}{dim$<$2$>$} object with its dimensions swapped. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Dimension\+Type} & datatype used to represent each dimension\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em dimensions} & original object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a \doxylink{structgko_1_1dim}{dim$<$2$>$} object with its dimensions swapped 
\end{DoxyReturn}
\Hypertarget{namespacegko_a7d18aa213befc4d1dac5dbc8eeed6e7d}\index{gko@{gko}!unit\_root@{unit\_root}}
\index{unit\_root@{unit\_root}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{unit\_root()}{unit\_root()}}
{\footnotesize\ttfamily \label{namespacegko_a7d18aa213befc4d1dac5dbc8eeed6e7d} 
template$<$typename T$>$ \\
std::\+complex$<$ \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$ T $>$ $>$ gko::\+unit\+\_\+root (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}}]{n}{, }\item[{\doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}}]{k}{ = {\ttfamily 1}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the value of exp(2 \texorpdfstring{$\ast$}{*} pi \texorpdfstring{$\ast$}{*} i \texorpdfstring{$\ast$}{*} k /\+ n), i.\+e. 

an nth root of unity.


\begin{DoxyParams}{Parameters}
{\em n} & the denominator of the argument \\
\hline
{\em k} & the numerator of the argument. Defaults to 1.\\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em T} & the corresponding real value type. \\
\hline
\end{DoxyTemplParams}


References \doxymbox{\hyperlink{namespacegko_a0059e27f8f4bc348ff65c1e60caf47c8}{one()}}, and \doxymbox{\hyperlink{namespacegko_a0603ce0a60183a6698ac9b523694fb68}{pi()}}.

\Hypertarget{namespacegko_a537803d962d07cf43e1e0cbc9f6a3f8b}\index{gko@{gko}!with\_matrix\_type@{with\_matrix\_type}}
\index{with\_matrix\_type@{with\_matrix\_type}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{with\_matrix\_type()}{with\_matrix\_type()}}
{\footnotesize\ttfamily \label{namespacegko_a537803d962d07cf43e1e0cbc9f6a3f8b} 
template$<$template$<$ typename, typename $>$ class Matrix\+Type, typename... Args$>$ \\
auto gko::\+with\+\_\+matrix\+\_\+type (\begin{DoxyParamCaption}\item[{Args \&\&...}]{create\+\_\+args}{}\end{DoxyParamCaption})}



This function returns a type that delays a call to Matrix\+Type::\+create. 

It can be used to set the used value and index type, as well as the executor at a later stage.

For example, the following code creates first a temporary object, which is then used later to construct an operator of the previously defined base type:\+ 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{auto}\ type\ =\ \doxymbox{\hyperlink{namespacegko_a537803d962d07cf43e1e0cbc9f6a3f8b}{gko::with\_matrix\_type<gko::matrix::Csr>}}();}
\DoxyCodeLine{...}
\DoxyCodeLine{std::unique\_ptr<\doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}>\ concrete\_op}
\DoxyCodeLine{\textcolor{keywordflow}{if}(flag1)\{}
\DoxyCodeLine{\ \ concrete\_op\ =\ type.template\ create<double,\ int>(exec);}
\DoxyCodeLine{\}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\ \ concrete\_op\ =\ type.template\ create<float,\ int>(exec);}
\DoxyCodeLine{\}}

\end{DoxyCode}


\begin{DoxyNote}{Note}
This is mainly a helper function to specify the local matrix type for a \doxylink{classgko_1_1experimental_1_1distributed_1_1Matrix}{gko::\+experimental::\+distributed::\+\+Matrix} more easily.
\end{DoxyNote}

\begin{DoxyTemplParams}{Template Parameters}
{\em Matrix\+Type} & A template type that accepts two types, the first one will be set to the value type, the second one to the index type. \\
\hline
{\em Args} & Types of the arguments passed to Matrix\+Type::\+create.\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em create\+\_\+args} & arguments that will be forwarded to Matrix\+Type::\+create\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A type with a function {\ttfamily create\texorpdfstring{$<$}{<}value\+\_\+type, index\+\_\+type\texorpdfstring{$>$}{>}(executor)}. 
\end{DoxyReturn}
\Hypertarget{namespacegko_abc28c235c3fbbf3c495b1850c61746d2}\index{gko@{gko}!write@{write}}
\index{write@{write}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{write()}{write()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_abc28c235c3fbbf3c495b1850c61746d2} 
void gko::\+write (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{os}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{matrix}{}\end{DoxyParamCaption})}



Writes a \doxylink{classgko_1_1LinOp}{Lin\+Op} into an output stream in matrix market format. 

The matrix market format use coordinate format if the sparsity is less than 25\%. Otherwise, use array format.


\begin{DoxyParams}{Parameters}
{\em os} & output stream where the data is to be written \\
\hline
{\em \doxylink{namespacegko_1_1matrix}{matrix}} & the matrix to write \\
\hline
\end{DoxyParams}
\Hypertarget{namespacegko_af82d8f7795fefcf5f38a38895e316c02}\index{gko@{gko}!write@{write}}
\index{write@{write}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{write()}{write()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_af82d8f7795fefcf5f38a38895e316c02} 
template$<$typename Matrix\+Ptr\+Type, typename Stream\+Type, std::\+enable\+\_\+if\+\_\+t$<$!std::\+is\+\_\+same\+\_\+v$<$ std::\+remove\+\_\+cv\+\_\+t$<$ detail::\+pointee$<$ Matrix\+Ptr\+Type $>$ $>$, \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ $>$ \texorpdfstring{$\ast$}{*} = nullptr$>$ \\
void gko::\+write (\begin{DoxyParamCaption}\item[{Stream\+Type \&\&}]{os}{, }\item[{Matrix\+Ptr\+Type \&\&}]{matrix}{, }\item[{\doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}{layout\+\_\+type}}}]{layout}{ = {\ttfamily detail:\+:\+mtx\+\_\+io\+\_\+traits$<$~std:\+:\+remove\+\_\+cv\+\_\+t$<$detail:\+:\+pointee$<$MatrixPtrType$>$$>$$>$:\+:\+default\+\_\+layout}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Writes a matrix into an output stream in matrix market format. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Matrix\+Ptr\+Type} & a (smart or raw) pointer to a \doxylink{classgko_1_1WritableToMatrixData}{Writable\+To\+Matrix\+Data} object providing data to be written. \\
\hline
{\em Stream\+Type} & type of stream used to write the data to\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em os} & output stream where the data is to be written \\
\hline
{\em \doxylink{namespacegko_1_1matrix}{matrix}} & the matrix to write \\
\hline
{\em layout} & the layout used in the output \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{namespacegko_a2d4b63ce98a16dc2c48aacd534a7b8ba}{write\+\_\+raw()}}.

\Hypertarget{namespacegko_aba9ca89ef08421197d3dbf84b0ad884c}\index{gko@{gko}!write\_binary@{write\_binary}}
\index{write\_binary@{write\_binary}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{write\_binary()}{write\_binary()}}
{\footnotesize\ttfamily \label{namespacegko_aba9ca89ef08421197d3dbf84b0ad884c} 
template$<$typename Matrix\+Ptr\+Type, typename Stream\+Type$>$ \\
void gko::\+write\+\_\+binary (\begin{DoxyParamCaption}\item[{Stream\+Type \&\&}]{os}{, }\item[{Matrix\+Ptr\+Type \&\&}]{matrix}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Writes a matrix into an output stream in binary format. 

Note that this format depends on the processor\textquotesingle{}s endianness, so files from a big endian processor can\textquotesingle{}t be read from a little endian processor and vice-\/versa.


\begin{DoxyTemplParams}{Template Parameters}
{\em Matrix\+Ptr\+Type} & a (smart or raw) pointer to a \doxylink{classgko_1_1WritableToMatrixData}{Writable\+To\+Matrix\+Data} object providing data to be written. \\
\hline
{\em Stream\+Type} & type of stream used to write the data to\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em os} & output stream where the data is to be written \\
\hline
{\em \doxylink{namespacegko_1_1matrix}{matrix}} & the matrix to write \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{namespacegko_a3b27a0c0282115116c160884dc0a9468}{write\+\_\+binary\+\_\+raw()}}.

\Hypertarget{namespacegko_a3b27a0c0282115116c160884dc0a9468}\index{gko@{gko}!write\_binary\_raw@{write\_binary\_raw}}
\index{write\_binary\_raw@{write\_binary\_raw}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{write\_binary\_raw()}{write\_binary\_raw()}}
{\footnotesize\ttfamily \label{namespacegko_a3b27a0c0282115116c160884dc0a9468} 
template$<$typename Value\+Type, typename Index\+Type$>$ \\
void gko::\+write\+\_\+binary\+\_\+raw (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{os}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \&}]{data}{}\end{DoxyParamCaption})}



Writes a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure to a stream in binary format. 

Note that this format depends on the processor\textquotesingle{}s endianness, so files from a big endian processor can\textquotesingle{}t be read from a little endian processor and vice-\/versa.


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & type of matrix values \\
\hline
{\em Index\+Type} & type of matrix indexes\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em os} & output stream where the data is to be written \\
\hline
{\em data} & the matrix data to write\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is an advanced routine that writes the raw matrix data structure. If you are trying to write an existing matrix, consider using \doxylink{namespacegko_aba9ca89ef08421197d3dbf84b0ad884c}{gko::\+write\+\_\+binary} instead. 
\end{DoxyNote}


Referenced by \doxymbox{\hyperlink{namespacegko_aba9ca89ef08421197d3dbf84b0ad884c}{write\+\_\+binary()}}.

\Hypertarget{namespacegko_a2d4b63ce98a16dc2c48aacd534a7b8ba}\index{gko@{gko}!write\_raw@{write\_raw}}
\index{write\_raw@{write\_raw}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{write\_raw()}{write\_raw()}}
{\footnotesize\ttfamily \label{namespacegko_a2d4b63ce98a16dc2c48aacd534a7b8ba} 
template$<$typename Value\+Type, typename Index\+Type$>$ \\
void gko::\+write\+\_\+raw (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{os}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, Index\+Type $>$ \&}]{data}{, }\item[{\doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68}{layout\+\_\+type}}}]{layout}{ = {\ttfamily \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af5d7aa3ba4929cc12dc51a92c59fabd3}{layout\+\_\+type::\+coordinate}}}}\end{DoxyParamCaption})}



Writes a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure to a stream in matrix market format. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & type of matrix values \\
\hline
{\em Index\+Type} & type of matrix indexes\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em os} & output stream where the data is to be written \\
\hline
{\em data} & the matrix data to write \\
\hline
{\em layout} & the layout used in the output\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is an advanced routine that writes the raw matrix data structure. If you are trying to write an existing matrix, consider using \doxylink{namespacegko_af82d8f7795fefcf5f38a38895e316c02}{gko::\+write} instead. 
\end{DoxyNote}


References \doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af5d7aa3ba4929cc12dc51a92c59fabd3}{coordinate}}.



Referenced by \doxymbox{\hyperlink{namespacegko_af82d8f7795fefcf5f38a38895e316c02}{write()}}.

\Hypertarget{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}\index{gko@{gko}!zero@{zero}}
\index{zero@{zero}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{zero()}{zero()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5} 
template$<$typename T$>$ \\
T gko::\+zero (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the additive identity for T. 

\begin{DoxyReturn}{Returns}
additive identity for T 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{namespacegko_a0cb7d0ece3444fcf3a7ebd82e1cb0a69}{abs()}}, \doxymbox{\hyperlink{structgko_1_1matrix__data_a84056e4ef41884be328ec78554074df1}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+cond()}}, \doxymbox{\hyperlink{classgko_1_1matrix__assembly__data_a55c82c5c099a6a77c0dfb3930148f09c}{gko::\+matrix\+\_\+assembly\+\_\+data$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+value()}}, \doxymbox{\hyperlink{namespacegko_aef9b29733e6eb45475a2b84f79a6d012}{is\+\_\+nonzero()}}, \doxymbox{\hyperlink{namespacegko_a785976e6dbc9d8511325617ca46040bf}{is\+\_\+zero()}}, \doxymbox{\hyperlink{namespacegko_aa1470fdc2a75dcda76bea4b879a29886}{safe\+\_\+divide()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1strategy__type_a307425e7a1b925583cec9d6dd30be301}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+strategy\+\_\+type::\+strategy\+\_\+type()}}, \doxymbox{\hyperlink{structgko_1_1matrix__data_aafdce2b510afe4e0aa0645a734f240a3}{gko::\+matrix\+\_\+data$<$ value\+\_\+type, index\+\_\+type $>$::\+sum\+\_\+duplicates()}}, and \doxymbox{\hyperlink{namespacegko_a9f1cd7be946b9a2c15b01b744cf3e732}{zero()}}.

\Hypertarget{namespacegko_a9f1cd7be946b9a2c15b01b744cf3e732}\index{gko@{gko}!zero@{zero}}
\index{zero@{zero}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{zero()}{zero()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespacegko_a9f1cd7be946b9a2c15b01b744cf3e732} 
template$<$typename T$>$ \\
T gko::\+zero (\begin{DoxyParamCaption}\item[{const T \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



Returns the additive identity for T. 

\begin{DoxyReturn}{Returns}
additive identity for T
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This version takes an unused reference argument to avoid complicated calls like {\ttfamily \doxylink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero}\texorpdfstring{$<$}{<}decltype(x)\texorpdfstring{$>$}{>}()}. Instead, it allows {\ttfamily zero(x)}. 
\end{DoxyNote}


References \doxymbox{\hyperlink{namespacegko_a70dbe01ff95c7b953d3d737424c6feb5}{zero()}}.



\label{doc-var-members}
\Hypertarget{namespacegko_doc-var-members}
\doxysubsection{Variable Documentation}
\Hypertarget{namespacegko_a75fb6095836eeaadd8ae9137b9d224c2}\index{gko@{gko}!default\_cuda\_alloc\_mode@{default\_cuda\_alloc\_mode}}
\index{default\_cuda\_alloc\_mode@{default\_cuda\_alloc\_mode}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{default\_cuda\_alloc\_mode}{default\_cuda\_alloc\_mode}}
{\footnotesize\ttfamily \label{namespacegko_a75fb6095836eeaadd8ae9137b9d224c2} 
\doxymbox{\hyperlink{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}{allocation\+\_\+mode}} gko::\+default\+\_\+cuda\+\_\+alloc\+\_\+mode\hspace{0.3cm}{\ttfamily [constexpr]}}

{\bfseries Initial value:\+}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =}
\DoxyCodeLine{allocation\_mode::unified\_global}

\end{DoxyCode}
\Hypertarget{namespacegko_a6dc4eaf27900ef925725bf542d705351}\index{gko@{gko}!default\_hip\_alloc\_mode@{default\_hip\_alloc\_mode}}
\index{default\_hip\_alloc\_mode@{default\_hip\_alloc\_mode}!gko@{gko}}
\doxysubsubsection{\texorpdfstring{default\_hip\_alloc\_mode}{default\_hip\_alloc\_mode}}
{\footnotesize\ttfamily \label{namespacegko_a6dc4eaf27900ef925725bf542d705351} 
\doxymbox{\hyperlink{namespacegko_afbed8e2cbd3ee4ca962e12f688858bdb}{allocation\+\_\+mode}} gko::\+default\+\_\+hip\+\_\+alloc\+\_\+mode\hspace{0.3cm}{\ttfamily [constexpr]}}

{\bfseries Initial value:\+}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =}
\DoxyCodeLine{allocation\_mode::unified\_global}

\end{DoxyCode}
