Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## edu.uci.ics.jung.algorithms
Interface MatrixElementOperations

All Known Implementing Classes:
  RealMatrixElementOperations

public interface MatrixElementOperations

An interface for specifying the behavior of graph/matrix operations for a particular element type.

Graph/matrix multiplication requires the definition of two operations:

1. Calculating an aggregate property of paths of length 2 between two vertices v1 and v2 (analogous to element multiplication in matrix arithmetic); this is handled by computePathData().
2. Aggregating the properties of all such paths, and assigning the result to a new edge in the output graph (analogous to element addition in matrix arithmetic); this is handled by mergePaths().

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).

Author:
  Joshua O'Madadhain

Method Summary
`Object` | `computePathData(Edge e1, Edge e2)` If either e1 or e2 is null, the Object reference returned should be null.
`void` | `mergePaths(Edge e, Object pathData)` If either e or pathData is null, the effect of mergePaths() is implementation-dependent.

Method Detail

### mergePaths

    public void mergePaths(Edge e,
                           Object pathData)

  If either e or pathData is null, the effect of mergePaths() is implementation-dependent.

  Parameters:
    `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 e

### computePathData

    public Object computePathData(Edge e1,
                                  Edge e2)

  If either e1 or e2 is null, the Object reference returned should be null.

  Parameters:
    `e1` - first edge from 2-edge path in input graph(s)
    `e2` - second edge from 2-edge path in input graph(s)
  Returns:
    aggregation of data from the edges of the 2-edge path (from source of e1 to destination of e2) comprised of (e1, e2)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD