WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
функция не описана

ParagonIE_Sodium_Core32_Int64::mulInt64() public WP 1.0

Это метод класса: ParagonIE_Sodium_Core32_Int64{}

Хуков нет.

Возвращает

ParagonIE_Sodium_Core32_Int64.

Использование

$ParagonIE_Sodium_Core32_Int64 = new ParagonIE_Sodium_Core32_Int64();
$ParagonIE_Sodium_Core32_Int64->mulInt64( $int, $size );
$int(ParagonIE_Sodium_Core32_число64) (обязательный)
$size(число)

По умолчанию: 0

Код ParagonIE_Sodium_Core32_Int64::mulInt64() WP 5.5.1

<?php
public function mulInt64(ParagonIE_Sodium_Core32_Int64 $int, $size = 0)
{
    if (ParagonIE_Sodium_Compat::$fastMult) {
        return $this->mulInt64Fast($int);
    }
    ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2);
    if (!$size) {
        $size = 63;
    }
    list($a, $b) = self::ctSelect($this, $int);

    $return = new ParagonIE_Sodium_Core32_Int64();
    $return->unsignedInt = $this->unsignedInt;

    // Initialize:
    $ret0 = 0;
    $ret1 = 0;
    $ret2 = 0;
    $ret3 = 0;
    $a0 = $a->limbs[0];
    $a1 = $a->limbs[1];
    $a2 = $a->limbs[2];
    $a3 = $a->limbs[3];
    $b0 = $b->limbs[0];
    $b1 = $b->limbs[1];
    $b2 = $b->limbs[2];
    $b3 = $b->limbs[3];

    /** @var int $size */
    /** @var int $i */
    for ($i = (int) $size; $i >= 0; --$i) {
        $mask = -($b3 & 1);
        $x0 = $a0 & $mask;
        $x1 = $a1 & $mask;
        $x2 = $a2 & $mask;
        $x3 = $a3 & $mask;

        $ret3 += $x3;
        $c = $ret3 >> 16;

        $ret2 += $x2 + $c;
        $c = $ret2 >> 16;

        $ret1 += $x1 + $c;
        $c = $ret1 >> 16;

        $ret0 += $x0 + $c;

        $ret0 &= 0xffff;
        $ret1 &= 0xffff;
        $ret2 &= 0xffff;
        $ret3 &= 0xffff;

        $a3 = $a3 << 1;
        $x3 = $a3 >> 16;
        $a2 = ($a2 << 1) | $x3;
        $x2 = $a2 >> 16;
        $a1 = ($a1 << 1) | $x2;
        $x1 = $a1 >> 16;
        $a0 = ($a0 << 1) | $x1;
        $a0 &= 0xffff;
        $a1 &= 0xffff;
        $a2 &= 0xffff;
        $a3 &= 0xffff;

        $x0 = ($b0 & 1) << 16;
        $x1 = ($b1 & 1) << 16;
        $x2 = ($b2 & 1) << 16;

        $b0 = ($b0 >> 1);
        $b1 = (($b1 | $x0) >> 1);
        $b2 = (($b2 | $x1) >> 1);
        $b3 = (($b3 | $x2) >> 1);

        $b0 &= 0xffff;
        $b1 &= 0xffff;
        $b2 &= 0xffff;
        $b3 &= 0xffff;

    }
    $return->limbs[0] = $ret0;
    $return->limbs[1] = $ret1;
    $return->limbs[2] = $ret2;
    $return->limbs[3] = $ret3;

    return $return;
}