Блог
[браузерный компилятор выполняет постоянные проверки спеки, а не тесты её функций; правки 7 спек уроков ждут gHashTag/t27 PR 7496; ни один урок не заявляет скорости или результата на железе] Новый курс о семействе GoldenFloat: одно правило, E = round((N - 1) / phi^2), делит каждую ширину от GF4 до GF1024. 27 уроков в 9 модулях по 3, каждый открывает таблицу из одной спеки и саму спеку.

Курс 3 — GoldenFloat: одно семейство форматов с плавающей точкой из arXiv:2606.05017, где одно правило выбирает деление для каждой ширины. Из N - 1 битов после знака round((N - 1) / phi^2) уходят в порядок, остальные в мантиссу. Спека семейства перечисляет 17 ширин, от GF4 до GF1024, и отмечает GF16 основным.
Каждый из 27 уроков открывает чёрно-белую таблицу из одной спеки: поля одного формата, его смещение и расстояние до 1 / phi или значения, которые проверяет тест. Каждое число в таблице — константа или тестовое значение спеки урока либо арифметика над ними. Где тест вписывает значение, а не вычисляет его, как в gf_competitive.t27, урок так и говорит. Где комментарий и код спеки расходятся, урок говорит, что есть что: в gf8.t27 комментарий называет наибольшим значением 15.5, а код вычисляет 31.
27 уроков собраны в 9 модулей по 3: правило и его числа; почему phi, почему три; от GF4 до GF8; от десяти до четырнадцати битов; GF16 в работе; от GF32 до GF64; от GF96 до GF256; самые широкие ступени, затем триты; ещё триты, затем раскодирование. 7 спек уроков (phi_ratio, phi_split_optimality, radix_economy, gf8, gf12, gf24, gf32) не компилировались чисто в браузерном компиляторе; каждая получила наименьшую правку, с которой компилируется, и та же правка предложена в gHashTag/t27 как PR 7496.
| # | Урок | Спека | Виджет |
|---|---|---|---|
| 1 | Число с плавающей точкой, разрезанное по phi | numeric/goldenfloat_family.t27 | таблица |
| 2 | Phi как отношение | numeric/phi_ratio.t27 | таблица |
| 3 | Числа Люка остаются целыми | numeric/lucas_accumulator.t27 | таблица |
| 4 | Почему деление по phi | math/phi_split_optimality.t27 | таблица |
| 5 | Почему основание три | math/radix_economy.t27 | таблица |
| 6 | Phi в шестнадцати битах | numeric/gf_competitive.t27 | таблица |
| 7 | GF4: четыре бита | numeric/gf4.t27 | таблица |
| 8 | GF6: шесть битов | numeric/gf6.t27 | таблица |
| 9 | GF8: один байт | numeric/gf8.t27 | таблица |
| 10 | GF10: десять битов | numeric/gf10.t27 | таблица |
| 11 | GF12: двенадцать битов | numeric/gf12.t27 | таблица |
| 12 | GF14: четырнадцать битов | numeric/gf14.t27 | таблица |
| 13 | GF16: основной формат | numeric/gf16.t27 | таблица |
| 14 | Два произведения, одна сумма | ternary/gft_dot2.t27 | таблица |
| 15 | GF20 и GF24 | numeric/gf24.t27 | таблица |
| 16 | GF32: одинарная точность | numeric/gf32.t27 | таблица |
| 17 | GF48: сорок восемь битов | numeric/gf48.t27 | таблица |
| 18 | GF64: двойная точность | numeric/gf64.t27 | таблица |
| 19 | GF96: девяносто шесть битов | numeric/gf96.t27 | таблица |
| 20 | GF128: четверная точность | numeric/gf128.t27 | таблица |
| 21 | GF256: двести пятьдесят шесть битов | numeric/gf256.t27 | таблица |
| 22 | GF512: пятьсот двенадцать битов | numeric/gf512.t27 | таблица |
| 23 | GF1024: один килобит | numeric/gf1024.t27 | таблица |
| 24 | GF-T8: порядок в тритах | numeric/gft8.t27 | таблица |
| 25 | GF-T16: шесть тритов | numeric/gft16.t27 | таблица |
| 26 | GF-T32: двенадцать тритов | numeric/gft32.t27 | таблица |
| 27 | Раскодировать за один шаг | math/gf_competitive.t27 | таблица |
Ни один урок не заявляет скорости, точности на модели или результата на железе. Урок про раскодирование считает шаги так, как их записывает спека, а не время. Каждая спека формата говорит, что её смещение — открытый вопрос: оно выбирается для каждого формата, а не выводится из замкнутой формулы.
Поработаем вместе
Работаю по контракту и part-time с hardware-AI, FPGA/RTL и ML-системами — от спецификации и открытого тулчейна до воспроизводимых измерений.