Вход Регистрация
Файл: vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
Строк: 91
<?php

declare(strict_types=1);

namespace 
BrickMathInternalCalculator;

use 
BrickMathInternalCalculator;
use 
Override;

use function 
bcadd;
use function 
bcdiv;
use function 
bcmod;
use function 
bcmul;
use function 
bcpow;
use function 
bcpowmod;
use function 
bcsqrt;
use function 
bcsub;

/**
 * Calculator implementation built around the bcmath library.
 *
 * @internal
 */
final readonly class BcMathCalculator extends Calculator
{
    
#[Override]
    
public function add(string $astring $b): string
    
{
        return 
bcadd($a$b0);
    }

    
#[Override]
    
public function sub(string $astring $b): string
    
{
        return 
bcsub($a$b0);
    }

    
#[Override]
    
public function mul(string $astring $b): string
    
{
        return 
bcmul($a$b0);
    }

    
#[Override]
    
public function divQ(string $astring $b): string
    
{
        return 
bcdiv($a$b0);
    }

    
#[Override]
    
public function divR(string $astring $b): string
    
{
        return 
bcmod($a$b0);
    }

    
#[Override]
    
public function divQR(string $astring $b): array
    {
        
$q bcdiv($a$b0);
        
$r bcmod($a$b0);

        return [
$q$r];
    }

    
#[Override]
    
public function pow(string $aint $e): string
    
{
        return 
bcpow($a, (string) $e0);
    }

    
#[Override]
    
public function modPow(string $basestring $expstring $mod): string
    
{
        
// normalize to Euclidean representative so modPow() stays consistent with mod()
        
$base $this->mod($base$mod);

        return 
bcpowmod($base$exp$mod0);
    }

    
#[Override]
    
public function sqrt(string $n): string
    
{
        return 
bcsqrt($n0);
    }
}
Онлайн: 2
Реклама