/**
  * @TODO
  *
  * @param MaxiInteger $a
  * @param MaxiInteger $b
  * @return MaxiInteger
  */
 private function realSum($a, $b)
 {
     $result = '';
     $plopA = $a->getReverseValue();
     $plopB = $b->getReverseValue();
     $maxLength = max(strlen($plopA), strlen($plopB));
     $plopA = str_pad($plopA, $maxLength - strlen($plopA), "0");
     $plopB = str_pad($plopB, $maxLength - strlen($plopB), "0");
     $i = 0;
     $retenue = 0;
     while ($i < $maxLength) {
         $sum = $plopA[$i] + $plopB[$i] + $retenue;
         if ($sum >= 10) {
             $sum -= 10;
             $retenue = 1;
         } else {
             $retenue = 0;
         }
         $result .= $sum;
         $i++;
     }
     if ($retenue > 0) {
         $result .= $retenue;
     }
     return new MaxiInteger(strrev($result));
 }
 /**
  * @TODO
  *
  * @param MaxiInteger $a
  * @param MaxiInteger $b
  * @return MaxiInteger
  */
 private function realSum($a, $b)
 {
     return new MaxiInteger(trim(preg_replace('/\\s+/', '', str_replace(['\\', '\\n'], '', shell_exec('echo "' . $a->getValue() . '+' . $b->getValue() . '" | bc')))));
 }