Python-graphblas

Latest version: v2024.2.0

Safety actively analyzes 681881 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 17 of 21

3.2.0

* GxB_*_define for user-defined compile-time objects: removed. Not
compatible with the faster kernels for mxm and dense matrices/vectors.
Use the GrB_*_new functions in the GraphBLAS C API Specification
instead.
* faster saxpy-based matrix multiply (about 5x to 10x for mxv and vxm):
removed Sauna workspace. Heap method removed. Hash method added.
* better performance for dense matrix and vectors
* faster typecast of the mask matrix M: GB_mcast replaces cast_M
* added GB_BURBLE: for development diagnostics
* changed default chunk size: from 4K to 64K
* added the PAIR binary operator: f(x,y)=1
* added the ANY binary operator: f(x,y)=x, or f(x,y)=y ; arbitrary choice
* added structural mask: from v1.3 C API Specification
* added GrB_DESC_*: predefined descriptor, from v1.3 C API Specification
* many atomics added: for the faster matrix multiply. These changes have
not been ported to Microsoft Visual Studio, which only supports a
subset of "pragma omp atomic" statements. This will be resolved in a
future version; in the meantime, use v3.1.2 with MS Visual Studio
instead of v3.2.0.

1.3.15.1

Fix failing import in Python 3.10

1.3.15

- Update to SuiteSparse:GraphBLAS 6.1.3
- Add format such as `"csr"` to object reprs
- Much faster import time!
- All `grblas` objects may now be pickled/serialized
- `grblas.ss.concat` can now concatenate Vectors:
- `gb.ss.concat([v, v]) Vector, size=2*N`
- `gb.ss.concat([[v], [v]]) Matrix, nrows=2*N, ncols=1`
- `gb.ss.concat([[v, v]]) Matrix, nrows=N, ncols=2`
- Add `Vector.ss.split` to split a Vector into sub-Vectors
- Add `.ndim` attribute to Scalar, Vector, and Matrix objects and expressions

1.3.14

- Support infix between non-scalar (i.e., Matrix and Vector) objects! Here are the rules:
- monoids with identity 0 use `ewise_add`: `+`,`^`, and `|`.
- `A - B` will use `GxB_eWiseUnion` with `0` as the defaults (**not yet supported!**)
- others use `ewise_mult`
- Use numpy rules for unifying types, including when scalars are used.
- For example, `A + c` with `A.dtype == 'INT8'` and `c.dtype == 'INT64'` will result in `INT8` dtype by default.
- See: https://numpy.org/doc/stable/reference/generated/numpy.find_common_type.html
- Allow `ss.concat` to use expressions, such as `ss.concat([[A, A.T, A + 1]])`
- **Fix:** removed `op.div`, added `op.truediv`, and made sure `op` namespace matches other operator namespaces

1.3.13

Deprecations:
- Changed e.g. `reduce_rows` to `reduce_rowwise` and deprecate the former
Updates:
- Added `x.ss.selectk(how, k)` methods for vectors and matrices
- `how` can be `"random"`, `"first"`, `"last"`. Vector also supports `"largest"` and `"smallest"`
- Allow operators to be given as strings, such as `A.mxm(B, 'min.+[float]')`
- Also added from_string functions such as `gb.binary.from_string('+')`
- `x | y`, `x & y`, `x ^ y`, and `~x` infix is only value-y for bool dtypes
- `x | y` and `x ^ y` uses ewise_add, `x & y` uses ewise_mult
- Add `op.commutes_to` and `op.is_commutative` to binaryops, monoids, and semirings
- Support slices from SuiteSparse (can now perform huge slices on huge objects!)
- Recorder now logs exceptional C calls and their errors
- Improved `get_semiring(monoid, binaryop)` to better handle ops from numpy namespaces.
- Make `dtype=` an optional positional argument (like NumPy does), not keyword-only
- Map numpy ops in e.g. gb.binary.numpy to GraphBLAS ops (by default)
Fixes:
- Fixed `truediv` on complex dtypes
- Fixed displaying of `nan` in reprs
- Fixed repr of large iso-valued objects
- Fixed types of `land`, `lor`, and `lxor` binary operators (not bool only)

1.3.12

- Add infix notation for comparators and math operations with scalars
- `A < B` (creates expression; uses ewise_mult)
- `A + 1` (creates expression; uses apply)
- `A -= 1` (updates A)
- Not valid: `A + B`; the user must choose ewise_add or ewise_mult
- Add `matrix.ss.flatten()` to flatten to a vector row-wise or column-wise
- Add `vector.ss.reshape(nrows, ncols)` to reshape to a matrix row-wise or column-wise
- Add "COOR" and "COOC" format options for importing and exporting matrices
- COOR is coordinate format sorted row-wise
- COOC is sorted column-wise
- Add configuration (via `donfig`) to enable/disable autocomputation of expressions
- For example, `with grblas.config.set(autocompute=True):`
- Change `Recorder()` argument from `record=False` to `start=True`

Page 17 of 21

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.