当前位置: 首页>>代码示例>>PHP>>正文


PHP Math_BigInteger::_karatsubaSquare方法代码示例

本文整理汇总了PHP中Math_BigInteger::_karatsubaSquare方法的典型用法代码示例。如果您正苦于以下问题:PHP Math_BigInteger::_karatsubaSquare方法的具体用法?PHP Math_BigInteger::_karatsubaSquare怎么用?PHP Math_BigInteger::_karatsubaSquare使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Math_BigInteger的用法示例。


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

示例1: count

 /**
  * Performs Karatsuba "squaring" on two BigIntegers
  *
  * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
  * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}.
  *
  * @param Math_BigInteger $y
  * @return Math_BigInteger
  * @access private
  */
 function _karatsubaSquare()
 {
     $m = count($this->value) >> 1;
     if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) {
         return $this->_square();
     }
     $x1 = new Math_BigInteger();
     $x0 = new Math_BigInteger();
     $x1->value = array_slice($this->value, $m);
     $x0->value = array_slice($this->value, 0, $m);
     $z2 = $x1->_karatsubaSquare();
     $z0 = $x0->_karatsubaSquare();
     $z1 = $x1->add($x0);
     $z1 = $z1->_karatsubaSquare();
     $z1 = $z1->subtract($z2->add($z0));
     $z2->value = array_merge(array_fill(0, 2 * $m, 0), $z2->value);
     $z1->value = array_merge(array_fill(0, $m, 0), $z1->value);
     $xx = $z2->add($z1);
     $xx = $xx->add($z0);
     return $xx;
 }
开发者ID:helenadeus,项目名称:s3db.map,代码行数:31,代码来源:BigInteger.php


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