QQuaterelle
AI-werkruimte voor code

Hamilton-vermenigvuldiging van quaternionen

Vermenigvuldig twee Hamilton-quaternionen met vier eindige componenten binnen ±10^6 en de scalar vooraan.

● ● ●Quaterelle●
Werkprocessen · Hamilton-vermenigvuldiging van quaternionen ×
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)
✳Hamilton-vermenigvuldiging van quaternionen
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Project
Test identiteit en omgekeerde basisproducten, weiger booleans zonder stilzwijgend normaliseren of eenheidsrotaties te veronderstellen.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Werkprocessen

Hamilton-vermenigvuldiging van quaternionen

Werkprocessen ↗
Werkprocessen
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)
AI-werkruimte voor code

Houd representatieconventies zichtbaar tijdens codewijzigingen

Een rotatiefout kan een nette rekenkundige patch overleven wanneer twee modules verschillende representaties gebruiken. Quaterelle is een AI-programmeerwerkruimte voor Windows om dat verschil te onderzoeken. Neem de berekening en haar afnemers mee in het gesprek en vraag het verbonden model de componentconventies te identificeren voordat het wijzigingen voorstelt. Begin met de waargenomen beweging en het bedoelde resultaat.

Een mogelijke taak is het beoordelen van quaternionvermenigvuldiging voor een scènetransformatie. Vermeld de componentvolgorde en welke bewerking eerst moet plaatsvinden en geef vervolgens bekende invoer en uitvoer. Vraag de assistent die aannames door de aanroepende code heen te volgen en een gerichte correctie voor te stellen. De taak is je eigen transformatiecode te verbeteren met een controleerbare uitleg van de wijziging.

Verifieer het voorstel met zowel rekenkundige testgevallen als toepassingsgedrag. Controleer samenstelling met de identiteit, een volgordegevoelig paar en ongeldige componenten aan de hand van het projectcontract. Voer vervolgens zelf de betrokken scène of integratietest uit. Onderzoek of de patch normalisatieaannames of geaccepteerde bereiken verandert, want die beslissingen kunnen andere aanroepende code beïnvloeden dan alleen de oorspronkelijk gemelde beweging.

Quaterelle verbindt met ondersteunde OpenAI-compatibele of Anthropic-eindpunten. Een abliterated AI-model kan worden geselecteerd als je ingestelde dienst dat aanbiedt; tools, contextcapaciteit en beperkingen blijven afhankelijk van model en server. Gebruik de werkruimte om de conventies en voorgestelde wijzigingen bij elkaar te houden terwijl je het resultaat beoordeelt.

Een beoordeling van rotatiecode voorbereiden

Welke quaternionconventie moet ik vermelden?

Geef de componentvolgorde, vermenigvuldigingsconventie en interpretatie die de gebruikende module hanteert. Neem elke conversie op die grens mee. Arrays die op elkaar lijken, kunnen verschillende conventies voorstellen, dus de assistent mag die niet alleen uit variabelenamen afleiden.

Waarom een paar testen waarvan de volgorde belangrijk is?

Identiteitsvoorbeelden kunnen slagen, ook wanneer de samenstellingsvolgorde onjuist is. Gebruik een bekend niet-commuterend paar en specificeer welke transformatie eerst werkt. Controleer zowel het rekenkundige resultaat als het effect dat het transformatiepad van de toepassing verwacht.

Moet vermenigvuldiging elk resultaat normaliseren?

Dat hangt af van het contract en de betekenis van de invoer. Vraag het model te onderzoeken waar normalisatie nu plaatsvindt voordat het die toevoegt. Een automatische normalisatiestap kan gedrag veranderen waarop aanroepende code bewust vertrouwt.

Kan een numeriek testgeval het controleren van de scène vervangen?

Het verifieert een deel van de berekening, maar de scène kan aanvullende conversies of transformaties toepassen. Voer ook het relevante integratiepad uit. Bewaar het numerieke testgeval om de correctie uit te leggen en de scènecontrole om het daadwerkelijke gebruik te bevestigen.

Download voor Windows ↗

Quaterelle · Bijgewerkt 2026-10-25