Quaterelle — клиент Windows для обсуждения умножения кватернионов. Передайте совместимой модели порядок компонент и контекст проекта, затем самостоятельно проверьте порядок произведения и числовые тесты.
Конкретная отправная точка · Умножение кватернионов Гамильтона ×
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)
✳Умножение кватернионов Гамильтона
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Проект
Проверьте единицу и обратный порядок базисных произведений, отклоняя логические компоненты без скрытой нормализации или утверждения об единичных вращениях.
Проверьте перед применением
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
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)
Рабочая среда с ИИ для кода
Сохраняйте явные соглашения о представлении при изменении кода
Ошибка вращения может сохраниться после аккуратной арифметической правки, если два модуля используют разные представления. Quaterelle — рабочая среда программирования с ИИ в Windows для исследования таких расхождений. Добавьте вычисление и его потребителей в обсуждение и попросите подключённую модель определить соглашения о компонентах до предложения изменений. Начните с наблюдаемого движения и желаемого результата.
Одна возможная задача — проверка умножения кватернионов, используемого в преобразовании сцены. Укажите порядок компонентов и то, какая операция должна выполняться первой, затем приведите известные входы и выходы. Попросите помощника проследить эти допущения в вызывающем коде и предложить конкретное исправление. Цель — улучшить собственный код преобразований с объяснением изменения, доступным проверке.
Проверьте предложение и арифметическими примерами, и поведением приложения. Проверьте композицию с единичным кватернионом, пару с существенным порядком и недопустимые компоненты по контракту проекта. Затем самостоятельно запустите затронутую сцену или интеграционный тест. Изучите, меняет ли исправление допущения нормализации или допустимые диапазоны: эти решения могут повлиять на вызывающий код за пределами изначально описанного движения.
Quaterelle подключается к поддерживаемым конечным точкам, совместимым с OpenAI, или Anthropic. Можно выбрать ИИ-модель с удалёнными механизмами ограничений, если она доступна в настроенном сервисе; инструменты, объём контекста и ограничения зависят от модели и сервера. Используйте рабочую среду, чтобы держать соглашения и предлагаемые правки вместе при оценке результата.
Подготовка проверки кода вращений
Какое соглашение о кватернионах указать?
Укажите порядок компонентов, соглашение об умножении и интерпретацию в модуле-потребителе. Добавьте преобразования на этой границе. Похожие массивы могут представлять разные соглашения, поэтому помощник не должен выводить их только из имён переменных.
Зачем тестировать пару, для которой важен порядок?
Примеры с единичным кватернионом могут проходить и при неверном порядке композиции. Используйте известную некоммутирующую пару и укажите, какое преобразование действует первым. Проверьте арифметический результат и ожидаемый эффект в цепочке преобразований приложения.
Должно ли умножение нормализовать каждый результат?
Это зависит от контракта и смысла входных данных. Прежде чем добавлять нормализацию, попросите модель изучить, где она выполняется сейчас. Автоматическая нормализация может изменить поведение, на которое вызывающий код намеренно полагается.
Заменяет ли числовой тест проверку сцены?
Он проверяет часть вычисления, но сцена может применять дополнительные преобразования. Запустите и соответствующий интеграционный путь. Сохраните числовой пример для объяснения исправления, а проверку сцены — для подтверждения реального использования.