Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre expert
    Bibliothèque mathématique sur les vecteurs et formules trigonométriques optimisées en assembleur SSE et AVX
    Bonjour à tous !

    Cela faisait un petit moment que j'étais resté sans donner de nouvelles, mais je viens aujourd'hui vous présenter un projet sur lequel je planche avec un autre programmeur anglophone (Dicepd sur le forum anglais).

    Vous en trouverez les sources sur mon espace github.

    Il s'agit d'une bibliothèque de gestion et calcul des vecteurs 2D, 3D et 4D. Elle prend aussi en charge les matrices, quaternions, plans homogènes, "BoundingBox", etc. Il y a également une unité comprenant le calcul rapide par approximation des sinus, cosinus, arcos, atan2, etc.

    Cette bibliothèque est compatible avec les environnements Linux, Windows 32 et 64 bits.

    Le projet principal à compiler est fondé sur les classes "FPCUnit" de FPC et Lazarus pour faire des tests unitaires, ce qui nous permet de vérifier nos fonctions, mais aussi de faire des tests de performances pour différents formats de fichiers (csv, bbcode, html, markdown).

    À l'heure actuelle, seules les versions SSE sont mises à jour. Les versions AVX le seront après nos tests définitifs (par défaut, le projet est configuré pour utiliser le jeu d'instructions SSE version 3).


    Pour activer les fonctions trigonométriques "rapides", if faut ajouter dans les options personnalisées du projet la commande
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    -dUSE_FASTMATH


    Vous trouverez également une démonstration graphique toute bête avec TBitmap ou le Canvas de la forme (à votre choix) sur les boids de Craig Reynolds. Elle permet par ailleurs de comparer les performances du code natif et celui du code ASM (portage d'un code trouvé sur "comment-ça marche").

    Si vous avez des questions, des problèmes, ou si le projet vous intéresse, alors n'hésitez pas à me joindre !
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  2. #2
    Membre éprouvé
    Très intéressant. Je vais regarder ça de plus près
    Il y a des jours où j'éprouve une haine profonde envers microsoft
    Venez vous défouler ici ou c'est amusant
    Mon modeste site et mes modestes oeuvres sont
    Rémi

###raw>template_hook.ano_emploi###