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; }
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; }
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; }
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; }
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; }