Skip to content

BB-28: Consider global get/set methods #14

@mcmillan03

Description

@mcmillan03

From Suitesparse:

Different usages of GxB_set and GxB_get are summarized below. Some of these should remain SuiteSparse specific, but the idea of a polymorphic GxB_set and GxB_get is a useful idea, as a clean way to extend GrB_Descriptor_set to a generic method.

To set/get the global options:

GxB_set (GxB_HYPER, double h) ;
GxB_set (GxB_HYPER, GxB_ALWAYS_HYPER) ;
GxB_set (GxB_HYPER, GxB_NEVER_HYPER) ;
GxB_get (GxB_HYPER, double *h) ;

GxB_set (GxB_FORMAT, GxB_BY_ROW) ;
GxB_set (GxB_FORMAT, GxB_BY_COL) ;
GxB_get (GxB_FORMAT, GxB_Format_Value *s) ; 

To get global options that can be queried but not modified:

GxB_get (GxB_MODE,          GrB_Mode *mode) ;
GxB_get (GxB_THREAD_SAFETY, GxB_Thread_Model *thread_safety) ;
GxB_get (GxB_THREADING,     GxB_Thread_Model *threading) ; 

To set/get a matrix option:

GxB_set (GrB_Matrix A, GxB_HYPER, double h) ;
GxB_set (GrB_Matrix A, GxB_HYPER, GxB_ALWAYS_HYPER) ;
GxB_set (GrB_Matrix A, GxB_HYPER, GxB_NEVER_HYPER) ;
GxB_get (GrB_Matrix A, GxB_HYPER, double *h) ;

GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_ROW) ;
GxB_set (GrB_Matrix A, GxB_FORMAT, GxB_BY_COL) ;
GxB_get (GrB_Matrix A, GxB_FORMAT, GxB_Format_Value *s) ;

To get the hypersparse status of a matrix:

GxB_get (GrB_Matrix A, GxB_IS_HYPER, bool *is_hyper) ; 

To set/get a descriptor field:

GxB_set (GrB_Descriptor d, GrB_OUTP, GxB_DEFAULT) ;
GxB_set (GrB_Descriptor d, GrB_OUTP, GrB_REPLACE) ;

GxB_set (GrB_Descriptor d, GrB_MASK, GxB_DEFAULT) ;
GxB_set (GrB_Descriptor d, GrB_MASK, GrB_SCMP) ;

GxB_set (GrB_Descriptor d, GrB_INP0, GxB_DEFAULT) ;
GxB_set (GrB_Descriptor d, GrB_INP0, GrB_TRAN) ;

GxB_set (GrB_Descriptor d, GrB_INP1, GxB_DEFAULT) ;
GxB_set (GrB_Descriptor d, GrB_INP1, GrB_TRAN);

GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_DEFAULT) ;
GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_GUSTAVSON) ;
GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_HEAP) ;
GxB_set (GrB_Descriptor d, GxB_AxB_METHOD, GxB_AxB_DOT) ;

GxB_get (GrB_Descriptor d, GrB_Desc_Field f, GrB_Desc_Value *v) ;

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions