Example #1
0
 public static function makeStringFromData(array $data = [], array $options = [])
 {
     if (count($data) !== self::dataByteCount) {
         throw new \LengthException('Invalid data array. Needs to contain ' . self::dataByteCount . ' bytes');
     }
     $coeffR = TH_0x00::makeStringFromData(array_slice($data, 0, TH_0x00::dataByteCount));
     $coeffI = TH_0x00::makeStringFromData(array_slice($data, TH_0x00::dataByteCount, TH_0x00::dataByteCount));
     $str = dec2frac($coeffR) . '+' . dec2frac($coeffI) . 'i';
     $str = str_replace('+-', '-', $str);
     return $str;
 }
Example #2
0
 public static function makeStringFromData(array $data = [], array $options = [])
 {
     if (count($data) !== self::dataByteCount) {
         throw new \LengthException('Invalid data array. Needs to contain ' . self::dataByteCount . ' bytes');
     }
     $coeff = TH_0x00::makeStringFromData(array_slice($data, 0, TH_0x00::dataByteCount));
     $str = $coeff !== '0' ? dec2frac($coeff) . '*π' : '0';
     // Improve final display
     $str = str_replace('+1*', '+', $str);
     $str = str_replace('(1*', '(', $str);
     $str = str_replace('-1*', '-', $str);
     $str = str_replace('(-1*', '(-', $str);
     $str = str_replace('+-', '-', $str);
     return $str;
 }
Example #3
0
 public static function makeStringFromData(array $data = [], array $options = [])
 {
     $byteCount = count($data);
     $numCount = ($data[0] & 0xff) + (($data[1] & 0xff) << 8);
     if ($byteCount < 2 + TH_0x00::dataByteCount || ($byteCount - 2) % TH_0x00::dataByteCount !== 0 || $numCount !== (int) (($byteCount - 2) / TH_0x00::dataByteCount) || $numCount > 999) {
         throw new \LengthException('Invalid data array. Needs to contain 2+' . TH_0x00::dataByteCount . '*n bytes');
     }
     $str = '{';
     for ($i = 2, $num = 0; $i < $byteCount; $i += TH_0x00::dataByteCount, $num++) {
         $str .= TH_0x00::makeStringFromData(array_slice($data, $i, TH_0x00::dataByteCount));
         if ($num < $numCount - 1) {
             $str .= ',';
         }
     }
     $str .= '}';
     return $str;
 }
Example #4
0
 public static function makeStringFromData(array $data = [], array $options = [])
 {
     if (count($data) !== self::dataByteCount) {
         throw new \LengthException('Invalid data array. Needs to contain ' . self::dataByteCount . ' bytes');
     }
     $coeffR = TH_0x00::makeStringFromData(array_slice($data, 0, TH_0x00::dataByteCount));
     $coeffI = TH_0x00::makeStringFromData(array_slice($data, TH_0x00::dataByteCount, TH_0x00::dataByteCount));
     $str = ($coeffR !== '0' ? dec2frac($coeffR) . '+' : '') . ($coeffI !== '0' ? $coeffI . '*π*i' : '');
     // Improve final display
     $str = str_replace('+1*', '+', $str);
     $str = str_replace('(1*', '(', $str);
     $str = str_replace('-1*', '-', $str);
     $str = str_replace('(-1*', '(-', $str);
     $str = str_replace('+-', '-', $str);
     // Shouldn't happen - I don't believe the calc generate such files.
     if ($str === '') {
         $str = '0';
     }
     return $str;
 }
Example #5
0
 public static function makeStringFromData(array $data = [], array $options = [])
 {
     $byteCount = count($data);
     $colCount = $data[0];
     $rowCount = $data[1];
     if (count($data) < 2 + TH_0x00::dataByteCount || $colCount < 1 || $rowCount < 1 || $colCount > 255 || $rowCount > 255 || ($byteCount - 2) % TH_0x00::dataByteCount !== 0 || $colCount * $rowCount !== ($byteCount - 2) / TH_0x00::dataByteCount) {
         throw new \LengthException('Invalid data array. Needs to contain 1+1+' . TH_0x00::dataByteCount . '*n bytes');
     }
     $str = '[';
     for ($i = 2, $num = 0; $i < $byteCount; $i += TH_0x00::dataByteCount, $num++) {
         if ($num % $colCount === 0) {
             $str .= '[';
         }
         $str .= TH_0x00::makeStringFromData(array_slice($data, $i, TH_0x00::dataByteCount));
         if ($num % $colCount < $colCount - 1) {
             $str .= ',';
         } else {
             $str .= ']';
         }
     }
     $str .= ']';
     // TODO: prettified option
     return $str;
 }