public interface MatrixElementOperations<E>
Graph/matrix multiplication requires the definition of two operations:
Together, computePathData() and mergePaths() specify how the equivalent of the vector inner (dot) product is to function.
For instance, to implement the equivalent of standard matrix multiplication on two graphs, computePathData() should return the products of the weights of a two-edge path, and mergePaths() should add the output of computePathData() to an existing edge (or possibly create such an edge if none exists).
Modifier and Type | Method and Description |
---|---|
java.lang.Number |
computePathData(E e1,
E e2)
If either e1 or e2 is null, the Object reference returned should be null.
|
java.util.Map<E,java.lang.Number> |
getEdgeData()
Returns a map from edges to values.
|
void |
mergePaths(E e,
java.lang.Object pathData)
If either e or pathData is null, the effect of mergePaths() is
implementation-dependent.
|
void mergePaths(E e, java.lang.Object pathData)
e
- (possibly) existing edge in the output graph which
represents a path in the input graph(s)pathData
- data (which represents another path with the same source
and destination as e in the input graphs) which is to be merged into ejava.lang.Number computePathData(E e1, E e2)
e1
- first edge from 2-edge path in input graph(s)e2
- second edge from 2-edge path in input graph(s)java.util.Map<E,java.lang.Number> getEdgeData()