File: GrB_get_set_Serialize.tex

package info (click to toggle)
suitesparse 1%3A7.10.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 254,920 kB
  • sloc: ansic: 1,134,743; cpp: 46,133; makefile: 4,875; fortran: 2,087; java: 1,826; sh: 996; ruby: 725; python: 495; asm: 371; sed: 166; awk: 44
file content (57 lines) | stat: -rw-r--r-- 3,075 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

%-------------------------------------------------------------------------------
\newpage
\subsection{Options for inspecting a serialized blob}
\label{get_set_blob}
%-------------------------------------------------------------------------------

\begin{mdframed}[userdefinedwidth=6.5in]
{\footnotesize
\begin{verbatim}
GrB_Info GrB_get (const void *blob, GrB_Scalar value, int f, size_t blobsize) ;
GrB_Info GrB_get (const void *blob, char *     value, int f, size_t blobsize) ;
GrB_Info GrB_get (const void *blob, int32_t *  value, int f, size_t blobsize) ;
GrB_Info GrB_get (const void *blob, size_t *   value, int f, size_t blobsize) ;
\end{verbatim}
}\end{mdframed}

\noindent
{\small
\begin{tabular}{|l|l|l|p{2.2in}|}
\hline
\verb'int field'                    & R/W  & C type        & description \\
\hline
\verb'GrB_STORAGE_ORIENTATION_HINT' & R    & \verb'int32_t'& See \verb'GrB_Orientation', \newline
                                                             and Section~\ref{storage_orientation}. \\
\verb'GrB_EL_TYPE_CODE'             & R    & \verb'int32_t'& type of matrix in the blob \\
\verb'GxB_SPARSITY_CONTROL'         & R    & \verb'int32_t'& See Section~\ref{sparsity_status} \\
\verb'GxB_SPARSITY_STATUS'          & R    & \verb'int32_t'& See Section~\ref{sparsity_status} \\
\verb'GxB_ISO'                      & R    & \verb'int32_t'& iso status (Section~\ref{iso_status}) \\
\verb'GxB_ROWINDEX_INTEGER_BITS'    & R    & \verb'int32_t'& number of bits for row indices (32 or 64) \\
\verb'GxB_COLINDEX_INTEGER_BITS'    & R    & \verb'int32_t'& number of bits for column indices (32 or 64) \\
\verb'GxB_OFFSET_INTEGER_BITS'      & R    & \verb'int32_t'& number of bits for offsets (32 or 64) \\
\verb'GxB_ROWINDEX_INTEGER_HINT'    & R    & \verb'int32_t'& hint for row indices (0, 32, 64) \\
\verb'GxB_COLINDEX_INTEGER_HINT'    & R    & \verb'int32_t'& hint for column indices (0, 32, 64) \\
\verb'GxB_OFFSET_INTEGER_HINT'      & R    & \verb'int32_t'& hint for offsets (0, 32, 64) \\
\hline
\verb'GrB_NAME'                     & R    & \verb'char *' & name of the matrix in the blob. \\
\verb'GrB_EL_TYPE_STRING'           & R    & \verb'char *' & name of the type of the matrix in the blob. \\
\verb'GxB_JIT_C_NAME'               & R    & \verb'char *' & JIT C name of the type of the matrix in the blob. \\
\hline
\verb'GxB_HYPER_SWITCH'             & R    & \verb'double' & See Section~\ref{hypersparse} \\
\verb'GxB_BITMAP_SWITCH'            & R    & \verb'double' & See Section~\ref{bitmap_switch} \\
\hline
\end{tabular}
}

The \verb'GrB_Matrix_serialize' and \verb'GxB_Matrix_serialize' methods create
a {\em blob} as a single array of bytes that contains all content of a
\verb'GrB_Matrix'.  These \verb'GrB_get' methods can query a blob for the same
values that can be queried for a \verb'GrB_Matrix'.  The blob cannot be
modified by \verb'GrB_set'.

Note that these \verb'GrB_get' methods add a fourth parameter, the size of
the blob.  All other \verb'GrB_get' methods have just three parameters:
the object, the value, and the field.