Releases: DrTimothyAldenDavis/GraphBLAS
Releases · DrTimothyAldenDavis/GraphBLAS
v6.1.2 (Dec 31, 2021)
Version 6.1.2, Dec 31, 2021
* performance: revised swap_rule in GrB_mxm, which decides whether
to compute C=A*B or C=(B'*A')', and variants, resulting in up
to 3x performance gain over v6.1.1 for GrB_mxm (observed;
could be higher in other cases).
v6.1.1 (Dec 28, 2021)
Version 6.1.1, Dec 28, 2021
* minor revision to AVX2 and AVX512f selection
* cpu_features/Makefile: remove test of list_cpu_features
v6.1.0 (Dec 26, 2021)
Version 6.1.0, Dec 26, 2021
- added GxB_get options: compiler name and version
- added package: https://github.com/google/cpu_features,
Nov 30, 2021 version - performance: faster C+=A*B when C is full, A is bitmap/full, and B is
sparse/hyper; added saxpy5 kernel. faster C+=A'*B (dot4 kernel). - bug fix: deserialization of iso and empty matrices/vectors was broken
v6.0.2 (Nov 30, 2021)
bug fix: GrB_Matrix_export; numerical values not properly exported
v5.2.2 (Nov 30, 2021)
bug fix: GrB_Matrix_export; numerical values not properly exported
v6.0.1 (Nov 27, 2021)
Versions 6.0.1 and 5.2.1, Nov 27, 2021
* v6.x and v5.x: differ only in GrB_wait, GrB_Info, GrB_SCMP, and GxB_init
* (37) bug fix: C+=A'*B when the accum operator is the same as the monoid
and C is iso-full, and A or B are hypersparse (dot4 method).
* performance: GrB_select with user-defined GrB_IndexUnaryOp ~2x faster.
* performance: faster (MIN,MAX)_(FIRSTJ,SECONDI) semirings
v5.2.1 (Nov 27, 2021)
Versions 6.0.1 and 5.2.1, Nov 27, 2021
* v6.x and v5.x: differ only in GrB_wait, GrB_Info, GrB_SCMP, and GxB_init
* (37) bug fix: C+=A'*B when the accum operator is the same as the monoid
and C is iso-full, and A or B are hypersparse (dot4 method).
* performance: GrB_select with user-defined GrB_IndexUnaryOp ~2x faster.
* performance: faster (MIN,MAX)_(FIRSTJ,SECONDI) semirings
v6.0.0 (Nov 15, 2021)
Version 6.0.0, Nov 15, 2021
* v6.0.0: this release contains only a few changes that cause a
break with backward compatibility. It is otherwise identical to v5.2.0.
* Fully compliant with the v2.0 C API Specification: three changes from the
v2.0 C API Spec are not backward compatible: (GrB_*wait, GrB_Info
enum, and GrB_SCMP). GxB_init has also changed.
* GrB_wait (object, mode): was GrB_wait (&object).
* GrB_Info: changed enum values
* GrB_SCMP: removed
* GxB_init (mode, malloc, calloc, realloc, free, is_thread_safe): the
last parameter, is_thread_safe, is deleted.
The malloc/calloc/realloc/free functions must be thread-safe.
v5.2.0 (Nov 15, 2021)
Version 5.2.0, Nov 15, 2021
* Added for the v2.0 C API Specification: only features that are
backward compatible with SuiteSparse:GraphBLAS v5.x have been
added to v5.2.0.
* GrB_Scalar: replaces GxB_Scalar, GxB_Scalar_* functions renamed GrB
* GrB_IndexUnaryOp: new, free, fprint, wait
* GrB_select: selection via GrB_IndexUnaryOp
* GrB_apply: with GrB_IndexUnaryOp
* GrB_reduce: reduce matrix or vector to GrB_Scalar
* GrB_assign, GrB_subassion: with GrB_Scalar input
* GrB_*_extractElement_Scalar: get GrB_Scalar from a matrix or vector
* GrB*build: when dup is NULL, duplicates result in an error.
* GrB import/export: import/export from/to user-provided arrays
* GrB_EMPTY_OBJECT, GrB_NOT_IMPLEMENTED: error codes added
* GrB_*_setElement_Scalar: set an entry in a matrix or vector,
from a GrB_Scalar
* GrB_Matrix_diag: same as GxB_Matrix_diag (C, v, k, NULL)
* GrB_*_serialize/deserialize: with compression
* GrB_ONEB_T: binary operator, f(x,y)=1, the same as GxB_PAIR_T
* GxB*import* and GxB*export*: now historical; use GxB*pack/unpack*
* GxB_select: is now historical; use GrB_select instead.
* GxB_IGNORE_DUP: special operator for build methods only; if dup
is this operator, then duplicates are ignored (not an error)
* GxB_IndexUnaryOp_new: create a named index-unary operator
* GxB_BinaryOp_new: create a named binary operator
* GxB_UnaryOp_new: create a named unary operator
* GxB_Type_new: to create a named type
* GxB_Type_name: to query the name of a type
* added GxB_BinaryOp_xtype_name, GxB_BinaryOp_ytype_name,
GxB_BinaryOp_ztype_name, GxB_deserialize_type_name,
GxB_Matrix_type_name, GxB_Scalar_type_name, GxB_UnaryOp_xtype_name,
GxB_UnaryOp_ztype_name, GxB_IndexUnaryOp_xtype_name,
GxB_IndexUnaryOp_ytype_name, GxB_IndexUnaryOp_ztype_name,
GxB_Vector_type_name: to query the name of a type as a string
* GxB_BinaryOp_xtype, GxB_BinaryOp_ytype, GxB_BinaryOp_ztype,
GxB_Matrix_type, GxB_Scalar_type, GxB_SelectOp_ttype,
GxB_SelectOp_xtype, GxB_UnaryOp_xtype, GxB_UnaryOp_ztype,
GxB_Vector_type: declared historical; use *type_name methods.
* GxB_*_serialize/deserialize: with compression; optional descriptor
* GxB_Matrix_sort, GxB_Vector_sort: sort a matrix or vector
* GxB_eWiseUnion: like GrB_eWiseAdd except for how entries in A\B
and B/A are computed.
* added LZ4/LZ4HC: compression library, http://www.lz4.org (BSD 2),
v1.9.3, Copyright (c) 2011-2016, Yann Collet, All Rights Reserved.
* mis and pagerank demos: removed; mis added to LAGraph/experimental
* disabled free memory pool if OpenMP not available
* (36) bug fix: ewise C=A+B when all matrices are full, GBCOMPACT
not used, but GB_control.h disabled the operator or type.
Caught by Roi Lipman, Redis.
* (34) bug fix: C<M>=Z not returning C as iso if Z iso and C initialy
empty. Caught by Erik Welch, Anaconda.
* performance improvements: C=A*B: sparse/hyper times bitmap/full,
and visa versa, including C += A*B when C is full
v5.1.10 (Oct 27, 2021)
Bug fix: GB_selector was not updating ->plen properly.