equal
deleted
inserted
replaced
335 $base = 1 << $baseLog2; |
335 $base = 1 << $baseLog2; |
336 for ($i = 0; $i < $a_l; ++$i) { |
336 for ($i = 0; $i < $a_l; ++$i) { |
337 $a_i = $a[$i]; |
337 $a_i = $a[$i]; |
338 for ($j = 0; $j < $a_l; ++$j) { |
338 for ($j = 0; $j < $a_l; ++$j) { |
339 $b_j = $b[$j]; |
339 $b_j = $b[$j]; |
340 $product = ($a_i * $b_j) + $r[$i + $j]; |
340 $product = (($a_i * $b_j) + $r[$i + $j]); |
341 $carry = ($product >> $baseLog2 & 0xffff); |
341 $carry = (((int) $product >> $baseLog2) & 0xffff); |
342 $r[$i + $j] = ($product - (int) ($carry * $base)) & 0xffff; |
342 $r[$i + $j] = ((int) $product - (int) ($carry * $base)) & 0xffff; |
343 $r[$i + $j + 1] += $carry; |
343 $r[$i + $j + 1] += $carry; |
344 } |
344 } |
345 } |
345 } |
346 return array_slice($r, 0, 5); |
346 return array_slice($r, 0, 5); |
347 } |
347 } |