public function mul(Decimal $b, $scale = null)
{
self::paramsValidation($b, $scale);
if ($b->isInfinite()) {
return $b->mul($this);
} elseif ($b->isZero()) {
return DecimalConstants::Zero();
}
return self::fromString(bcmul($this->value, $b->value, $this->scale + $b->scale), $scale);
}