diffson.lcs

package diffson.lcs

Type members

Classlikes

class DynamicProgLcs[T] extends Lcs[T]

Implementation of the LCS using dynamic programming.

Implementation of the LCS using dynamic programming.

Authors

Lucas Satabin

object Hashed
Companion
class
class Hashed[T](val value: T)(`evidence$2`: Eq[T])

Wraps provided value together with its hashCode. Equals is overridden to first check hashCode and then delegate to the wrapped value.

Wraps provided value together with its hashCode. Equals is overridden to first check hashCode and then delegate to the wrapped value.

Value Params
value

wrapped value

Companion
object
class HashedLcs[T](delegate: Lcs[Hashed[T]])(`evidence$1`: Eq[T]) extends Lcs[T]

Speeds up LCS computations by pre-computing hashes for all objects. Very useful for objects that recompute hashCodes on each invocation.

Speeds up LCS computations by pre-computing hashes for all objects. Very useful for objects that recompute hashCodes on each invocation.

Value Params
delegate

Decorated LCS implementation.

abstract class Lcs[T]

The interface to classes that computes the longest common subsequence between two sequences of elements

The interface to classes that computes the longest common subsequence between two sequences of elements

Authors

Lucas Satabin

class Patience[T](withFallback: Boolean)(`evidence$1`: Eq[T]) extends Lcs[T]

Implementation of the patience algorithm [1] to compute the longest common subsequence

Implementation of the patience algorithm [1] to compute the longest common subsequence

[1] http://alfedenzo.livejournal.com/170301.html

Value Params
withFallback

whether to fallback to classic LCS when patience could not find the LCS

Authors

Lucas Satabin