• [^] # Re: Excellent

    Posté par . En réponse à la dépêche Le code de Java3D est disponible. Évalué à 2.

    Si tu ecris une classe vecteur avec des operateurs + ou x.add(y), tu ne peux pas aditionner plusieurs vecteurs rapidement.

    ex:
    e.add(u);
    e.add(v);
    e.add(w);
    Va faire plusieurs parcours de la mémoire et en c++
    e = u + v + w va allouer des temporaires pour calculer (u + v), bref dans tous les cas le code est moins efficace que le code c/fortran.
    for (i = 1; ...) e[i] = u[i] + v[i] + w[i];

    Les expressions templates sont un moyen de marier abstraction de haut niveau et performance. C'est par contre assez technique.

    http://osl.iu.edu/~tveldhui/papers/Expression-Templates/exprtmpl.ht(...)