You are here

public function ParagonIE_Sodium_Core32_Int64::subInt64 in Automatic Updates 7

Same name and namespace in other branches
  1. 8 vendor/paragonie/sodium_compat/src/Core32/Int64.php \ParagonIE_Sodium_Core32_Int64::subInt64()

The difference between two Int64 objects.

Parameters

ParagonIE_Sodium_Core32_Int64 $b:

Return value

ParagonIE_Sodium_Core32_Int64

File

vendor/paragonie/sodium_compat/src/Core32/Int64.php, line 825

Class

ParagonIE_Sodium_Core32_Int64
Class ParagonIE_Sodium_Core32_Int64

Code

public function subInt64(ParagonIE_Sodium_Core32_Int64 $b) {
  $return = new ParagonIE_Sodium_Core32_Int64();
  $return->unsignedInt = $this->unsignedInt;

  /** @var int $carry */
  $carry = 0;
  for ($i = 3; $i >= 0; --$i) {

    /** @var int $tmp */
    $tmp = $this->limbs[$i] - $b->limbs[$i] + $carry;

    /** @var int $carry */
    $carry = $tmp >> 16;
    $return->limbs[$i] = (int) ($tmp & 0xffff);
  }
  return $return;
}