anchor.diff:        Break;
     end;
     FDenominator := K[1];
  -  if Neg then
  +  if LNegative then
       FNumerator := -H[1]
     else
       FNumerator := H[1];
  
positive.code:     Exit;
    end;
  
    Neg := F < 0;
    if Neg then
      F := -F;
  
    while (F <> System.Trunc(F)) and (N < (High(Int64) shr 1)) do
  
negative.code:   H, K: array[0..2] of Int64;
    X, D, N: Int64;
    I: Integer;
    LNegative: Boolean;
    MustBreak: Boolean;
  begin
    H[0] := 0; H[1] := 1; H[2] := 0;
  