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
|
//------------------------------------------------------------------------------
// GB_export.h: definitions for import/export
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
#ifndef GB_EXPORT_H
#define GB_EXPORT_H
#include "GB_transpose.h"
GrB_Info GB_import // import/pack a matrix in any format
(
bool packing, // pack if true, create and import false
GrB_Matrix *A, // handle of matrix to create, or pack
GrB_Type type, // type of matrix to create
GrB_Index vlen, // vector length
GrB_Index vdim, // vector dimension
bool is_sparse_vector, // true if A is a sparse GrB_Vector
// the 5 arrays:
GrB_Index **Ap, // pointers, for sparse and hypersparse formats.
GrB_Index Ap_size, // size of Ap in bytes
GrB_Index **Ah, // vector indices for hypersparse matrices
GrB_Index Ah_size, // size of Ah in bytes
int8_t **Ab, // bitmap, for bitmap format only.
GrB_Index Ab_size, // size of Ab in bytes
GrB_Index **Ai, // indices for hyper and sparse formats
GrB_Index Ai_size, // size of Ai in bytes
void **Ax, // values
GrB_Index Ax_size, // size of Ax in bytes
// additional information for specific formats:
GrB_Index nvals, // # of entries for bitmap format, or for a vector
// in CSC format.
bool jumbled, // if true, sparse/hypersparse may be jumbled.
GrB_Index nvec, // size of Ah for hypersparse format.
// information for all formats:
int sparsity, // hypersparse, sparse, bitmap, or full
bool is_csc, // if true then matrix is by-column, else by-row
bool iso, // if true then A is iso and only one entry is provided
// in Ax, regardless of nvals(A).
// fast vs secure import:
bool fast_import, // if true: trust the data, if false: check it
bool add_to_memtable, // if true: add to debug memtable
GB_Context Context
) ;
GrB_Info GB_export // export/unpack a matrix in any format
(
bool unpacking, // unpack if true, export and free if false
GrB_Matrix *A, // handle of matrix to export and free, or unpack
GrB_Type *type, // type of matrix to export
GrB_Index *vlen, // vector length
GrB_Index *vdim, // vector dimension
bool is_sparse_vector, // true if A is a sparse GrB_Vector
// the 5 arrays:
GrB_Index **Ap, // pointers
GrB_Index *Ap_size, // size of Ap in bytes
GrB_Index **Ah, // vector indices
GrB_Index *Ah_size, // size of Ah in bytes
int8_t **Ab, // bitmap
GrB_Index *Ab_size, // size of Ab in bytes
GrB_Index **Ai, // indices
GrB_Index *Ai_size, // size of Ai in bytes
void **Ax, // values
GrB_Index *Ax_size, // size of Ax in bytes
// additional information for specific formats:
GrB_Index *nvals, // # of entries for bitmap format.
bool *jumbled, // if true, sparse/hypersparse may be jumbled.
GrB_Index *nvec, // size of Ah for hypersparse format.
// information for all formats:
int *sparsity, // hypersparse, sparse, bitmap, or full
bool *is_csc, // if true then matrix is by-column, else by-row
bool *iso, // if true then A is iso and only one entry is returned
// in Ax, regardless of nvals(A).
GB_Context Context
) ;
#endif
|