+++ /dev/null
-/**
- * Copyright (c) 2008, the JUNG Project and the Regents of the University
- * of California
- * All rights reserved.
- *
- * This software is open-source under the BSD license; see either
- * "license.txt" or
- * http://jung.sourceforge.net/license.txt for a description.
- * Created on Jul 14, 2008
- *
- */
-package edu.uci.ics.jung.algorithms.scoring.util;
-
-import org.apache.commons.collections15.Transformer;
-
-import edu.uci.ics.jung.graph.Hypergraph;
-import edu.uci.ics.jung.graph.util.EdgeType;
-
-/**
- * An edge weight function that assigns weights as uniform
- * transition probabilities.
- * For undirected edges, returns 1/degree(v) (where 'v' is the
- * vertex in the VEPair.
- * For directed edges, returns 1/outdegree(source(e)) (where 'e'
- * is the edge in the VEPair).
- * Throws an <code>IllegalArgumentException</code> if the input
- * edge is neither EdgeType.UNDIRECTED nor EdgeType.DIRECTED.
- *
- */
-public class UniformDegreeWeight<V, E> implements
- Transformer<VEPair<V, E>, Double>
-{
- private Hypergraph<V, E> graph;
-
- /**
- * Creates an instance for the specified graph.
- */
- public UniformDegreeWeight(Hypergraph<V, E> graph)
- {
- this.graph = graph;
- }
-
- /**
- * @see org.apache.commons.collections15.Transformer#transform(java.lang.Object)
- */
- public Double transform(VEPair<V, E> ve_pair)
- {
- E e = ve_pair.getE();
- V v = ve_pair.getV();
- EdgeType edge_type = graph.getEdgeType(e);
- if (edge_type == EdgeType.UNDIRECTED)
- return 1.0 / graph.degree(v);
- if (edge_type == EdgeType.DIRECTED)
- return 1.0 / graph.outDegree(graph.getSource(e));
- throw new IllegalArgumentException("can't handle edge type: " + edge_type);
- }
-
-}