MediaWiki
REL1_19
|
This diff implementation is mainly lifted from the LCS algorithm of the Eclipse project which in turn is based on Myers' "An O(ND) difference algorithm and its variations" (http://citeseer.ist.psu.edu/myers86ond.html) with range compression (see Wu et al. More...
Public Member Functions | |
__construct ($tooLong=2000000, $powLimit=1.45) | |
diff ($from, $to) | |
diff_range ($from_lines, $to_lines) | |
getLcsLength () | |
Public Attributes | |
$added | |
$heuristicUsed | |
$length | |
$removed | |
Private Member Functions | |
find_middle_snake ($bottoml1, $topl1, $bottoml2, $topl2, &$V, &$snake) | |
lcs_rec ($bottoml1, $topl1, $bottoml2, $topl2, &$V, &$snake) | |
Static Private Member Functions | |
static | findMostProgress ($M, $N, $limit, $V) |
Private Attributes | |
$from | |
$lcsLengthCorrectedForHeuristic = false | |
$m | |
$maxDifferences | |
$n | |
$powLimit | |
$to | |
$tooLong |
This diff implementation is mainly lifted from the LCS algorithm of the Eclipse project which in turn is based on Myers' "An O(ND) difference algorithm and its variations" (http://citeseer.ist.psu.edu/myers86ond.html) with range compression (see Wu et al.
's "An O(NP) Sequence Comparison Algorithm").
This implementation supports an upper bound on the excution time.
Complexity: O((M + N)D) worst case time, O(M + N + D^2) expected time, O(M + N) space
Definition at line 39 of file WikiDiff3.php.
WikiDiff3::__construct | ( | $ | tooLong = 2000000 , |
$ | powLimit = 1.45 |
||
) |
Definition at line 60 of file WikiDiff3.php.
WikiDiff3::diff | ( | $ | from, |
$ | to | ||
) |
WikiDiff3::diff_range | ( | $ | from_lines, |
$ | to_lines | ||
) |
WikiDiff3::find_middle_snake | ( | $ | bottoml1, |
$ | topl1, | ||
$ | bottoml2, | ||
$ | topl2, | ||
&$ | V, | ||
&$ | snake | ||
) | [private] |
Definition at line 258 of file WikiDiff3.php.
References $from, $limit, $to, findMostProgress(), and wfDebug().
Referenced by lcs_rec().
static WikiDiff3::findMostProgress | ( | $ | M, |
$ | N, | ||
$ | limit, | ||
$ | V | ||
) | [static, private] |
Definition at line 472 of file WikiDiff3.php.
References $limit.
Referenced by find_middle_snake().
Definition at line 555 of file WikiDiff3.php.
WikiDiff3::lcs_rec | ( | $ | bottoml1, |
$ | topl1, | ||
$ | bottoml2, | ||
$ | topl2, | ||
&$ | V, | ||
&$ | snake | ||
) | [private] |
Definition at line 216 of file WikiDiff3.php.
References find_middle_snake().
Referenced by diff().
WikiDiff3::$added |
Definition at line 57 of file WikiDiff3.php.
Referenced by diff().
WikiDiff3::$from [private] |
Definition at line 42 of file WikiDiff3.php.
Referenced by diff(), and find_middle_snake().
WikiDiff3::$heuristicUsed |
Definition at line 58 of file WikiDiff3.php.
WikiDiff3::$lcsLengthCorrectedForHeuristic = false [private] |
Definition at line 52 of file WikiDiff3.php.
WikiDiff3::$length |
Definition at line 55 of file WikiDiff3.php.
WikiDiff3::$m [private] |
Definition at line 44 of file WikiDiff3.php.
Referenced by diff().
WikiDiff3::$maxDifferences [private] |
Definition at line 51 of file WikiDiff3.php.
WikiDiff3::$n [private] |
Definition at line 45 of file WikiDiff3.php.
Referenced by diff().
WikiDiff3::$powLimit [private] |
Definition at line 48 of file WikiDiff3.php.
Referenced by __construct().
WikiDiff3::$removed |
Definition at line 56 of file WikiDiff3.php.
Referenced by diff().
WikiDiff3::$to [private] |
Definition at line 43 of file WikiDiff3.php.
Referenced by diff(), and find_middle_snake().
WikiDiff3::$tooLong [private] |
Definition at line 47 of file WikiDiff3.php.
Referenced by __construct().