Aksiom i točka koja se kreće

Fiksni zarez daje disciplinu, ali jedna skala može rasipati preciznost. Dweve AXIOM svakoj vrijednosti dopušta odabir s eksplicitnog popisa eksponenata, a...

Aksiom i točka koja se kreće

Točka se pomaknula, ugovor nije

Aritmetika s fiksnom točkom privlačna je jer je iskrena. Odaberete ljestvicu, kažete gdje točka živi, i stroj prestaje pretvarati se da je svaki broj sitna vremenska prognoza. To čini ponavljanje mirnijim, ugrađene ciljeve lakšima za razumijevanje, a revizije manje ovisnima o frazama poput dovoljno blizu. Divno. I nepotpuno.

Jedna fiksna ljestvica može biti pregruba. Odaberete ljestvicu koja pokriva vrlo male vrijednosti i veće vrijednosti ostanu bez prostora. Odaberete ljestvicu koja pokriva veće vrijednosti i male vrijednosti izgube korisne detalje. Radno opterećenje možete podijeliti na nekoliko tipova, ali sada kodna baza ima drugu vrstu nereda. Čestitamo, decimalna točka sada je problem s osobljem.

AXIOM postoji za slučajeve u kojima se točka mora pomaknuti bez pretvaranja numeričkog sloja natrag u juhu od pomičnog zareza. U Dweve kodnoj bazi to je prilagodljiva obitelj promjenjive točke: svaka konkretna vrijednost nosi predznak, indeks popisa eksponenata i mantisu u pakiranoj 32-bitnoj reprezentaciji. Eksponent nije ambijentalno raspoloženje hardvera. Odabire se s izričitog popisa. Mantisa je cjelobrojni teret. Predstavljena vrijednost je predznak puta mantisa puta dva na negativni odabrani eksponent. Ta rečenica nije simpatična, ali to je cijeli trik.

Važan dio nije to što se točka pomiče. Pomični zarez već pomiče točku. Važan dio je to što AXIOM pomiče točku kroz deklarirani popis koji se može pregledati, testirati, specijalizirati i održati determinističkim. Kod ne traži od platforme da improvizira numeričku osobnost. Vrijednosti daje kompaktan ugovor i čini da se aritmetika vraća tom ugovoru nakon svake operacije.

AXIOM nije čarobna decimalna točka. Konkretna vrijednost je pakirana riječ s predznakom, izborom eksponenta i mantisom. Korisna disciplina je u tome što svaki dio ima svoju ulogu.

U izvornom kodu konkretan oblik je Axiom<M, E>. Širina mantise mora odgovarati reprezentaciji, s praktičnim aliasima poput Adp4, Adp8, Adp16, Adp23, AdpNN4 i AdpNN8. Ta imena nisu ukrasi. Govore vam koliko tereta i kakav profil eksponenata vrijednost treba koristiti. Vrijednost s NN-oblikovanim popisom eksponenata nije isto obećanje kao vrijednost sa širim općim popisom. Tretirati ih kao iste jer obje izgledaju numerički način je na koji ozbiljne kodne baze počinju skupljati folklor.

Promjenjiva točka nisu vibracije

Fraza prilagodljiva promjenjiva točka može zvučati kao da je netko preimenovao pomični zarez da bi prošao nabavu na sastanku. To se ne događa. AXIOM ne čini eksponent nevidljivim nusproizvodom. Eksponent se odabire s popisa priloženog tipu ili strategiji. U trenutnom izvornom kodu konkretni popisi eksponenata uključuju standardni [16, 8, 4, 0], gusti [12, 8, 4, 0], težine neuronskih mreža [8, 6, 4, 0] i fini popis [16, 14, 12, 10, 8, 6, 4, 0]. To su trenutne vrijednosti iz izvornog koda, a ta razlika je važna jer se izvorni kod mijenjao tijekom vremena; trenutne tvrdnje trebaju pratiti trenutni kod, a ne zastarjele popise eksponenata.

Popis je proizvodna odluka. Standardni popis daje nekoliko širokih pojaseva. Gusti popis mijenja gdje pojasevi sjede. NN popis oblikovan je za podatke slične težinama. Fini popis nudi više bliskih izbora. Ništa od toga ne uklanja prosudbu. Premješta prosudbu na mjesto gdje je pregled koda može vidjeti.

To je razlika između kontrolirane prilagodljive reprezentacije i opće isprike. Tip s fiksnom točkom kaže da svaka vrijednost ovdje koristi tu ljestvicu. AXIOM kaže da svaka vrijednost ovdje bira između tog deklariranog skupa ljestvica. To je širi ugovor, a ne nedostajući. Točka se pomiče, ali se pomiče po tračnicama. Vrlo nizozemski, doista. Čak i decimalna točka ima infrastrukturu.

Fiksna točka daje jednu jednoliku mrežu. AXIOM daje deklarirani skup eksponentnih pojaseva. Taj dodatni izbor koristan je samo zato što ostaje eksplicitan.

Vrijedi biti precizan o tome što AXIOM nije. To nije točna racionalna aritmetika. To nije dozvola da se zanemari analiza raspona. To nije tvrdnja o mjerilima. To nije jamstvo da odabrani popis eksponenata odgovara vašem radnom opterećenju samo zato što akronim zvuči energično. I dalje morate razumjeti vrijednosti, dinamički raspon, prihvatljivu pogrešku, ciljnu platformu i zahtjeve ponavljanja. AXIOM čini te izbore vidljivijima. Ne čini da nestanu. Ako ništa, čini lijeno numeričko razmišljanje težim za skrivanje, a tu obično počinje vika.

Aritmetika se mora vratiti kući

Format broja lako je nacrtati, a teže učiniti korisnim. Korisni dio je aritmetika. Zbrajanje i oduzimanje moraju se nositi s vrijednostima koje mogu biti na različitim eksponentnim pojasevima. Množenje i dijeljenje moraju obaviti širi rad s cjelobrojnom mantisom prije nego što vrate rezultat u ciljni oblik. Nakon operacije, vrijednost se mora normalizirati natrag u dostupni izbor eksponenta. Taj zadnji korak je važan jer reprezentacija koja se ne može vratiti kući samo je odmor u inozemstvu s boljim brendiranjem.

AXIOM aritmetika stoga ima ritam. Unesite pakirane vrijednosti. Poravnajte ili proširite prema potrebi. Obavite operaciju usmjerenu na cijele brojeve. Normalizirajte. Pohranite rezultat natrag u deklarirani oblik. Ako ne stane, to bi trebalo biti vidljivo kao problem reprezentacije, a ne tiho prepušteno raspoloženju stroja. Ugovor je koristan jer ima rubove.

To je isti razlog zašto je Numerus važan oko njega. Širi stog ne pokušava skupljati formate brojeva kao marke. Želi aritmetiku koja može preživjeti ponavljanje, ugrađenu implementaciju, simulaciju, kompresiju modela, testove i tragove revizije. AXIOM je jedna obitelj unutar te priče. Rješava poseban problem: vrijednosti čija se korisna ljestvica mijenja, ali čije ponašanje i dalje mora biti determinističko.

Operacija nije gotova kada su mantise dotaknute. Rezultat se mora vratiti u deklarirani AXIOM oblik, inače reprezentacija prestaje biti ugovor.

To je dosadna rečenica koja kasnije spašava timove: normaliziraj natrag u oblik. Zvuči kao detalj implementacije sve dok se ponavljanje ne razlikuje, prag se ne preokrene ili komprimirani model ne ponaša drugačije na manjoj ciljnoj platformi. Tada postaje rečenica za kojom svi žale što nije bila u arhitektonskom dokumentu.

Zašto AXIOM stoji ispod Numerusa

Javna Numerus priča namjerno je jednostavnija od stabla izvornog koda. Većina čitatelja želi znati može li numerički sloj pružiti determinističku aritmetiku, obitelji fiksne točke, decimalno ponašanje, no_std držanje, ugrađene profile usmjerene na cijele brojeve, verifikaciju i isti odgovor dva puta. Ne trebaju svaki unutarnji tip na prvoj stranici. To nije tajnovitost. To je milost.

Ispod je zajednički numerički sloj širi. Nosi binarne, ternarne, izvorne i sub-bajtne cjelobrojne tipove, alias-e za fiksni zarez, tipove povezane s pomičnim zarezom za rad na kompatibilnosti te adaptivni AXIOM. Zajedničke osobine tim obiteljima daju zajedničko sučelje. Numerus zatim obavija dijelove koji trebaju biti usmjereni prema proizvodu: binarni i decimalni fiksni zarez, AXIOM, cijele brojeve, operacije, DSL površine i verifikacijski stav. To je razdvajanje zdravo. Temelj može biti širok bez da javna stranica izgleda kao jelovnik restorana koji je izgubio samopouzdanje.

AXIOM zaslužuje vlastiti članak jer nije samo još jedan unos na tom popisu. Fiksni zarez odnosi se na postavljanje točke na jedno mjesto. Decimalni fiksni zarez odnosi se na točna decimalna mjesta. Binarni i ternarni oblici odnose se na kompaktne putove s malim brojem bitova. AXIOM se odnosi na to da točka postane kontrolirani dio vrijednosti. To mijenja način na koji razmišljate o reprezentaciji, aritmetici, testovima i implementaciji.

Također mijenja način na koji bi javne tvrdnje trebale biti uokvirene. AXIOM izvedba pripada trenutačnim benchmarkovima na trenutačnom kodu, a ne naslijeđenom folkloru. Širi stog ne bi trebalo opisivati kao nula operacija s pomičnim zarezom jer površine za pretvorbu i prikaz mogu prijeći tu granicu. Sigurnija i točnija tvrdnja jest da je temeljna fiksna i adaptivna aritmetika orijentirana na cijele brojeve i dizajnirana za determinističko ponašanje. Ta rečenica nije tako privlačna. Dobro. Privlačne numeričke tvrdnje način su na koji nadzorne ploče postaju generatori isprika.

Nekoliko računskih putova, jedna obitelj

Konkretna pakirana vrijednost samo je početak. Izvor sadrži više od jednog načina korištenja AXIOM-a jer radna opterećenja nisu dovoljno pristojna da bi se uklopila u jedan raspored zauvijek. Postoji pakirani konkretni put za popise eksponenata u vrijeme kompilacije. Postoji Flex<S> za pohranu eksponenata u vrijeme izvođenja preko veličina cjelobrojne pohrane. Postoje tenzorski i blokovski oblici gdje zajednička struktura eksponenata može biti korisna. Postoji stratificirana obrada. Postoji APoT, gdje se vrijednosti mogu prikazati kao zbrojevi predznačenih potencija dvojke tako da množenje može postati pomicanje i zbrajanje. Oko toga postoji istraživački kod za profiliranje i naučene eksponente.

Ta raširenost nije razlog za divlje tvrdnje. To je razlog da se bude oprezan s radnim opterećenjem. Skalarni put ponavljanja, put skupne kvantizacije, put sličan tenzoru i APoT put težina imaju različite pritiske. Raspored memorije, ponovna upotreba eksponenata, raspon, normalizacija i oblik hardvera sve su važni. AXIOM daje vokabular za te odabire. Ne oslobađa nikoga od njihovog donošenja.

AXIOM je obitelj računskih putova. Pakirane vrijednosti, fleksibilna pohrana eksponenata, tenzorski ili blokovski rasporedi te APoT putovi pomicanja i zbrajanja različiti su alati, a ne jedan marketinški slajd.

Ovdje inženjering postaje zanimljiv. APoT nije samo zgodan trik za kompresiju. Za odgovarajuće vrijednosti pretvara množenje u problem pomicanja i zbrajanja. Tenzorski i blokovski putovi mogu dijeliti strukturu eksponenata kada radno opterećenje ima dovoljno oblika. Flex održava dostupnom pohranu eksponenata u vrijeme izvođenja kada su popisi na razini tipova previše kruti. Nijedan od ovih ne bi trebao biti odabran zato što je dijagram izgledao lijepo. Radno opterećenje bira, ili će izvješće o grešci birati kasnije i biti puno manje ljubazno u vezi toga.

Kako ocijeniti odabir AXIOM-a

Prvo pitanje za recenziju je dosadno i zato korisno: zašto ne jednostavniji tip broja? Ako je vrijednost novac ili regulirani decimalni iznos, Decimal može biti pravi odgovor. Ako je raspon mali i dobro ograničen, tip s fiksnom točkom u Q-formatu može biti mirnije rješenje. Ako broj postoji samo radi interoperabilnosti s formatom datoteke ili vanjskim API-jem, tip povezan s floatom može biti iskreni rubni adapter. AXIOM opravdava svoje postojanje kada radno opterećenje ima promjenjivu veličinu, i dalje treba deterministički ugovor i ima koristi od eksplicitnog skupa eksponenata.

Drugo je pitanje opisuje li popis eksponenata podatke ili samo laska inženjeru. Popis s četiri široke trake drugačiji je kompromis od fino zrnatog popisa s osam unosa. Popis u obliku NN nije dekorativna oznaka. On govori da se očekuje da se vrijednosti ponašaju poput podataka o težini. Ako distribucija ne odgovara popisu, reprezentacija će i dalje raditi. Softver je često spreman učiniti pogrešnu stvar impresivnom brzinom. To ga ne čini dizajnom.

Treće je pitanje gdje se pojavljuje pritisak normalizacije. Zbrajanje preko udaljenih traka eksponenata može odbaciti detalje. Množenje može stvoriti rezultat kojem treba druga traka. Ponovljene operacije mogu akumulirati pritisak upravo na mjestima koja demo nije posjetio. Recenzija bi trebala tražiti testove granica oko nule, promjene predznaka, prijelaze eksponenata, velike mantise i ponovljene operacije. Ako se ti slučajevi čine dosadnima, dobro. Vjerojatno su to slučajevi koji su bitni.

Posljednje je pitanje kako reprezentacija ostavlja dokaze. Koji smo alias tipa odabrali? Koji popis eksponenata? Koja širina mantise? Koji put pretvorbe? Koji oracle ili test svojstava podupire tvrdnju? Ako je odgovor razbacan po komentarima i optimizmu, sustav je već izgubio dio koristi. AXIOM je najkorisniji kada numerički izbor postane dio arhitektonskog zapisa, a ne pametan lokalni trik skriven tri modula dublje.

Provjera je važnija od herojskih brojeva

Numerički formati privlače herojske brojeve. Manji. Brži. Učinkovitiji. Bolji. Riječi su jeftine i obično stižu prije testnog okvira, što je upravo pogrešan redoslijed. Za AXIOM je odgovoran stav tretirati mjerila kao dokaze po izdanju, a ne kao mitologiju. Ako mjerilo nije ponovno pokrenuto na trenutnom izvornom kodu, trenutnom prevoditelju, trenutnim zastavicama i trenutnom hardveru, to nije javna tvrdnja. To je razglednica s prethodnog poslijepodneva.

Ono što je važnije jest put provjere. Ostaju li kodiranje i dekodiranje unutar deklariranog ugovora? Normaliziraju li se operacije u dopušteni oblik? Ponašaju li se rubni slučajevi oko granica eksponenata namjerno? Pokrivaju li testovi svojstava dosadne vrijednosti koje ljudi zaboravljaju jer ljudi imaju hobije? Postoji li oracle visoke preciznosti tamo gdje je usporedba smislena? Može li ponovna reprodukcija rekonstruirati isti put vrijednosti?

To je posljednje pitanje razlog zašto ovo pripada našem stogu. Dweve i dalje gradi prema sustavima u kojima izračun ostavlja dokaze: parseri s potvrdama, knjige s tipiziranim događajima, dohvat s determinističkim putovima, formati podataka koji ne vuku kolica ponovljenih ključeva, simulacijski i numerički slojevi koji se mogu ponovno reproducirati. AXIOM se uklapa jer pomicanje točke ne bi trebalo značiti gubitak potvrde.

Pouka

Pouka AXIOM-a nije da je fiksna točka bila pogrešna. Fiksna točka i dalje je jedan od najčišćih alata koje imamo. Pouka je da jedna fiksna skala nije uvijek dovoljna i da alternativa ne mora biti neprozirno ponašanje s pomičnim zarezom. Vrijednost može nositi kontrolirani izbor eksponenta. Točka se može pomicati dok ugovor ostaje vidljiv.

To je javna priča koju vrijedi ispričati. Dweve AXIOM pakira predznak, eksponent i mantisu. Odabire iz eksplicitnih popisa eksponenata. Koristi aritmetiku orijentiranu na cijele brojeve i normalizira rezultate natrag u deklarirane oblike. U kodu postoje konkretni, fleksibilni, tenzorski, blokovski, stratificirani, APoT i istraživački putovi. Pripada pod Numerus jer deterministička aritmetika nije sporedna misija. Dio je toga kako ozbiljni sustavi dva puta dolaze do istog odgovora.

Točka se pomiče. Odgovornost ne. To je koristan dio.