Pracovní postupy · Hamiltonovo násobení kvaternionů ×
import math
def quaternion_product(a, b):
for q in (a, b):
if type(q) not in (list, tuple) or len(q) != 4:
raise ValueError("quaternion.shape")
if any(type(x) not in (int, float) or not -10**6 <= x <= 10**6 or not math.isfinite(x) for x in q):
raise ValueError("quaternion.value")
w, x, y, z = a
v, i, j, k = b
return (w*v-x*i-y*j-z*k, w*i+x*v+y*k-z*j,
w*j-x*k+y*v+z*i, w*k+x*j-y*i+z*v)
✳Hamiltonovo násobení kvaternionů
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
Projekt
Otestujte jednotku a obrácené součiny bází, odmítněte logické složky bez tiché normalizace či tvrzení o jednotkových rotacích.
Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
import math
def quaternion_product(a, b):
for q in (a, b):
if type(q) not in (list, tuple) or len(q) != 4:
raise ValueError("quaternion.shape")
if any(type(x) not in (int, float) or not -10**6 <= x <= 10**6 or not math.isfinite(x) for x in q):
raise ValueError("quaternion.value")
w, x, y, z = a
v, i, j, k = b
return (w*v-x*i-y*j-z*k, w*i+x*v+y*k-z*j,
w*j-x*k+y*v+z*i, w*k+x*j-y*i+z*v)
Pracovní prostředí s AI pro kód
Při změnách kódu mějte konvence reprezentace stále na očích
Chyba rotace může přežít úhlednou aritmetickou opravu, když se dva moduly neshodují na reprezentaci. Quaterelle je programovací prostředí s AI pro Windows ke zkoumání takové neshody. Do konverzace přineste výpočet i kód využívající jeho výsledky a před návrhem změn nechte připojený model určit konvence složek. Začněte pozorovaným pohybem a zamýšleným výsledkem.
Jednou možnou úlohou je kontrola násobení kvaternionů používaného transformací scény. Určete pořadí složek a operaci, která má proběhnout první, a dodejte známé vstupy a výstupy. Požádejte asistenta, aby tyto předpoklady sledoval v celém volajícím kódu a navrhl cílenou opravu. Úkolem je zlepšit váš transformační kód s přezkoumatelným vysvětlením změny.
Návrh ověřte aritmetickými testy i chováním aplikace. Podle specifikace projektu ověřte skládání s identitou, dvojici citlivou na pořadí a neplatné složky. Poté sami spusťte dotčenou scénu či integrační test. Prozkoumejte, zda oprava mění předpoklady normalizace či přijímané rozsahy, protože tato rozhodnutí mohou ovlivnit volající nad rámec původně hlášeného pohybu.
Quaterelle se připojuje k podporovaným koncovým bodům kompatibilním s OpenAI nebo ke koncovým bodům Anthropic. Abliterovaný model AI lze zvolit, je-li dostupný z nastavené služby; nástroje, kapacita kontextu a omezení nadále závisejí na modelu a serveru. Při hodnocení výsledku mějte pomocí pracovního prostředí konvence a navržené úpravy pohromadě.
Příprava kontroly kódu rotací
Kterou kvaternionovou konvenci mám uvést?
Uveďte pořadí složek, konvenci násobení a výklad používaný navazujícím modulem. Zahrňte převody na této hranici. Podobně vypadající pole mohou představovat různé konvence, proto je asistent nemá odvozovat pouze z názvů proměnných.
Proč testovat dvojici, u které záleží na pořadí?
Příklady s identitou mohou projít i při chybném pořadí skládání. Použijte známou nekomutující dvojici a určete, která transformace působí první. Ověřte aritmetický výsledek i účinek očekávaný transformační cestou aplikace.
Má násobení normalizovat každý výsledek?
Záleží na specifikaci a významu vstupů. Před přidáním normalizace nechte model prozkoumat, kde nyní probíhá. Automatická normalizace může změnit chování, na kterém volající záměrně závisejí.
Může číselný test nahradit kontrolu scény?
Ověří část výpočtu, ale scéna může používat další převody či transformace. Spusťte také příslušnou integrační cestu. Číselný test ponechte pro vysvětlení opravy a kontrolu scény pro potvrzení skutečného použití.