\doxysection{gko::\+matrix::\+Fbcsr\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1matrix_1_1Fbcsr}{}\label{classgko_1_1matrix_1_1Fbcsr}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}


Fixed-\/block compressed sparse row storage matrix format.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+matrix/\+fbcsr.\+hpp$>$}



Inheritance diagram for gko::\+matrix::\+Fbcsr\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1matrix_1_1Fbcsr__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+matrix::\+Fbcsr\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1matrix_1_1Fbcsr__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a0642bf109ecc9ee07f5413e318f4301c}\label{classgko_1_1matrix_1_1Fbcsr_a0642bf109ecc9ee07f5413e318f4301c} 
using {\bfseries value\+\_\+type} = Value\+Type
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_acc3e1b7f094690b7c7187b500736d9cd}\label{classgko_1_1matrix_1_1Fbcsr_acc3e1b7f094690b7c7187b500736d9cd} 
using {\bfseries index\+\_\+type} = Index\+Type
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a3b57970ff34a63f56f6851ac74d17ce6}\label{classgko_1_1matrix_1_1Fbcsr_a3b57970ff34a63f56f6851ac74d17ce6} 
using {\bfseries transposed\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}}$<$Value\+Type, Index\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a0a494d31a4b1e7e2fb0d57bce35a0d76}\label{classgko_1_1matrix_1_1Fbcsr_a0a494d31a4b1e7e2fb0d57bce35a0d76} 
using {\bfseries mat\+\_\+data} = \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$Value\+Type, Index\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a531f1ead8c96bd745cc7abe4c1dec594}\label{classgko_1_1matrix_1_1Fbcsr_a531f1ead8c96bd745cc7abe4c1dec594} 
using {\bfseries device\+\_\+mat\+\_\+data} = \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$Value\+Type, Index\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a2e87bdbb1a9fb92c930725f6c621ce14}\label{classgko_1_1matrix_1_1Fbcsr_a2e87bdbb1a9fb92c930725f6c621ce14} 
using {\bfseries absolute\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}}$>$
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Fbcsr$<$ default\+\_\+precision, int32 $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries result\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable}{gko::\+\+Diagonal\+Extractable$<$ default\+\_\+precision $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{gko::\+\+Readable\+From\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\item 
using {\bfseries index\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{gko::\+\+Writable\+To\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\item 
using {\bfseries index\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Fbcsr$<$ default\+\_\+precision, int32 $>$ $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries absolute\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_af50433145566caf19c18e0e5605d30b4}\label{classgko_1_1matrix_1_1Fbcsr_af50433145566caf19c18e0e5605d30b4} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}}$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a1036fbdc7186ca729792d8f9780fbab3}\label{classgko_1_1matrix_1_1Fbcsr_a1036fbdc7186ca729792d8f9780fbab3} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}}$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a38fd70e2d327746e20b216f3b389395c}\label{classgko_1_1matrix_1_1Fbcsr_a38fd70e2d327746e20b216f3b389395c} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{Dense}}$<$ Value\+Type $>$ \texorpdfstring{$\ast$}{*}other) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a9906725b3d689ffde0d4f027ff313e7d}\label{classgko_1_1matrix_1_1Fbcsr_a9906725b3d689ffde0d4f027ff313e7d} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{Dense}}$<$ Value\+Type $>$ \texorpdfstring{$\ast$}{*}other) override
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_acf73df804468f769e2e856c611f99588}{convert\+\_\+to}} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) const override
\begin{DoxyCompactList}\small\item\em Converts the matrix to CSR format. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_adc91d8b085aa83f5d4b456edaca53bc7}\label{classgko_1_1matrix_1_1Fbcsr_adc91d8b085aa83f5d4b456edaca53bc7} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_afbb19bc9883a12d37c4c93fe495df635}{convert\+\_\+to}} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) const override
\begin{DoxyCompactList}\small\item\em Get the block sparsity pattern in CSR-\/like format. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_aa4e950cc9788ad29633919d8da23f917}\label{classgko_1_1matrix_1_1Fbcsr_aa4e950cc9788ad29633919d8da23f917} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_add32b80fe8abb9dde0c1c6eaaff9df07}{read}} (const mat\+\_\+data \&data) override
\begin{DoxyCompactList}\small\item\em Reads a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} into \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} format. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a1ed4ee50808fbd111b31d2fc7197621c}\label{classgko_1_1matrix_1_1Fbcsr_a1ed4ee50808fbd111b31d2fc7197621c} 
void {\bfseries read} (const device\+\_\+mat\+\_\+data \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a04ac9799295d2b8e2c4c8236d2696013}\label{classgko_1_1matrix_1_1Fbcsr_a04ac9799295d2b8e2c4c8236d2696013} 
void {\bfseries read} (device\+\_\+mat\+\_\+data \&\&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a7386af3c2a81e148e87930a9f2fe0392}\label{classgko_1_1matrix_1_1Fbcsr_a7386af3c2a81e148e87930a9f2fe0392} 
void {\bfseries write} (mat\+\_\+data \&data) const override
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a19a87c21fe71a54557e32f6470670516}{transpose}} () const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a97f46d033714288efa0cc59d303cce9c}{conj\+\_\+transpose}} () const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the conjugate transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_aa630d6007d70bd9abc78ebac71ad24b6}{extract\+\_\+diagonal}} () const override
\begin{DoxyCompactList}\small\item\em Extracts the diagonal entries of the matrix into a vector. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a9a6b00e46ef79907ede48921fc8ff9f0}{compute\+\_\+absolute}} () const override
\begin{DoxyCompactList}\small\item\em Gets the Absolute\+Lin\+Op. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a8598ba2eca566add4b77518f1c360eaf}{compute\+\_\+absolute\+\_\+inplace}} () override
\begin{DoxyCompactList}\small\item\em Compute absolute inplace on each element. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a8e67294878a2da394e296f3c1426f14b}\label{classgko_1_1matrix_1_1Fbcsr_a8e67294878a2da394e296f3c1426f14b} 
void {\bfseries sort\+\_\+by\+\_\+column\+\_\+index} ()
\begin{DoxyCompactList}\small\item\em Sorts the values blocks and block-\/column indices in each row by column index. \end{DoxyCompactList}\item 
bool \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_aecdf3fe50a7c9a318dd74dd3decff851}{is\+\_\+sorted\+\_\+by\+\_\+column\+\_\+index}} () const
\begin{DoxyCompactList}\small\item\em Tests if all row entry pairs (value, col\+\_\+idx) are sorted by column index. \end{DoxyCompactList}\item 
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a9607cc55c966fedb3ff5aed75e022d61}{get\+\_\+values}} () noexcept
\item 
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a2df54caf6629747d4d8bd6cd831374bb}{get\+\_\+const\+\_\+values}} () const noexcept
\item 
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a5ad8d126a494b8a820559849f63f43cb}{get\+\_\+col\+\_\+idxs}} () noexcept
\item 
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a3000bcf72c288e2bef8ec0b80863fea2}{get\+\_\+const\+\_\+col\+\_\+idxs}} () const noexcept
\item 
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a41f1c2ff6a86e8529c01b2f077902975}{get\+\_\+row\+\_\+ptrs}} () noexcept
\item 
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_ab8830bb5454c3cbb366f047296ff3e6d}{get\+\_\+const\+\_\+row\+\_\+ptrs}} () const noexcept
\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a2409efcc99603ab55623f854991ea169}{get\+\_\+num\+\_\+stored\+\_\+elements}} () const noexcept
\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a079ec6400ad8ebf4ff93087e8c7823e4}{get\+\_\+num\+\_\+stored\+\_\+blocks}} () const noexcept
\item 
int \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a59511a9d356956f89cf54c6de0650925}{get\+\_\+block\+\_\+size}} () const noexcept
\item 
index\+\_\+type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a35b1732314c6b648ff2293f574cd35c8}{get\+\_\+num\+\_\+block\+\_\+rows}} () const noexcept
\item 
index\+\_\+type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_af29a823fd47588118ae75ab4bb36753b}{get\+\_\+num\+\_\+block\+\_\+cols}} () const noexcept
\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_acf5e4da9a72fed8a2c7b764c3c728efb}{operator=}} (const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} \&)
\begin{DoxyCompactList}\small\item\em Copy-\/assigns an \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a99f2ecb99976ac7d0b56b774365fe98a}{operator=}} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} \&\&)
\begin{DoxyCompactList}\small\item\em Move-\/assigns an \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} (const Fbcsr \&)
\begin{DoxyCompactList}\small\item\em Copy-\/constructs an \doxylink{classgko_1_1matrix_1_1Ell}{Ell} matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a9f34a44ae1f29860863ed2ae22326602}{Fbcsr}} (Fbcsr \&\&)
\begin{DoxyCompactList}\small\item\em Move-\/constructs an \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableLinOp}{gko::\+\+Enable\+Lin\+Op$<$ Fbcsr$<$ default\+\_\+precision, int32 $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
const Fbcsr$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*} {\bfseries apply} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ x) const
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Fbcsr$<$ default\+\_\+precision, int32 $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
void {\bfseries convert\+\_\+to} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) const override
\item 
void {\bfseries move\+\_\+to} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) override
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable}{gko::\+\+Diagonal\+Extractable$<$ default\+\_\+precision $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable_a7d41c0cb7b317402ea61bc145b82a9db}{extract\+\_\+diagonal\+\_\+linop}} () const override
\begin{DoxyCompactList}\small\item\em Extracts the diagonal entries of the matrix into a vector. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{gko::\+\+Readable\+From\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData_add5c12e23b3ac3c8fbd607fa5a9656bb}{read}} (const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \&data)=0
\begin{DoxyCompactList}\small\item\em Reads a matrix from a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{gko::\+\+Writable\+To\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData_a96036c3a4bf4c67fa93002808b8b14e2}{write}} (\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \&data) const=0
\begin{DoxyCompactList}\small\item\em Writes a matrix to a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Fbcsr$<$ default\+\_\+precision, int32 $>$ $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop}} () const override
\begin{DoxyCompactList}\small\item\em Gets the absolute \doxylink{classgko_1_1LinOp}{Lin\+Op}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a607eeaab630a39a4e107ae70601025a2}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, int block\+\_\+size=1)
\begin{DoxyCompactList}\small\item\em Creates an uninitialized FBCSR matrix with the given block size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a8bbfdb7533097196f41aedbb793b34da}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} num\+\_\+nonzeros, int block\+\_\+size)
\begin{DoxyCompactList}\small\item\em Creates an uninitialized FBCSR matrix of the specified size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_ad8e9cc6a76b3f89a2f32a8f6313eeae5}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, int block\+\_\+size, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ value\+\_\+type $>$ values, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$ col\+\_\+idxs, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$ row\+\_\+ptrs)
\begin{DoxyCompactList}\small\item\em Creates a FBCSR matrix from already allocated (and initialized) row pointer, column index and value arrays. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+Value\+Type, typename Input\+Column\+Index\+Type, typename Input\+Row\+Ptr\+Type$>$ }\\static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_ab1e36cc523586d07030a8a331f02431c}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, int block\+\_\+size, std::\+initializer\+\_\+list$<$ Input\+Value\+Type $>$ values, std::\+initializer\+\_\+list$<$ Input\+Column\+Index\+Type $>$ col\+\_\+idxs, std::\+initializer\+\_\+list$<$ Input\+Row\+Ptr\+Type $>$ row\+\_\+ptrs)
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1matrix_1_1Fbcsr_ad8e9cc6a76b3f89a2f32a8f6313eeae5}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, int, array$<$value\+\_\+type$>$, array$<$index\+\_\+type$>$,array$<$index\+\_\+type$>$)} \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a73fd611472d6776cec8c3db335dee2bc}{create\+\_\+const}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, int blocksize, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \&\&values, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&col\+\_\+idxs, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&row\+\_\+ptrs)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix from a constant array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_aef5d3013d13c6d9a1b47b24d81715f63}\label{classgko_1_1matrix_1_1Fbcsr_aef5d3013d13c6d9a1b47b24d81715f63} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Fbcsr, Lin\+Op $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a3962faf971a3df6ff4c9226c61fb24cc}\label{classgko_1_1matrix_1_1Fbcsr_a3962faf971a3df6ff4c9226c61fb24cc} 
class {\bfseries Csr$<$ Value\+Type, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a22a84c8f67f946aa60a2fa8bf5835a32}\label{classgko_1_1matrix_1_1Fbcsr_a22a84c8f67f946aa60a2fa8bf5835a32} 
class {\bfseries Dense$<$ Value\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_af3670b1e6b4be191b76955732bbc46c1}\label{classgko_1_1matrix_1_1Fbcsr_af3670b1e6b4be191b76955732bbc46c1} 
class {\bfseries Sparsity\+Csr$<$ Value\+Type, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a5116a05185e123ef94679dca6be65e27}\label{classgko_1_1matrix_1_1Fbcsr_a5116a05185e123ef94679dca6be65e27} 
class {\bfseries Fbcsr\+Builder$<$ Value\+Type, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_aa7699ec37653289a23b9c6f298957e19}\label{classgko_1_1matrix_1_1Fbcsr_aa7699ec37653289a23b9c6f298957e19} 
class {\bfseries Fbcsr$<$ to\+\_\+complex$<$ Value\+Type $>$, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_afa3eb58e87db7783bb9ccfc319b113a4}\label{classgko_1_1matrix_1_1Fbcsr_afa3eb58e87db7783bb9ccfc319b113a4} 
class {\bfseries Fbcsr$<$ previous\+\_\+precision$<$ Value\+Type $>$, Index\+Type $>$}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$\newline
class gko::\+matrix::\+\+Fbcsr$<$ Value\+Type, Index\+Type $>$}
Fixed-\/block compressed sparse row storage matrix format. 

FBCSR is a matrix format meant for matrices having a natural block structure made up of small, dense, disjoint blocks. It is similar to CSR \begin{DoxySeeAlso}{See also}
\doxylink{classgko_1_1matrix_1_1Csr}{Csr}. However, unlike \doxylink{classgko_1_1matrix_1_1Csr}{Csr}, each non-\/zero location stores a small dense block of entries having a constant size. This reduces the number of integers that need to be stored in order to refer to a given non-\/zero entry, and enables efficient implementation of certain block methods.
\end{DoxySeeAlso}
The block size is expected to be known in advance and passed to the constructor.

\begin{DoxyNote}{Note}
The total number of rows and the number of columns are expected to be divisible by the block size.
\end{DoxyNote}
The nonzero elements are stored in a 1D array row-\/wise, and accompanied with a row pointer array which stores the starting index of each block-\/row. An additional block-\/column index array is used to identify the block-\/column of each nonzero block.

The \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} \doxylink{classgko_1_1LinOp}{Lin\+Op} supports different operations:\+


\begin{DoxyCode}{0}
\DoxyCodeLine{matrix::Fbcsr\ *A,\ *B,\ *C;\ \ \ \ \ \ \textcolor{comment}{//\ matrices}}
\DoxyCodeLine{matrix::Dense\ *b,\ *x;\ \ \ \ \ \ \ \ \textcolor{comment}{//\ vectors\ tall-\/and-\/skinny\ matrices}}
\DoxyCodeLine{matrix::Dense\ *alpha,\ *beta;\ \textcolor{comment}{//\ scalars\ of\ dimension\ 1x1}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Applying\ to\ Dense\ matrices\ computes\ an\ SpMV/SpMM\ product}}
\DoxyCodeLine{A-\/>apply(b,\ x)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ x\ =\ A*b}}
\DoxyCodeLine{A-\/>apply(alpha,\ b,\ beta,\ x)\ \textcolor{comment}{//\ x\ =\ alpha*A*b\ +\ beta*x}}

\end{DoxyCode}



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


\label{doc-constructors}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!Fbcsr@{Fbcsr}}
\index{Fbcsr@{Fbcsr}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{Fbcsr()}{Fbcsr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+\+Fbcsr (\begin{DoxyParamCaption}\item[{const Fbcsr$<$ Value\+Type, Index\+Type $>$ \&}]{}{}\end{DoxyParamCaption})}



Copy-\/constructs an \doxylink{classgko_1_1matrix_1_1Ell}{Ell} matrix. 

Inherits executor and data. \Hypertarget{classgko_1_1matrix_1_1Fbcsr_a9f34a44ae1f29860863ed2ae22326602}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!Fbcsr@{Fbcsr}}
\index{Fbcsr@{Fbcsr}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{Fbcsr()}{Fbcsr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a9f34a44ae1f29860863ed2ae22326602} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+\+Fbcsr (\begin{DoxyParamCaption}\item[{Fbcsr$<$ Value\+Type, Index\+Type $>$ \&\&}]{}{}\end{DoxyParamCaption})}



Move-\/constructs an \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix. 

Inherits executor and data. The moved-\/from object is empty (0x0 with no nonzeros, but valid row pointers). 

\label{doc-func-members}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a9a6b00e46ef79907ede48921fc8ff9f0}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!compute\_absolute@{compute\_absolute}}
\index{compute\_absolute@{compute\_absolute}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute()}{compute\_absolute()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a9a6b00e46ef79907ede48921fc8ff9f0} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+compute\+\_\+absolute (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Gets the Absolute\+Lin\+Op. 

\begin{DoxyReturn}{Returns}
a pointer to the new absolute object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Fbcsr$<$ default\+\_\+precision, int32 $>$ $>$ $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a8598ba2eca566add4b77518f1c360eaf}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!compute\_absolute\_inplace@{compute\_absolute\_inplace}}
\index{compute\_absolute\_inplace@{compute\_absolute\_inplace}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute\_inplace()}{compute\_absolute\_inplace()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a8598ba2eca566add4b77518f1c360eaf} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+compute\+\_\+absolute\+\_\+inplace (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Compute absolute inplace on each element. 



Implements \doxymbox{\hyperlink{classgko_1_1AbsoluteComputable_a09c6acf477a3457b2b2dc0618b406da2}{gko::\+\+Absolute\+Computable}}.

\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a97f46d033714288efa0cc59d303cce9c}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!conj\_transpose@{conj\_transpose}}
\index{conj\_transpose@{conj\_transpose}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{conj\_transpose()}{conj\_transpose()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a97f46d033714288efa0cc59d303cce9c} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+conj\+\_\+transpose (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the conjugate transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. 

\begin{DoxyReturn}{Returns}
a pointer to the new conjugate transposed object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Transposable_a7c230aacdb222f09ba49baf0bd9e82eb}{gko::\+\+Transposable}}.

\Hypertarget{classgko_1_1matrix_1_1Fbcsr_acf73df804468f769e2e856c611f99588}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!convert\_to@{convert\_to}}
\index{convert\_to@{convert\_to}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{convert\_to()}{convert\_to()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_acf73df804468f769e2e856c611f99588} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}}]{result}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}}



Converts the matrix to CSR format. 

\begin{DoxyNote}{Note}
Any explicit zeros in the original matrix are retained in the converted result. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_afbb19bc9883a12d37c4c93fe495df635}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!convert\_to@{convert\_to}}
\index{convert\_to@{convert\_to}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{convert\_to()}{convert\_to()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_afbb19bc9883a12d37c4c93fe495df635} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+convert\+\_\+to (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}}]{result}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}}



Get the block sparsity pattern in CSR-\/like format. 

\begin{DoxyNote}{Note}
The actual non-\/zero values are never copied; the result always has a value array of size 1 with the value 1. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_ad8e9cc6a76b3f89a2f32a8f6313eeae5}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_ad8e9cc6a76b3f89a2f32a8f6313eeae5} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{int}]{block\+\_\+size}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ value\+\_\+type $>$}]{values}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$}]{col\+\_\+idxs}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$}]{row\+\_\+ptrs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a FBCSR matrix from already allocated (and initialized) row pointer, column index and value arrays. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em size} & size of the matrix \\
\hline
{\em block\+\_\+size} & Size of the small square dense nonzero blocks \\
\hline
{\em values} & the value array of the matrix, stored in column-\/major order for each block \\
\hline
{\em col\+\_\+idxs} & the block column index array of the matrix \\
\hline
{\em row\+\_\+ptrs} & the block row pointer array of the matrix\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
If one of {\ttfamily row\+\_\+ptrs}, {\ttfamily col\+\_\+idxs} or {\ttfamily values} is not an rvalue, not an array of Index\+Type, Index\+Type and Value\+Type, respectively, or is on the wrong executor, an internal copy of that array will be created, and the original array data will not be used in the matrix.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_ab1e36cc523586d07030a8a331f02431c}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_ab1e36cc523586d07030a8a331f02431c} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
template$<$typename Input\+Value\+Type, typename Input\+Column\+Index\+Type, typename Input\+Row\+Ptr\+Type$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{int}]{block\+\_\+size}{, }\item[{std::\+initializer\+\_\+list$<$ Input\+Value\+Type $>$}]{values}{, }\item[{std::\+initializer\+\_\+list$<$ Input\+Column\+Index\+Type $>$}]{col\+\_\+idxs}{, }\item[{std::\+initializer\+\_\+list$<$ Input\+Row\+Ptr\+Type $>$}]{row\+\_\+ptrs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



\doxylink{classgko_1_1matrix_1_1Fbcsr_ad8e9cc6a76b3f89a2f32a8f6313eeae5}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, int, array$<$value\+\_\+type$>$, array$<$index\+\_\+type$>$,array$<$index\+\_\+type$>$)} 

\doxylink{classgko_1_1matrix_1_1Fbcsr_ad8e9cc6a76b3f89a2f32a8f6313eeae5}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, int, array$<$value\+\_\+type$>$, array$<$index\+\_\+type$>$,array$<$index\+\_\+type$>$)} \Hypertarget{classgko_1_1matrix_1_1Fbcsr_a8bbfdb7533097196f41aedbb793b34da}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a8bbfdb7533097196f41aedbb793b34da} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{num\+\_\+nonzeros}{, }\item[{int}]{block\+\_\+size}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an uninitialized FBCSR matrix of the specified size. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em size} & size of the matrix \\
\hline
{\em num\+\_\+nonzeros} & number of stored nonzeros. It needs to be a multiple of block\+\_\+size \texorpdfstring{$\ast$}{*} block\+\_\+size. \\
\hline
{\em block\+\_\+size} & size of the small dense square blocks\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a607eeaab630a39a4e107ae70601025a2}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a607eeaab630a39a4e107ae70601025a2} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{int}]{block\+\_\+size}{ = {\ttfamily 1}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an uninitialized FBCSR matrix with the given block size. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em block\+\_\+size} & The desired size of the dense square nonzero blocks; defaults to 1.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_ab1e36cc523586d07030a8a331f02431c}{create()}}.

\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a73fd611472d6776cec8c3db335dee2bc}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!create\_const@{create\_const}}
\index{create\_const@{create\_const}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const()}{create\_const()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a73fd611472d6776cec8c3db335dee2bc} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+create\+\_\+const (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{int}]{blocksize}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \&\&}]{values}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&}]{col\+\_\+idxs}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&}]{row\+\_\+ptrs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix from a constant array. 


\begin{DoxyParams}{Parameters}
{\em exec} & the executor to create the matrix on \\
\hline
{\em size} & the dimensions of the matrix \\
\hline
{\em blocksize} & the block size of the matrix \\
\hline
{\em values} & the value array of the matrix, stored in column-\/major order for each block \\
\hline
{\em col\+\_\+idxs} & the block column index array of the matrix \\
\hline
{\em row\+\_\+ptrs} & the block row pointer array of the matrix \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the constant matrix wrapping the input arrays (if they reside on the same executor as the matrix) or a copy of the arrays on the correct executor. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_aa630d6007d70bd9abc78ebac71ad24b6}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!extract\_diagonal@{extract\_diagonal}}
\index{extract\_diagonal@{extract\_diagonal}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{extract\_diagonal()}{extract\_diagonal()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_aa630d6007d70bd9abc78ebac71ad24b6} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+extract\+\_\+diagonal (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Extracts the diagonal entries of the matrix into a vector. 


\begin{DoxyParams}{Parameters}
{\em diag} & the vector into which the diagonal will be written \\
\hline
\end{DoxyParams}


Implements \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable_aad6b7e3977359d5a3beab6b27bbb64c4}{gko::\+\+Diagonal\+Extractable$<$ default\+\_\+precision $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a59511a9d356956f89cf54c6de0650925}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_block\_size@{get\_block\_size}}
\index{get\_block\_size@{get\_block\_size}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_block\_size()}{get\_block\_size()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a59511a9d356956f89cf54c6de0650925} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
int \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+block\+\_\+size (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The fixed block size for this matrix 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a5ad8d126a494b8a820559849f63f43cb}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_col\_idxs@{get\_col\_idxs}}
\index{get\_col\_idxs@{get\_col\_idxs}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_col\_idxs()}{get\_col\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a5ad8d126a494b8a820559849f63f43cb} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+col\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The column indexes of the matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a3000bcf72c288e2bef8ec0b80863fea2}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_const\_col\_idxs@{get\_const\_col\_idxs}}
\index{get\_const\_col\_idxs@{get\_const\_col\_idxs}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_col\_idxs()}{get\_const\_col\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a3000bcf72c288e2bef8ec0b80863fea2} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+col\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}





\begin{DoxyReturn}{Returns}
The column indexes of the matrix.   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is the constant version of the function, which can be significantly more memory efficient than the non-\/constant version, so always prefer this version. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_ab8830bb5454c3cbb366f047296ff3e6d}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_const\_row\_ptrs@{get\_const\_row\_ptrs}}
\index{get\_const\_row\_ptrs@{get\_const\_row\_ptrs}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_row\_ptrs()}{get\_const\_row\_ptrs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_ab8830bb5454c3cbb366f047296ff3e6d} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+row\+\_\+ptrs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}





\begin{DoxyReturn}{Returns}
The row pointers of the matrix.   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is the constant version of the function, which can be significantly more memory efficient than the non-\/constant version, so always prefer this version. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a2df54caf6629747d4d8bd6cd831374bb}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_const\_values@{get\_const\_values}}
\index{get\_const\_values@{get\_const\_values}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_values()}{get\_const\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a2df54caf6629747d4d8bd6cd831374bb} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}





\begin{DoxyReturn}{Returns}
The values of the matrix.   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is the constant version of the function, which can be significantly more memory efficient than the non-\/constant version, so always prefer this version. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_af29a823fd47588118ae75ab4bb36753b}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_num\_block\_cols@{get\_num\_block\_cols}}
\index{get\_num\_block\_cols@{get\_num\_block\_cols}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_block\_cols()}{get\_num\_block\_cols()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_af29a823fd47588118ae75ab4bb36753b} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+num\+\_\+block\+\_\+cols (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The number of block-\/columns in the matrix 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a35b1732314c6b648ff2293f574cd35c8}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_num\_block\_rows@{get\_num\_block\_rows}}
\index{get\_num\_block\_rows@{get\_num\_block\_rows}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_block\_rows()}{get\_num\_block\_rows()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a35b1732314c6b648ff2293f574cd35c8} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+num\+\_\+block\+\_\+rows (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The number of block-\/rows in the matrix 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a079ec6400ad8ebf4ff93087e8c7823e4}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_num\_stored\_blocks@{get\_num\_stored\_blocks}}
\index{get\_num\_stored\_blocks@{get\_num\_stored\_blocks}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_stored\_blocks()}{get\_num\_stored\_blocks()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a079ec6400ad8ebf4ff93087e8c7823e4} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+num\+\_\+stored\+\_\+blocks (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The number of non-\/zero blocks explicitly stored in the matrix 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a2409efcc99603ab55623f854991ea169}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_num\_stored\_elements@{get\_num\_stored\_elements}}
\index{get\_num\_stored\_elements@{get\_num\_stored\_elements}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_stored\_elements()}{get\_num\_stored\_elements()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a2409efcc99603ab55623f854991ea169} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+num\+\_\+stored\+\_\+elements (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The number of elements explicitly stored in the matrix 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a41f1c2ff6a86e8529c01b2f077902975}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_row\_ptrs@{get\_row\_ptrs}}
\index{get\_row\_ptrs@{get\_row\_ptrs}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_row\_ptrs()}{get\_row\_ptrs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a41f1c2ff6a86e8529c01b2f077902975} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+row\+\_\+ptrs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The row pointers of the matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a9607cc55c966fedb3ff5aed75e022d61}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!get\_values@{get\_values}}
\index{get\_values@{get\_values}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_values()}{get\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a9607cc55c966fedb3ff5aed75e022d61} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}

\begin{DoxyReturn}{Returns}
The values of the matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_aecdf3fe50a7c9a318dd74dd3decff851}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!is\_sorted\_by\_column\_index@{is\_sorted\_by\_column\_index}}
\index{is\_sorted\_by\_column\_index@{is\_sorted\_by\_column\_index}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{is\_sorted\_by\_column\_index()}{is\_sorted\_by\_column\_index()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_aecdf3fe50a7c9a318dd74dd3decff851} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
bool \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+is\+\_\+sorted\+\_\+by\+\_\+column\+\_\+index (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Tests if all row entry pairs (value, col\+\_\+idx) are sorted by column index. 

\begin{DoxyReturn}{Returns}
True if all row entry pairs (value, col\+\_\+idx) are sorted by column index 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_acf5e4da9a72fed8a2c7b764c3c728efb}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_acf5e4da9a72fed8a2c7b764c3c728efb} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}}$<$ Value\+Type, Index\+Type $>$ \&}]{}{}\end{DoxyParamCaption})}



Copy-\/assigns an \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix. 

Preserves the executor, copies data and block size from the input. \Hypertarget{classgko_1_1matrix_1_1Fbcsr_a99f2ecb99976ac7d0b56b774365fe98a}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a99f2ecb99976ac7d0b56b774365fe98a} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a70062defa68148bc8458df69c49cd0f8}{Fbcsr}}$<$ Value\+Type, Index\+Type $>$ \&\&}]{}{}\end{DoxyParamCaption})}



Move-\/assigns an \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} matrix. 

Preserves the executor, moves the data over preserving size and stride. Leaves the moved-\/from object in an empty state (0x0 with no nonzeros, but valid row pointers). \Hypertarget{classgko_1_1matrix_1_1Fbcsr_add32b80fe8abb9dde0c1c6eaaff9df07}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!read@{read}}
\index{read@{read}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{read()}{read()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_add32b80fe8abb9dde0c1c6eaaff9df07} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+read (\begin{DoxyParamCaption}\item[{const mat\+\_\+data \&}]{data}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}}



Reads a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} into \doxylink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr} format. 

Requires the block size to be set beforehand \begin{DoxySeeAlso}{See also}
set\+\_\+block\+\_\+size.
\end{DoxySeeAlso}
\begin{DoxyWarning}{Warning}
Unlike \doxylink{classgko_1_1ReadableFromMatrixData_add5c12e23b3ac3c8fbd607fa5a9656bb}{Csr::\+read}, here explicit non-\/zeros are NOT dropped. 
\end{DoxyWarning}
\Hypertarget{classgko_1_1matrix_1_1Fbcsr_a19a87c21fe71a54557e32f6470670516}\index{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}!transpose@{transpose}}
\index{transpose@{transpose}!gko::matrix::Fbcsr$<$ ValueType, IndexType $>$@{gko::matrix::Fbcsr$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{transpose()}{transpose()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Fbcsr_a19a87c21fe71a54557e32f6470670516} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{gko::\+matrix::\+\+Fbcsr}}$<$ Value\+Type, Index\+Type $>$::\+transpose (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. 

\begin{DoxyReturn}{Returns}
a pointer to the new transposed object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Transposable_adf04fdf2ed79b117edbef42520bfe8fa}{gko::\+\+Transposable}}.



The documentation for this class was generated from the following files:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+matrix/\+csr.\+hpp\item 
ginkgo/\+core/\+matrix/\+fbcsr.\+hpp\end{DoxyCompactItemize}
