78 lines
1.0 KiB
PHP
78 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace phpcommon;
|
|
|
|
function bnInit($str_v)
|
|
{
|
|
if (empty($str_v)) {
|
|
return gmp_init('0');
|
|
} else {
|
|
return gmp_init((string)$str_v);
|
|
}
|
|
}
|
|
|
|
function bnAdd($a, $b)
|
|
{
|
|
return gmp_add($a, $b);
|
|
}
|
|
|
|
function bnAdd_s($a, $b)
|
|
{
|
|
return bnToStr(gmp_add(bnInit($a), bnInit($b)));
|
|
}
|
|
|
|
function bnSub($a, $b)
|
|
{
|
|
return gmp_sub($a, $b);
|
|
}
|
|
|
|
function bnSub_s($a, $b)
|
|
{
|
|
return bnToStr(gmp_sub(bnInit($a), bnInit($b)));
|
|
}
|
|
|
|
function bnMul($a, $b)
|
|
{
|
|
return gmp_mul($a, $b);
|
|
}
|
|
|
|
function bnMul_s($a, $b)
|
|
{
|
|
return bnToStr(gmp_mul(bnInit($a), bnInit($b)));
|
|
}
|
|
|
|
function bnDiv($a, $b)
|
|
{
|
|
return gmp_div($a, $b);
|
|
}
|
|
|
|
function bnDiv_s($a, $b)
|
|
{
|
|
return bnToStr(gmp_div(bnInit($a), bnInit($b)));
|
|
}
|
|
|
|
function bnPow($v, $exp)
|
|
{
|
|
return gmp_pow($v, $exp);
|
|
}
|
|
|
|
function bnPow_s($v, $exp)
|
|
{
|
|
return bnToStr(gmp_pow(bnInit($v), $exp));
|
|
}
|
|
|
|
function bnAbs($v)
|
|
{
|
|
return gmp_abs($v);
|
|
}
|
|
|
|
function bnAbs_s($v)
|
|
{
|
|
return bnToStr(gmp_abs(bnInit($v)));
|
|
}
|
|
|
|
function bnToStr($v)
|
|
{
|
|
return gmp_strval($v);
|
|
}
|