pygraphblas 3.4.0
This release includes a lot of changes:
- The result type of an operation is now determined by the types of its inputs, not just the type of the left input. If an explicit semiring is provided, the result type is now always the ztype of the binaryop of the semiring monoid. If no explicit semiring is provided then types are promoted according to C like rules.
- Matrices and vectors now support apply_first and apply_second, and also support Matrix/Vector with scalar math, so A * 3
will apply TIMES with apply_second to A.
- Binary math operators (+ - * /)
and their in place forms now all are equivalent to A.eadd(B, op=...)
. This makes them more consistent with the above apply operations.
- New operators |
and &
now map to eadd
and emult
. So the old behavior of doing an emult with * can be had with:
with TIMES: C = A & B
which is the same as C = A.emult(B, TIMES)
. There are also |=
and &=
in place versions.
- Coverage has gone up about 8% to 92%. I'm aiming for 100% coverage soon.
- New docker images are a bit leaner. I'm not using the new images by Tobias Bergkvist yet but I hope to by the next release.
- And finally I'm disconnecting from tracking the same version numbers as SuiteSparse, it was convenient for a time but as of 3.4.0 pygraphblas versions will diverge. I may still keep major numbers in sync with SuiteSparse major releases but the minor numbers are now unrelated.