• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP gmp_mul函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中gmp_mul函数的典型用法代码示例。如果您正苦于以下问题:PHP gmp_mul函数的具体用法?PHP gmp_mul怎么用?PHP gmp_mul使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了gmp_mul函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: fact

function fact($x)
{
    if ($x <= 1) {
        return 1;
    }
    return gmp_mul($x, fact($x - 1));
}
开发者ID:badlamer,项目名称:hhvm,代码行数:7,代码来源:002.php


示例2: GetFriendID

function GetFriendID($pszAuthID)
{
    $iServer = "0";
    $iAuthID = "0";
    $szAuthID = $pszAuthID;
    $szTmp = strtok($szAuthID, ":");
    while (($szTmp = strtok(":")) !== false) {
        $szTmp2 = strtok(":");
        if ($szTmp2 !== false) {
            $iServer = $szTmp;
            $iAuthID = $szTmp2;
        }
    }
    if ($iAuthID == "0") {
        return false;
    }
    if (extension_loaded('bcmath') == 1) {
        // calc communityid with bcmath
        $i64friendID = bcmul($iAuthID, "2");
        $i64friendID = bcadd($i64friendID, bcadd("76561197960265728", $iServer, 0), 0);
        return $i64friendID;
    } else {
        if (extension_loaded('gmp') == 1) {
            // calc communityid with gmp
            $i64friendID = gmp_mul($iAuthID, "2");
            $i64friendID = gmp_add($i64friendID, gmp_add("76561197960265728", $iServer));
            return gmp_strval($i64friendID);
        } else {
            $i64friendID = Mul(strval($iAuthID), "2");
            $i64friendID = Add(strval($i64friendID), Add("76561197960265728", strval($iServer)));
            return $i64friendID;
        }
    }
    return false;
}
开发者ID:GoeGaming,项目名称:bans.sevenelevenclan.org,代码行数:35,代码来源:steam.inc.php


示例3: setValue

 public function setValue(Content $content)
 {
     $binaryData = $content->binaryData;
     $offsetIndex = 0;
     $contentLength = $this->contentLength->length;
     $isNegative = (ord($binaryData[$offsetIndex]) & 0x80) != 0x0;
     $number = gmp_init(ord($binaryData[$offsetIndex++]) & 0x7f, 10);
     for ($i = 0; $i < $contentLength - 1; $i++) {
         $number = gmp_or(gmp_mul($number, 0x100), ord($binaryData[$offsetIndex++]));
     }
     if ($isNegative) {
         $number = gmp_sub($number, gmp_pow(2, 8 * $contentLength - 1));
     }
     $value = gmp_strval($number, 10);
     if (is_string($value)) {
         // remove gaps between hex digits
         $value = preg_replace('/\\s|0x/', '', $value);
     } elseif (is_numeric($value)) {
         $value = dechex($value);
     } else {
         throw new Exception('OctetString: unrecognized input type!');
     }
     if (strlen($value) % 2 != 0) {
         // transform values like 1F2 to 01F2
         $value = '0' . $value;
     }
     $this->value = $value;
 }
开发者ID:Adapik,项目名称:PHPASN1,代码行数:28,代码来源:Integer.php


示例4: get_funds_graph_data

function get_funds_graph_data()
{
    $btc = array();
    $fiat = array();
    $query = "\n        SELECT\n            req_type, amount, curr_type, " . sql_format_date('timest') . " AS timest2\n        FROM\n            requests\n        WHERE\n            status != 'CANCEL'\n        ORDER BY\n            timest;\n    ";
    $result = do_query($query);
    $btc_sum = 0;
    $fiat_sum = 0;
    while ($row = mysql_fetch_array($result)) {
        $req_type = $row['req_type'];
        $amount = $row['amount'];
        $curr_type = $row['curr_type'];
        $timest = $row['timest2'];
        if ($req_type == 'WITHDR') {
            $amount = gmp_mul(-1, $amount);
        }
        if ($curr_type == 'BTC') {
            $btc_sum = gmp_add($btc_sum, $amount);
            $btc[$timest] = internal_to_numstr($btc_sum);
        } else {
            $fiat_sum = gmp_add($fiat_sum, $amount);
            $fiat[$timest] = internal_to_numstr($fiat_sum);
        }
    }
    return array($btc, $fiat);
}
开发者ID:martinkirov,项目名称:intersango,代码行数:26,代码来源:graph.php


示例5: to64Bit

 /**
  * Convert 32-bit SteamID to 64-bit SteamID
  *
  * @param string|int $userId
  *
  * @return string
  * @throws Exception
  */
 public static function to64Bit($userId)
 {
     if (!function_exists('gmp_add')) {
         throw new Exception("GMP Library not installed. Cannot convert SteamIDs.");
     }
     return gmp_strval(gmp_add(gmp_mul(sprintf("%u", bindec(self::STEAM_ID_UPPER_BITS)), "4294967296"), sprintf("%u", $userId)));
 }
开发者ID:sjaakmoes,项目名称:dotapi2,代码行数:15,代码来源:UserId.php


示例6: assetNameToIDHex

 protected function assetNameToIDHex($asset_name)
 {
     if ($asset_name == 'BTC') {
         return '0';
     }
     if ($asset_name == 'XCP') {
         return '1';
     }
     if (substr($asset_name, 0, 1) == 'A') {
         // numerical asset
         // An integer between 26^12 + 1 and 256^8 (inclusive)
         $asset_id = gmp_init(substr($asset_name, 1));
         if ($asset_id < gmp_init(26) ** 12 + 1) {
             throw new Exception("Asset ID was too low", 1);
         }
         if ($asset_id > gmp_init(2) ** 64 - 1) {
             throw new Exception("Asset ID was too high", 1);
         }
         return gmp_strval($asset_id, 16);
     }
     $n = gmp_init(0);
     for ($i = 0; $i < strlen($asset_name); $i++) {
         $n = gmp_mul($n, 26);
         $char = ord(substr($asset_name, $i, 1));
         if ($char < 65 or $char > 90) {
             throw new Exception("Asset name invalid", 1);
         }
         $digit = $char - 65;
         $n = gmp_add($n, $digit);
     }
     return gmp_strval($n, 16);
 }
开发者ID:tokenly,项目名称:counterparty-transaction-composer,代码行数:32,代码来源:OpReturnBuilder.php


示例7: testMul

 public function testMul()
 {
     $this->assertEquals(gmp_strval(gmp_mul($this->a, $this->a)), $this->math->mul($this->a, $this->a));
     $this->assertEquals(gmp_strval(gmp_mul($this->b, $this->b)), $this->math->mul($this->b, $this->b));
     $this->assertEquals(gmp_strval(gmp_mul($this->c, $this->c)), $this->math->mul($this->c, $this->c));
     $this->assertEquals(1, $this->math->mul(1, 1));
 }
开发者ID:Invision70,项目名称:php-bitpay-client,代码行数:7,代码来源:GmpEngineTest.php


示例8: _bindecGmp

 /**
 * binary decode using gmp extension 
 */
 private static function _bindecGmp($bin)
 {
     $dec = gmp_init(0);
     for ($i = 0; $i < strlen($bin); $i++) {
         $dec = gmp_add(gmp_mul($dec, 256), ord($bin[$i]));
     }
     return $dec;
 }
开发者ID:uwitec,项目名称:outbuying,代码行数:11,代码来源:Dsa.php


示例9: bin2dec

 public function bin2dec($bin)
 {
     $dec = '0';
     for ($i = 0, $len = strlen($bin); $i < $len; $i++) {
         $dec = gmp_add(gmp_mul($dec, 2), $bin[$i]);
     }
     return $dec;
 }
开发者ID:kemoycampbell,项目名称:PHP-RSA,代码行数:8,代码来源:GMP.php


示例10: fact

function fact($x)
{
    $return = 1;
    for ($i = 2; $i <= $x; $i++) {
        $return = gmp_mul($return, $i);
    }
    return $return;
}
开发者ID:exakat,项目名称:exakat,代码行数:8,代码来源:Extgmp.01.php


示例11: makeId32

 private function makeId32($timestamp, $machine, $sequence)
 {
     $timestamp = gmp_mul((string) $timestamp, gmp_pow(2, 22));
     $machine = gmp_mul((string) $machine, gmp_pow(2, 12));
     $sequence = gmp_init((string) $sequence, 10);
     $value = gmp_or(gmp_or($timestamp, $machine), $sequence);
     return gmp_strval($value, 10);
 }
开发者ID:AlexanderGrom,项目名称:php-snowflake,代码行数:8,代码来源:snowflake.php


示例12: extractd

function extractd(&$n1, &$n2, $d, $y)
{
    global $u;
    $u = gmp_mul($d, gmp_mul(-10, $y));
    $n1 = gmp_mul($n1, 10);
    $n1 = gmp_add($n1, $u);
    $n2 = gmp_mul($n2, 10);
    $n2 = gmp_add($n2, $u);
}
开发者ID:neoedmund,项目名称:benchmarksgame,代码行数:9,代码来源:pidigits.php-3.php


示例13: generate

 public function generate($serial)
 {
     $mul = gmp_mul(strval($this->mulFactor), strval($serial));
     $add = gmp_add($mul, $this->diffFactor);
     $mod = gmp_mod($add, strval($this->amount));
     $num = gmp_strval($mod);
     //        $num = ($this->mulFactor * $serial + $this->diffFactor) % $this->amount;
     return str_pad($num, $this->length, $this->padding, STR_PAD_LEFT);
 }
开发者ID:qiuqiux,项目名称:serialno,代码行数:9,代码来源:PseudoRandom.php


示例14: getBits

 /**
  * @param $value
  *
  * @return string
  */
 public static function getBits($value)
 {
     $bits = [];
     for ($i = gmp_init(1); gmp_cmp($value, $i) >= 0; $i = gmp_mul($i, 2)) {
         if (static::has($value, $i)) {
             $bits[] = gmp_strval($i);
         }
     }
     return $bits;
 }
开发者ID:packaged,项目名称:helpers,代码行数:15,代码来源:BitWiseGmp.php


示例15: readNumber

function readNumber($fd, $len)
{
    $val = gmp_init(0);
    for ($inx = 0; $inx < $len; $inx++) {
        $data = fread($fd, 1);
        $val = gmp_mul($val, gmp_init(256));
        $val = gmp_add($val, gmp_init(ord($data[0])));
    }
    return $val;
}
开发者ID:patrickz98,项目名称:xavaro,代码行数:10,代码来源:EPGDatabaseDump.php


示例16: loadbits

 function loadbits($bits)
 {
     foreach ($bits as $key => $value) {
         $this->_bitmap[$key] = $value;
         if ($value > $this->_curbit) {
             $this->_curbit = $value;
         }
     }
     $this->_curbit = gmp_mul($this->_curbit, 2);
 }
开发者ID:jorgenils,项目名称:zend-framework,代码行数:10,代码来源:GMP.php


示例17: edwards

 public function edwards($P, $Q)
 {
     $x1 = $P[0];
     $y1 = $P[1];
     $x2 = $Q[0];
     $y2 = $Q[1];
     $t = gmp_mul($this->params['d'], gmp_mul(gmp_mul($x1, $x2), gmp_mul($y1, $y2)));
     $x3 = gmp_mul(gmp_add(gmp_mul($x1, $y2), gmp_mul($x2, $y1)), $this->inv(gmp_add(1, $t)));
     $y3 = gmp_mul(gmp_add(gmp_mul($y1, $y2), gmp_mul($x1, $x2)), $this->inv(gmp_sub(1, $t)));
     return array(gmp_mod($x3, $this->params['q']), gmp_mod($y3, $this->params['q']));
 }
开发者ID:fpoirotte,项目名称:pssht,代码行数:11,代码来源:ED25519.php


示例18: computeBaseNDigits

 private function computeBaseNDigits($number, $targetBase)
 {
     $digits = array();
     $length = $this->computeBaseNLength($number, $targetBase);
     for ($i = 0; $i < $length; $i++) {
         $pow = gmp_pow($targetBase, $length - $i - 1);
         $div = gmp_div($number, $pow, GMP_ROUND_ZERO);
         $number = gmp_sub($number, gmp_mul($div, $pow));
         $digits[] = $div;
     }
     return array_map('gmp_strval', $digits);
 }
开发者ID:thunderer,项目名称:numbase,代码行数:12,代码来源:GmpConverter.php


示例19: decode

 /**
  * Decode an integer.
  *
  * @param  int $value
  * @return int
  */
 public function decode($value)
 {
     if (!is_numeric($value)) {
         throw new InvalidArgumentException('Argument should be an integer');
     }
     switch (static::$mode) {
         case static::MODE_GMP:
             return gmp_intval(gmp_mul((int) $value ^ $this->xor, $this->inverse)) & static::MAX_INT;
         default:
             return ((int) $value ^ $this->xor) * $this->inverse & static::MAX_INT;
     }
 }
开发者ID:vienis,项目名称:optimus,代码行数:18,代码来源:Optimus.php


示例20: verifies

 public function verifies($hash, Signature $signature)
 {
     if (extension_loaded('gmp') && USE_EXT == 'GMP') {
         $G = $this->generator;
         $n = $this->generator->getOrder();
         $point = $this->point;
         $r = $signature->getR();
         $s = $signature->getS();
         if (gmp_cmp($r, 1) < 0 || gmp_cmp($r, gmp_sub($n, 1)) > 0) {
             return false;
         }
         if (gmp_cmp($s, 1) < 0 || gmp_cmp($s, gmp_sub($n, 1)) > 0) {
             return false;
         }
         $c = NumberTheory::inverse_mod($s, $n);
         $u1 = gmp_Utils::gmp_mod2(gmp_mul($hash, $c), $n);
         $u2 = gmp_Utils::gmp_mod2(gmp_mul($r, $c), $n);
         $xy = Point::add(Point::mul($u1, $G), Point::mul($u2, $point));
         $v = gmp_Utils::gmp_mod2($xy->getX(), $n);
         if (gmp_cmp($v, $r) == 0) {
             return true;
         } else {
             return false;
         }
     } else {
         if (extension_loaded('bcmath') && USE_EXT == 'BCMATH') {
             $G = $this->generator;
             $n = $this->generator->getOrder();
             $point = $this->point;
             $r = $signature->getR();
             $s = $signature->getS();
             if (bccomp($r, 1) == -1 || bccomp($r, bcsub($n, 1)) == 1) {
                 return false;
             }
             if (bccomp($s, 1) == -1 || bccomp($s, bcsub($n, 1)) == 1) {
                 return false;
             }
             $c = NumberTheory::inverse_mod($s, $n);
             $u1 = bcmod(bcmul($hash, $c), $n);
             $u2 = bcmod(bcmul($r, $c), $n);
             $xy = Point::add(Point::mul($u1, $G), Point::mul($u2, $point));
             $v = bcmod($xy->getX(), $n);
             if (bccomp($v, $r) == 0) {
                 return true;
             } else {
                 return false;
             }
         } else {
             throw new ErrorException("Please install BCMATH or GMP");
         }
     }
 }
开发者ID:AliceWonderMiscreations,项目名称:ColdAddress,代码行数:52,代码来源:PublicKey.php



注:本文中的gmp_mul函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP gmp_nextprime函数代码示例发布时间:2022-05-15
下一篇:
PHP gmp_mod函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap