Copyright 2008 - 2009 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg

This software is released under an open source BSD licence.

fj.data.fingertrees
Class Measured<V,A>

java.lang.Object
  extended by fj.data.fingertrees.Measured<V,A>

public final class Measured<V,A>
extends Object

Determines how the elements of a tree are measured and how measures are summed. Consists of a monoid and a measuring function. Different instances of this class will result in different behaviours for the tree.


Method Summary
 Measured<V,Digit<V,A>> digitMeasured()
          A measured instance for digits.
 F<A,V> measure()
          Returns the measuring function.
 V measure(A a)
          Measures a given element.
static
<V,A> Measured<V,A>
measured(Monoid<V> m, F<A,V> measure)
           
 Monoid<V> monoid()
          Returns the monoid used to sum measures.
 Measured<V,Node<V,A>> nodeMeasured()
          A measured instance for nodes.
 V sum(V a, V b)
          Sums the given measurements with the monoid.
 V zero()
          Returns the identity measurement for the monoid.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

measured

public static <V,A> Measured<V,A> measured(Monoid<V> m,
                                           F<A,V> measure)

monoid

public Monoid<V> monoid()
Returns the monoid used to sum measures.

Returns:
the monoid used to sum measures.

measure

public F<A,V> measure()
Returns the measuring function.

Returns:
the measuring function.

measure

public V measure(A a)
Measures a given element.

Parameters:
a - An element to measure.
Returns:
the element's measurement.

sum

public V sum(V a,
             V b)
Sums the given measurements with the monoid.

Parameters:
a - A measurement to add to another.
b - A measurement to add to another.
Returns:
The sum of the two measurements.

zero

public V zero()
Returns the identity measurement for the monoid.

Returns:
the identity measurement for the monoid.

nodeMeasured

public Measured<V,Node<V,A>> nodeMeasured()
A measured instance for nodes.

Returns:
A measured instance for nodes.

digitMeasured

public Measured<V,Digit<V,A>> digitMeasured()
A measured instance for digits.

Returns:
A measured instance for digits.

Copyright 2008 - 2009 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg

This software is released under an open source BSD licence.