Produit vectoriel à composantes entières
Calcule le produit vectoriel orienté à droite de deux vecteurs à trois composantes entières.
def cross_product(a, b):
if type(a) not in (list, tuple) or type(b) not in (list, tuple):
raise ValueError("vector.type")
if len(a) != 3 or len(b) != 3 or any(type(x) is not int for x in (*a, *b)):
raise ValueError("vector.components")
x, y, z = a
u, v, w = b
return (y*w-z*v, z*u-x*w, x*v-y*u)| Vérifiez avant d’appliquer | Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications. |
|---|---|
| Modèles | Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément. |
| Projet | Vérifie les vecteurs parallèles, l’ordre de la base et les grandes coordonnées, en refusant les mauvaises longueurs et les composantes non entières sans modifier les entrées. |
def cross_product(a, b):
if type(a) not in (list, tuple) or type(b) not in (list, tuple):
raise ValueError("vector.type")
if len(a) != 3 or len(b) != 3 or any(type(x) is not int for x in (*a, *b)):
raise ValueError("vector.components")
x, y, z = a
u, v, w = b
return (y*w-z*v, z*u-x*w, x*v-y*u)Rendre les hypothèses d’orientation visibles avant de modifier le code
VectorAnvil offre aux développeurs un espace Windows pour inspecter le code source, dialoguer sur la programmation et proposer des modifications avec un modèle connecté. Pour le code numérique, commencez par la convention sur laquelle repose le reste de l’application. Une expression apparemment correcte peut rester inadaptée si l’appelant interprète sa sortie dans un autre système de coordonnées.
Une tâche consiste à examiner une routine de produit vectoriel direct pour des vecteurs entiers à trois composantes. Ajoutez ses appelants et ses hypothèses de types à la conversation, puis demandez comment l’ordre des entrées affecte le résultat. Précisez si la routine doit laisser les deux entrées intactes. Le modèle dispose ainsi d’un problème de maintenance précis, sans présenter cet exemple mathématique comme une fonction intégrée à l’application.
Évaluez la proposition avec des vecteurs de base et des vecteurs parallèles dans votre projet. Inversez l’ordre des entrées et vérifiez que l’orientation suit la convention indiquée. Incluez de grandes coordonnées si elles sont pertinentes pour vos types de données et vérifiez le traitement des entrées mal formées. Examinez les changements aux sites d’appel aussi soigneusement que ceux de la routine.
Choisissez un modèle via un point de terminaison compatible OpenAI ou Anthropic pris en charge. S’il propose des modèles d’IA sans filtre, VectorAnvil peut utiliser la connexion prise en charge avec les identifiants nécessaires. Le modèle et le serveur choisis déterminent les restrictions de réponse, les outils et les limites de contexte ; les conventions de votre projet restent le critère d’acceptation du résultat.
Questions pour une revue de code vectoriel
Quelle convention dois-je indiquer dans la demande ?
Précisez la convention de coordonnées, l’ordre attendu des entrées et les types de composantes utilisés par votre application. Incluez un résultat connu du contrat existant. Cela ancre la discussion et facilite la détection d’une proposition inversant silencieusement l’orientation.
Pourquoi comparer les entrées permutées ?
Dans cet exemple, permuter les deux vecteurs doit inverser l’orientation du produit vectoriel. Utilisez un cas dont le résultat n’est pas nul pour que la vérification soit significative. Inspectez aussi le code appelant, car l’ordre de ses arguments détermine la convention réellement utilisée.
Des vecteurs parallèles doivent-ils provoquer une erreur ?
Décrivez la politique de votre application plutôt que de laisser la proposition en inventer une. Un résultat nul peut être valide pour la routine tout en exigeant un traitement particulier d’un consommateur ultérieur. Incluez ce consommateur si son comportement fait partie du changement demandé.
Puis-je étendre la routine à d’autres types numériques ?
Traitez cela comme un changement distinct du contrat, avec des types acceptés et des cas de vérification explicites. L’exemple de vecteurs entiers ne prouve pas un comportement adapté en virgule flottante ou face aux dépassements pour votre application. Examinez les types réels et exécutez les contrôles pertinents du projet.
VectorAnvil · Mis à jour 2026-10-25