- Notifications
You must be signed in to change notification settings - Fork15
Description
Ingraphblas_algorithms, I would sometimes like to know whether the operator I'm using is "extremal" (explained later) when computing cached values.
Example operators:band,bor,land,lor,max,min, and maybeany (b/cany is a "special" monoid).
For example, for an undirected graph, I can compute the min element viaA.reduce_scalar(min)or byL.reduce_scalar(min). Using the lower diagonal matrixL would be preferred if it's available, because it should be faster.
What's a good name for this property? I describe it as extremal, because it has the following behavior:
Suppose we reduce a set of valuesS = {s_0, s_1, ...} with a monoidop and get the resultx.x is "extremal" ifop(x, s_i) == x for alls_i inS.
@DrTimothyAldenDavis, is there a good mathematical term for this property? These extremal monoids also have the property that their identity and terminal values are the boundaries of their domains.
@jim22k, what do you think of adding e.g.gb.monoid.min.is_extremal property to monoids?