2013-04-02 2 views
1

Quelqu'un at-il une recommandation? Je travaille sur Mac OSX et j'essaie d'écrire et d'exécuter du code C++.Bibliothèque bignum alternative à la bibliothèque GMP prenant en charge la fonction cosinus

Je cours le code pour répondre à la question mathématique connue sous le nom de "Problème de Tammes". J'ai un code de flux de gradient pour le moment et il fonctionne pour répartir les points sur la sphère et minimiser la fonction d'énergie. Cela fonctionne pour le problème de Thomsons et les faibles valeurs du t (l'indice dans la fonction d'énergie). Tamis Problème pour t tendant à l'infini cependant et donc je dois faire t plutôt grand. C'est bien, cependant quand j'élève la distance entre deux points sur ma sphère à la puissance de t, le nombre devient vraiment petit (toujours positif), puis en prenant la réciproque de ceci j'obtiens mon énergie qui est alors plutôt grande. Le problème est que l'énergie perd de sa précision à mesure qu'elle augmente, ce qui peut être corrigé avec une bibliothèque bignum. Cependant si je veux trouver la taille des calottes sphériques sur la sphère j'ai besoin de réarranger la règle de cosinus pour trouver l'angle entre les points. Cela nécessite donc de prendre le cosinus d'un nombre qui n'est pas acceptable car GMP ne supporte pas la fonction cos.

+0

Il n'y a pas assez d'informations incluses dans cette question pour que quelqu'un vous donne une recommandation utile. –

+0

@CodyGray Désolé, pourriez-vous s'il vous plaît me dire quel type d'informations dont vous avez besoin et je vais le fournir pour vous. Je vais éditer la question pour vous donner autant que possible. – adrem7

Répondre

3

Puisque vous êtes familier avec GMP, je recommanderais MPFR. En plus d'utiliser l'arithmétique en virgule flottante à précision multiple, il fournit des fonctions transcendantes et des modes d'arrondi basés sur IEEE 754 (2008).

1

Que diriez-vous de this library? Certes, je ne l'ai pas utilisé ou GMP mais cela pourrait fonctionner pour votre problème.

Questions connexes