Skip to content

C99 prototype implementation of enough of GraphBLAS standard to run first two examples in Appendix A of the standard.

Notifications You must be signed in to change notification settings

bobcgausa/GraphBLAS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

by Bob Cook professorcook.org Jan. 5 2017

As far as I know this is the only C99 implementation. Therefore, certain deficiencies in the standard are addressed.

  1. Objects have a capitalized name, values are lower case.
  2. Handles that are defined constants are negative, GrB_NULL is a zero handle. Handles (>=1) index a GrB_Object array.
  3. All overloaded function names have been replaced.
  4. A new object GrB_Variable was added to handle overloaded arguments, unaryop, and binaryop.
  5. Eliminated all GrB_Plus_INT32 etc. since GrB_Variable encodes types.
  6. For methods with a typed constant argument, replaced with int, double, GrB_Variable versions to avoid a blizzard of names like opengl.
  7. Added a context argument to unaryop and binaryop so that functions could be reentrant and not rely on global variables as in the 2nd example.
  8. Replaced unaryop and binaryop callbacks with generic GrB_Variable definitions.

Expanding the code would be an interesting project for a good undergrad or graduate student. Caveat1: some of the functions (e.g. new...) are not thread safe

GraphBLAS

About

C99 prototype implementation of enough of GraphBLAS standard to run first two examples in Appendix A of the standard.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages