Je suis en train de convertir un programme du code Scilab en C++ et il est essentiel pour moi de maintenir les résultats produits par Scilab. Je suis conscient que Scilab utilise la double précision IEEE 754 et que les doubles C++ (bien que non requis) sont implémentés de la même manière.Si j'essaie de répliquer un programme dans une autre langue. Est-il imprudent d'utiliser plus de précision?
Est-ce donc une mauvaise idée d'utiliser une plus grande précision (par exemplelong double
) en C++ si je suis en train de correspondre exactement aux résultats de Scilab?
Par exemple: Est-il possible pour Scilab de calculer un nombre à 0,1234 alors en C++ en utilisant le nombre double de long serait 0,12345. Ainsi, en créant potentiellement une variance qui entraînerait les deux programmes produisant différents résultats (bien que plus précis en C++).
Je suis prêt à parier que vous n'obtiendrez jamais * exactement * des résultats identiques. Mais en as-tu vraiment besoin? –
@JesperJuhl Techniquement parlant, je n'ai pas besoin des résultats pour être exact. Le problème est qu'il y a beaucoup de boucles dans mon programme et si la boucle initiale est désactivée par une infime fraction (ce qui est le cas), la différence de fin devient significative. –
Si la différence de fin est significative, cela ne signifie-t-il pas que votre programme nécessite une plus grande précision que ce que permet le virgule flottante intégrée? – Galik