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 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
  
     | 
    
      SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
This folder, GraphBLAS/Source, contains all the primary source files for
GraphBLAS, and internal include files that are meant for internal inclusion in
GraphBLAS itself.  They should not be included in end-user applications.
The Source/*/template/* files are not compiled separately, but are #include'd
into files in this folder instead.  The are templatized source files.  The
Source/*/include/* files are header files for template methods.  Both template
and include files are merged into the JITpackage and then exported to
~/.SuiteSparse/GrB.x.y.z/src.
Source/*/factory/* files are not used in the JIT.
Files and folders in Source/
add                 GrB_eWiseAdd and GxB_eWiseUnion (see also ewise folder)
aliased             methods for determining if any components of a matrix
                    are aliased (shared) with another matrix.  Such a matrix
                    is called shallow (an array such as A->i is shallow
                    if A->i_shallow is true, and is owned by another matrix).
                    Such matrices are never returned to the user; they are
                    only internal.
apply               GrB_apply
assign              GrB_assign and GxB_assign
binaryop            GrB_BinaryOp object
builder             GrB_build
builtin             builtin types, operators, monoids, and semirings
callback            JIT kernels are not linked against -lgraphblas and thus
                    cannot call back into GraphBLAS directly.  Instead, a
                    struct containing function pointers to various utility
                    functions is passed to each JIT kernel.
cast                typecasting
clear               GrB_clear
codegen             MATLAB scripts for creating ../FactoryKernels,
                    Source/mxm/GB_AxB__any_pair_iso.c, and
                    Source/mxm/GB_AxB__include1.h.
compatible          testing if operators and types are compatible (if they can
                    be typecasted to another type.
concat              GxB_concat
context             GxB_Context object
convert             convert between matrix formats (sparse, hypersparse, bitmap,
                    and full), and conform a matrix to its desired format.
cpu                 wrapper for Google's cpu_features package
cumsum              cumulative sum
descriptor          GrB_Descriptor object
diag                GrB_diag and GxB_diag
dup                 GrB_dup
element             GrB_setElement, GrB_extractElement, GrB_removeElement
emult               GrB_eWiseMult (see also ewise folder)
ewise               element-wise methods for ewise add, emult, and union
extract             GrB_extract
extractTuples       GrB_extractTuples
gateway             definitions for calling methods in the CUDA folder
GB.h                primary internal include file
GB_control.h        controls which FactoryKernels are compiled
generic             definitions for generic methods
get_set             GrB_get, GrB_set
global              global variables and the routines for accessing them
helper              methods used in MATLAB/Octave @GrB interface only
hyper               methods for hypersparse matrices
ij                  determining properities of I and J index lists for
                    GrB_extract, GrB_assign, and GxB_subassign
import_export       GrB_import, GrB_export, GxB_import, and GxB_export
include             general-purpose header files that do not fit into any
                    particular subfolder of GraphBLAS/Source, such as compiler
                    settings, and GB_include.h which is a primary internal
                    include file.
indexbinaryop       GxB_IndexBinaryOp object
indexunaryop        GrB_IndexUnaryOp object
init                GrB_init, GxB_init, GrB_finalize, GrB_error, GrB_getVersion
iso                 iso-valued matrices
iterator            GxB_Iterator object and its methods
jitifyer            the GraphBLAS Just-In-Time compiler for CPU and CUDA JIT
                    kernels
jit_kernels         templates for all CPU JIT kernels.  These are not compiled
                    when the libgraphblas.so library is built.  Instead, they
                    are compiled at run time when requested by the JIT.
jit_wrappers        interfaces that access the JIT to call/load/compile each
                    CPU JIT kernel
kronecker           GrB_kronecker
lz4_wrapper         wrapper for the lz4 compression package
mask                mask/accum methods, for computing C<M>+=T
math                basic mathematical functions
matrix              GrB_Matrix object
memory              memory allocators (wrappers for malloc, free, etc),
                    memset, memcpy
monoid              GrB_Monoid object
mxm                 GrB_mxm, GrB_vxm, and GrB_mxv
nvals               GrB_nvals
ok                  debugging assertions
omp                 OpenMP interface and atomics
op                  methods for operators (GrB_UnaryOp, GrB_BinaryOp, etc)
pack_unpack         GxB_pack, GxB_unpack
pending             pending tuples for updates to matrices, vectors, and scalars
positional          methods for positional operators
print               GxB_print, GxB_fprint
README.txt          this file
reduce              GrB_reduce, to scalar and vector
reshape             GrB_reshape
resize              GrB_resize
scalar              GrB_Scalar object
select              GrB_select
semiring            GrB_Semiring object
serialize           GrB_serialize, GrB_deserialze
slice               methods for slicing matrices to create parallel tasks
sort                GxB_sort, and internal sorting methods
split               GxB_split
transplant          transplant contents of one matrix into another
transpose           GrB_transpose
type                GrB_Type object
unaryop             GrB_UnaryOp object
vector              GrB_Vector object
wait                GrB_wait
werk                the Werk space is a small amount of space on the stack
                    use for small things (scalars, O(# parallel OpenMP tasks),
                    and such.  It is spell differently for easier 'grep'.
zstd_wrapper        wrapper for the zstd compression package
 
     |