AXIOM a bod, který se pohybuje

Dweve AXIOM: pevná řádová čárka dává disciplínu, ale jedna škála může plýtvat přesností. Každá hodnota si zvolí z explicitního seznamu exponentů, přičemž...

AXIOM a bod, který se pohybuje

Bod se posunul, smlouva ne

Pevná řádová čárka je přitažlivá, protože je upřímná. Zvolíte měřítko, řeknete, kde bod žije, a stroj přestane předstírat, že každé číslo je malá předpověď počasí. Díky tomu je přehrávání klidnější, vestavěné cíle snazší na uvažování a audity méně závislé na frázích jako „tak nějak přesně“. Krásné. A také neúplné.

Jedno pevné měřítko může být příliš hrubé. Zvolíte měřítko, které zvládne velmi malé hodnoty, a větším hodnotám dojde místo. Zvolíte měřítko, které zvládne větší hodnoty, a malé hodnoty ztratí užitečné detaily. Můžete rozdělit práci mezi několik typů, ale pak má kódová základna jiný druh nepořádku. Gratulujeme, desetinná čárka je teď personální problém.

AXIOM existuje pro případy, kdy se bod potřebuje posunout, aniž by se numerická vrstva proměnila zpět v plovoucí čárku. V kódové základně Dweve jde o adaptivní rodinu s proměnnou čárkou: každá konkrétní hodnota nese znaménko, index v seznamu exponentů a mantisu v kompaktní 32bitové reprezentaci. Exponent není okolní nálada hardwaru. Je vybrán z explicitního seznamu. Mantisa je celočíselný nosič. Reprezentovaná hodnota je znaménko krát mantisa krát dva na mínus vybraný exponent. Ta věta není roztomilá, ale je to celý trik.

Důležité není to, že se bod posouvá. Plovoucí čárka bod už posouvá. Důležité je, že AXIOM ho posouvá přes deklarovaný seznam, který lze zkontrolovat, otestovat, specializovat a udržet deterministický. Kód nežádá platformu, aby improvizovala numerickou osobnost. Dává hodnotě kompaktní smlouvu a aritmetika se po každé operaci k té smlouvě vrací.

AXIOM není kouzelná desetinná čárka. Konkrétní hodnota je zabalené slovo se znaménkem, volbou exponentu a mantisou. Užitečná disciplína spočívá v tom, že každá část má svou práci.

Ve zdrojovém kódu má konkrétní tvar podobu Axiom<M, E>. Šířka mantisy musí odpovídat reprezentaci, s praktickými aliasy jako Adp4, Adp8, Adp16, Adp23, AdpNN4 a AdpNN8. Tato jména nejsou dekorace. Říkají vám, kolik nosiče a jaký profil exponentů má hodnota používat. Hodnota se seznamem exponentů ve tvaru NN není stejný slib jako hodnota s širším obecným seznamem. Považovat je za stejné, protože obě vypadají numericky, je způsob, jak si seriózní kódové základny začnou shromažďovat folklór.

Proměnná čárka není nálada

Fráze adaptivní proměnná čárka může znít, jako by někdo přejmenoval plovoucí čárku, aby prošel nákupem. To se neděje. AXIOM nedělá z exponentu neviditelný vedlejší efekt. Exponent je vybrán ze seznamu připojeného k typu nebo strategii. V aktuálním zdrojovém kódu zahrnují konkrétní seznamy exponentů standardní [16, 8, 4, 0], hustý [12, 8, 4, 0], váhy neuronových sítí [8, 6, 4, 0] a jemný seznam [16, 14, 12, 10, 8, 6, 4, 0]. To jsou aktuální hodnoty zdrojového kódu a tento rozdíl je důležitý, protože zdrojový kód se v průběhu času měnil; aktuální tvrzení by měla následovat aktuální kód, ne zastaralé seznamy exponentů.

Seznam je produktové rozhodnutí. Standardní seznam dává několik širokých pásem. Hustý seznam mění, kde pásma leží. Seznam NN je tvarován pro data podobná vahám. Jemný seznam nabízí více blízkých možností. Nic z toho neodstraňuje úsudek. Přesouvá úsudek na místo, kde ho může vidět kontrola kódu.

To je rozdíl mezi řízenou adaptivní reprezentací a obecnou výmluvou. Typ s pevnou řádovou čárkou říká, že každá hodnota zde používá toto měřítko. AXIOM říká, že každá hodnota zde volí z této deklarované množiny měřítek. To je širší kontrakt, ne chybějící. Bod se pohybuje, ale pohybuje se po kolejích. Velmi nizozemské, opravdu. I desetinná čárka má infrastrukturu.

Pevná řádová čárka dává jednu jednotnou mřížku. AXIOM dává deklarovanou množinu exponentových pásem. Tato volba navíc je užitečná jen proto, že zůstává explicitní.

Stojí za to být přesný v tom, co AXIOM není. Není to přesná racionální aritmetika. Není to licence ignorovat analýzu rozsahu. Není to benchmarkové tvrzení. Není to záruka, že zvolený seznam exponentů sedí na vaši zátěž jen proto, že zkratka vypadala energicky. Stále musíte rozumět hodnotám, dynamickému rozsahu, přijatelné chybě, cílovému nasazení a požadavkům na přehrávání. AXIOM dělá tyto volby více kontrolovatelnými. Nedělá je neviditelnými. Pokud vůbec něco, ztěžuje skrývání líného numerického myšlení, což je obvykle místo, kde začíná křik.

Aritmetika se musí vrátit domů

Formát čísla se snadno nakreslí a hůře udělá užitečným. Užitečná část je aritmetika. Sčítání a odčítání se musí vypořádat s hodnotami, které mohou sedět na různých exponentových pásmech. Násobení a dělení musí provést širší práci s celočíselnou mantisou, než se výsledek vrátí do cílového tvaru. Po operaci se hodnota musí normalizovat zpět do dostupné volby exponentu. Tento poslední krok je důležitý, protože reprezentace, která se nemůže vrátit domů, je jen dovolená v zahraničí s lepším brandingem.

Aritmetika AXIOM má tedy rytmus. Přiveďte zabalené hodnoty. Zarovnejte nebo rozšiřte podle potřeby. Proveďte celočíselně orientovanou operaci. Normalizujte. Uložte výsledek zpět do deklarovaného tvaru. Pokud se nevejde, mělo by to být viditelné jako problém reprezentace, ne tiše delegované na náladu stroje. Kontrakt je užitečný, protože má hrany.

To je stejný důvod, proč na tom záleží Numerus kolem něj. Širší zásobník se nesnaží sbírat formáty čísel jako známky. Chce aritmetiku, která přežije přehrávání, vestavěné nasazení, simulaci, kompresi modelů, testy a auditní stopy. AXIOM je jedna rodina v tomto příběhu. Řeší konkrétní problém: hodnoty, jejichž užitečné měřítko se mění, ale jejichž chování musí být stále deterministické.

Operace není hotová, když byly mantisy dotčeny. Výsledek se musí vrátit do deklarovaného tvaru AXIOM, jinak reprezentace přestala být kontraktem.

To je ta nudná věta, která týmům později zachrání kůži: normalizujte zpět do tvaru. Zní to jako detail implementace, dokud se přehrávání nerozchází, práh se nepřeklopí nebo se komprimovaný model nechová jinak na menším cíli. Pak se z ní stane věta, kterou by si každý přál mít v architektonickém dokumentu.

Proč AXIOM sedí pod Numerus

Veřejný příběh Numerus je záměrně jednodušší než zdrojový strom. Většina čtenářů chce vědět, zda numerická vrstva může poskytnout deterministickou aritmetiku, rodiny s pevnou řádovou čárkou, desetinné chování, postoj no_std, celočíselně orientované vestavěné profily, verifikaci a stejnou odpověď dvakrát. Nepotřebují každý interní typ na první stránce. To není utajení. To je milosrdenství.

Pod nimi je společná číselná vrstva širší. Obsahuje binární, ternární, nativní a sub-bytové celočíselné typy, aliasy pro pevnou řádovou čárku, typy související s plovoucí řádovou čárkou pro kompatibilní práci a adaptivní AXIOM. Sdílené rysy dávají těmto rodinám společný povrch. Numerus pak obaluje části, které by měly být určeny pro produkt: binární a desítkovou pevnou řádovou čárku, AXIOM, celá čísla, operace, povrchy DSL a ověřovací postoj. Toto oddělení je zdravé. Základ může být široký, aniž by veřejná stránka vypadala jako jídelní lístek z restaurace, která ztratila sebevědomí.

AXIOM si zaslouží vlastní článek, protože není jen další položkou v tomto seznamu. Pevná řádová čárka spočívá v umístění desetinné čárky na jedno místo. Desítková pevná řádová čárka se týká přesných desetinných míst. Binární a ternární formy se týkají kompaktních cest s nízkým počtem bitů. AXIOM spočívá v tom, že se desetinná čárka stává řízenou součástí hodnoty. To mění způsob, jakým přemýšlíte o reprezentaci, aritmetice, testech a nasazení.

Mění to také způsob, jakým by měla být vymezena veřejná tvrzení. Výkon AXIOM patří aktuálním benchmarkům na aktuálním kódu, nikoli zděděným pověrám. Širší zásobník by neměl být popisován jako nulové operace s plovoucí řádovou čárkou, protože konverzní a zobrazovací povrchy mohou tuto hranici překročit. Bezpečnější a přesnější tvrzení je, že základní pevná a adaptivní aritmetika je orientovaná na celá čísla a navržená pro deterministické chování. Tato věta je méně efektní. Dobře. Efektní číselná tvrzení jsou způsob, jak se z dashboardů stávají generátory omluv.

Několik výpočetních cest, jedna rodina

Konkrétní zabalená hodnota je jen začátek. Zdroj obsahuje více než jeden způsob použití AXIOM, protože pracovní zátěže nejsou dost zdvořilé na to, aby se navždy vešly do jednoho rozvržení. Existuje zabalená konkrétní cesta pro seznamy exponentů v době kompilace. Existuje Flex<S> pro ukládání exponentů za běhu přes velikosti celočíselného úložiště. Existují tenzorové a blokové formy, kde může být užitečná sdílená struktura exponentů. Existuje stratifikované zpracování. Existuje APoT, kde lze hodnoty reprezentovat jako součty znaménkových mocnin dvojky, takže násobení se může stát posuny a sčítáními. Kolem toho existuje profilovací a výzkumný kód pro naučené exponenty.

Toto rozšíření není důvodem k divokým tvrzením. Je důvodem k opatrnosti ohledně pracovní zátěže. Skalární cesta přehrávání, dávková kvantizační cesta, tenzorová cesta a cesta vah APoT mají různé tlaky. Rozvržení paměti, opětovné použití exponentů, rozsah, normalizace a tvar hardwaru, to vše záleží. AXIOM poskytuje slovník pro tyto volby. Nezbavuje nikoho povinnosti je učinit.

AXIOM je rodina výpočetních cest. Zabalené hodnoty, flexibilní ukládání exponentů, tenzorová nebo bloková rozvržení a cesty posun-sčítání APoT jsou různé nástroje, ne jeden marketingový snímek.

Tady začíná být inženýrství zajímavé. APoT není jen roztomilý kompresní trik. Pro vhodné hodnoty mění násobení na problém posunu a sčítání. Tenzorové a blokové cesty mohou sdílet strukturu exponentů, když má pracovní zátěž dostatek tvaru. Flex udržuje ukládání exponentů za běhu dostupné, když jsou seznamy na úrovni typů příliš rigidní. Žádná z těchto možností by neměla být vybrána proto, že diagram vypadal hezky. Pracovní zátěž si vybírá, nebo si později vybere hlášení o chybě a bude mnohem méně půvabné.

Jak posoudit volbu AXIOM

The first review question is boring and therefore useful: why not a simpler number type? If the value is money or a regulated decimal amount, Decimal may be the right answer. If the range is small and well bounded, a Q-format fixed-point type may be calmer. If the number exists only to interoperate with a file format or external API, a float-related type might be the honest edge adapter. AXIOM earns its keep when the workload has changing magnitude, still needs a deterministic contract, and benefits from an explicit exponent set.

The second question is whether the exponent list describes the data or merely flatters the engineer. A list with four broad bands is a different tradeoff from a fine-grained eight-entry list. The NN-shaped list is not a decorative label. It says the values are expected to behave like weight data. If the distribution does not match the list, the representation will still run. Software is often willing to do the wrong thing at impressive speed. That does not make it a design.

The third question is where normalization pressure appears. Addition across distant exponent bands can discard detail. Multiplication can create a result that needs a different band. Repeated operations can accumulate pressure at exactly the places the demo did not visit. The review should ask for boundary tests around zero, sign changes, exponent transitions, large mantissas, and repeated operations. If those cases feel annoying, good. They are probably the cases that matter.

The final question is how the representation leaves evidence. Which type alias did we choose? Which exponent list? Which mantissa width? Which conversion path? Which oracle or property test backs the claim? If the answer is scattered across comments and optimism, the system has already lost some of the benefit. AXIOM is most useful when the numeric choice becomes part of the architecture record, not a clever local trick hidden three modules down.

Verification beats hero numbers

Numerical formats attract hero numbers. Smaller. Faster. More efficient. Better. The words are cheap and usually arrive before the test harness, which is exactly the wrong order. For AXIOM, the responsible posture is to treat benchmarks as per-release evidence, not mythology. If the benchmark has not been rerun on current source, current compiler, current flags, and current hardware, it is not a public claim. It is a postcard from a previous afternoon.

What matters more is the verification route. Does encoding and decoding stay within the declared contract? Do operations normalize into a legal shape? Do edge cases around exponent boundaries behave intentionally? Do property tests cover the annoying values that humans forget because humans have hobbies? Does a high-precision oracle exist where comparison is meaningful? Can replay rebuild the same value path?

That last question is the reason this belongs in our stack. Dweve keeps building toward systems where computation leaves evidence: parsers with receipts, ledgers with typed events, retrieval with deterministic paths, data formats that do not haul a wagon of repeated keys, simulation and numeric layers that can replay. AXIOM fits because moving the point should not mean losing the receipt.

The lesson

The lesson of AXIOM is not that fixed-point was wrong. Fixed-point is still one of the cleanest tools we have. The lesson is that one fixed scale is not always enough, and the alternative does not have to be opaque floating behaviour. A value can carry a controlled exponent choice. The point can move while the contract stays visible.

To je ten příběh, který stojí za to vyprávět veřejně. Dweve AXIOM sestavuje znaménko, exponentový index a mantisu. Vybírá z explicitních seznamů exponentů. Používá celočíselnou aritmetiku a výsledky normalizuje zpět do deklarovaných tvarů. V kódové základně má konkrétní, flexibilní, tenzorové, blokové, stratifikované, APoT a výzkumné cesty. Patří pod Numerus, protože deterministická aritmetika není vedlejší záležitost. Je to součást toho, jak seriózní systémy dospějí dvakrát ke stejnému výsledku.

Smysl se posouvá. Odpovědnost ne. To je ta užitečná část.