File: GrB_get_set_Descriptor.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 (159 lines) | stat: -rw-r--r-- 6,134 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

%-------------------------------------------------------------------------------
\newpage
\subsection{{\sf GrB\_Descriptor} Options}
\label{get_set_descriptor}
%-------------------------------------------------------------------------------

\begin{mdframed}[userdefinedwidth=6in]
{\footnotesize
\begin{verbatim}
GrB_Info GrB_get (GrB_Descriptor desc, GrB_Scalar value, int f) ;
GrB_Info GrB_get (GrB_Descriptor desc, char *     value, int f) ;
GrB_Info GrB_get (GrB_Descriptor desc, int32_t *  value, int f) ;
GrB_Info GrB_get (GrB_Descriptor desc, size_t *   value, int f) ;

GrB_Info GrB_set (GrB_Descriptor desc, GrB_Scalar value, int f) ;
GrB_Info GrB_set (GrB_Descriptor desc, char *     value, int f) ;
GrB_Info GrB_set (GrB_Descriptor desc, int32_t    value, int f) ;
\end{verbatim}
}\end{mdframed}

\noindent
{\small
\begin{tabular}{|l|l|l|p{3.3in}|}
\hline
\verb'int field'                    & R/W  & C type        & description \\
\hline
\verb'GrB_OUTP'         & R/W  & \verb'int32_t'& \verb'GrB_DEFAULT' or \verb'GrB_REPLACE' \\
\verb'GrB_MASK'         & R/W  & \verb'int32_t'& \verb'GrB_DEFAULT', \verb'GrB_COMP', \verb'GrB_STRUCTURE', or
                                                    \newline \verb'GrB_COMP_STRUCTURE' \\
\verb'GrB_INP0'         & R/W  & \verb'int32_t'& \verb'GrB_DEFAULT' or \verb'GrB_TRAN' \\
\verb'GrB_INP1'         & R/W  & \verb'int32_t'& \verb'GrB_DEFAULT' or \verb'GrB_TRAN' \\
\verb'GxB_AxB_METHOD'   & R/W  & \verb'int32_t'& Method used by \verb'GrB_mxm' (\verb'GrB_DEFAULT', \newline
                                                 \verb'GxB_AxB_GUSTAVSON'.  \verb'GxB_AxB_HASH', \newline
                                                 \verb'GxB_AxB_SAXPY', or \verb'GxB_AxB_DOT'). \\
\verb'GxB_SORT'         & R/W  & \verb'int32_t'& if true, \verb'GrB_mxm' returns its output in sorted form. \\
\verb'GxB_COMPRESSION'  & R/W  & \verb'int32_t'& compression method for serialize methods. \\
% \verb'GxB_IMPORT'       & R/W  & \verb'int32_t'& \verb'GxB_FAST_IMPORT' or \verb'GxB_SECURE_IMPORT' for \verb'GxB*_pack*' methods. \\
\verb'GxB_ROWINDEX_LIST' & R/W & \verb'int32_t' & how the \verb'GrB_Vector I' is intrepretted. \\
\verb'GxB_COLINDEX_LIST' & R/W & \verb'int32_t' & how the \verb'GrB_Vector J' is intrepretted. \\
\verb'GxB_VALUE_LIST'    & R/W & \verb'int32_t' & how \verb'GrB_Vector X' is intrepretted (for \verb'GrB_build' only). \\
\hline
\verb'GrB_NAME'         & R/W  & \verb'char *' & name of the descriptor.
    This can be set any number of times for user-defined descriptors.  Built-in
    descriptors have the same name as the variable name (\verb'"GrB_DESC_T1"'
    for the \verb'GrB_DESC_T1' descriptor, for example) \\
\hline
\end{tabular}
}

The following table describes each option.
See Section~\ref{descriptor} for more details.

\vspace{0.2in}
\noindent
{\footnotesize
\begin{tabular}{|l|p{2.4in}|p{2.2in}|}
\hline
Descriptor & Default   & Non-default \\
field      & &  \\
\hline

\verb'GrB_OUTP'
    & \verb'GrB_DEFAULT':
    The output matrix is not cleared.  The operation computes
    ${\bf C \langle M \rangle = C \odot T}$.
    & \verb'GrB_REPLACE':
    After computing ${\bf Z=C\odot T}$,
    the output {\bf C} is cleared of all entries.
    Then ${\bf C \langle M \rangle = Z}$ is performed. \\

\hline

\verb'GrB_MASK'
    & \verb'GrB_DEFAULT':
    The Mask is not complemented.  \verb'Mask(i,j)=1' means the value $C_{ij}$
    can be modified by the operation, while \verb'Mask(i,j)=0' means the value
    $C_{ij}$ shall not be modified by the operation.
    & \verb'GrB_COMP':
    The Mask is complemented.  \verb'Mask(i,j)=0' means the value $C_{ij}$
    can be modified by the operation, while \verb'Mask(i,j)=1' means the value
    $C_{ij}$ shall not be modified by the operation. \\
    &
    & \verb'GrB_STRUCTURE':
    The values of the Mask are ignored.  If \verb'Mask(i,j)' is an entry
    in the \verb'Mask' matrix, it is treated as if \verb'Mask(i,j)=1'.
    The two options \verb'GrB_COMP' and \verb'GrB_STRUCTURE' can be
    combined, with two subsequent calls, or with a single call with the setting
    \verb'GrB_COMP+GrB_STRUCTURE'.  \\

\hline

\verb'GrB_INP0'
    & \verb'GrB_DEFAULT':
    The first input is not transposed prior to using it in the operation.
    & \verb'GrB_TRAN':
    The first input is transposed prior to using it in the operation.  Only
    matrices are transposed, never vectors. \\

\hline

\verb'GrB_INP1'
    & \verb'GrB_DEFAULT':
    The second input is not transposed prior to using it in the operation.
    & \verb'GrB_TRAN':
    The second input is transposed prior to using it in the operation.  Only
    matrices are transposed, never vectors. \\

\hline

\verb'GxB_AxB_METHOD'
    & \verb'GrB_DEFAULT':
    The method for \verb'C=A*B' is selected automatically.
    & \verb'GxB_AxB_'{\em method}: The selected method is used to compute
    \verb'C=A*B'.  \\

\hline

\verb'GxB_SORT'
    & \verb'GrB_DEFAULT':
    The computation of \verb'C=A*B' may leave \verb'C' in a jumbled state;
    \verb'GrB_wait' will finalize the matrix.
    & any nonzero value: \verb'C=A*B' always returns \verb'C' in final,
    sorted form. \\

\hline

\verb'GxB_COMPRESSION'
    & \verb'GrB_DEFAULT':
    Serialize methods will use the default method, ZSTD (level 1)
    & See Section~\ref{serialize_deserialize} \\

% \hline
% \verb'GxB_IMPORT'
%     & \verb'GrB_DEFAULT': fast import
%     & \verb'GxB_SECURE_IMPORT': secure import \\

\hline
\verb'GxB_ROWINDEX_LIST'
    & \verb'GrB_DEFAULT' or \verb'GxB_USE_VALUES': use the values of \verb'I'
    & \verb'GxB_USE_INDICES': use the indices of \verb'I';
    \verb'GxB_IS_STRIDE': \verb'I' is a strided range (\verb'lo:inc:hi') \\

\hline
\verb'GxB_COLINDEX_LIST'
    & \verb'GrB_DEFAULT' or \verb'GxB_USE_VALUES': use the values of \verb'J'
    & \verb'GxB_USE_INDICES': use the indices of \verb'J';
    \verb'GxB_IS_STRIDE': \verb'J' is a strided range (\verb'lo:inc:hi') \\

\hline
\verb'GxB_VALUE_LIST'
    & \verb'GrB_DEFAULT' or \verb'GxB_USE_VALUES': use the values of \verb'X'
    & \verb'GxB_USE_INDICES': use the indices \\

\hline
\end{tabular}
}