Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Utilisation de fonctions mathématiques avec gint
Palpatine_78 Hors ligne Membre Points: 264 Défis: 0 Message

Utilisation de fonctions mathématiques avec gint

Posté le 08/12/2019 18:41

Bonjour,
J'ai, un problème, sûrement vraiment idiot.
Je n'ai pas trouvé dans les bibliothèques de gint de math.h, pour les calculs de sinus et cosinus...
Je me demandais si la bibliothèque avait un autre nom, et principalement: comment utiliser des fonctions comme sqrt(), tan().... depuis gint.
J'ai vu dans les sources d'eigenmath que la bibliothèque math.h avait été inclus.... mais, lorsque je l'inclus dans mon code, j'ai un magnifique et prévisible: math.h: No such file or directory.
Merci.


Lephenixnoir Hors ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 08/12/2019 18:43 | #


Salut, ces fonctions ne sont pas implémentées dans gint parce que la libm est un gros morceau de calcul à lui tout seul.

Tu as plusieurs options :
• Implémenter des approximations décentes, il y a des suites récurrentes qui calculent les développements limités très bien.
• Utiliser fxlib.
• Compiler une implémentation externe.

Note que Eigenmath n'est pas compilé avec gint et utilise fxlib.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Palpatine_78 Hors ligne Membre Points: 264 Défis: 0 Message

Citer : Posté le 08/12/2019 18:43 | #


Merci!!!
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 09/12/2019 10:34 | #


En vrai ce serait cool de récupérer les fonctions de chacun à droite à gauche et d'enfin se recréer un lib de math ?

Avec notamment :
- cos / sin / tan et leur variantes
- random (int, double etc...)
- puissance, division euclidienne

Ces fonctions me semble suffisantes pour faire un petit noyau .
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir Hors ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 09/12/2019 10:57 | #


Sur le principe y'a pas de problème. Mais je ferais quand même attention à pas tomber dans les pièges évidents. Les fonctions mathématiques ont un résultat unique et on ne peut pas vraiment se contenter de les calculer grossièrement.

Depuis que les flottants ont été inventés, il y a une branche très sérieuse de l'arithmétique informatique consacrée à calculer précisément et correctement les fonctions de ce genre sans se planter.

Donc pas de problème pour moi pour juste récupérer des fonctions par-ci par-là, mais faut être vraiment clair sur ce qui est une approximation heuristique pour dessiner à l'ecran et ce qui est une vraie fonction avec des garanties de précision et d'approximation pour du calcul scientifique.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 09/12/2019 14:49 | #


Ah ouai je vois ce que tu veux dire, après je pensais à des fonctions dont on peut justement paramétrer la précision.
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir Hors ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 09/12/2019 15:23 | #


Ça existe... mais c'est plus subtil que ça en a l'air. Tu ne peux pas obtenir une précision aussi grande que tu veux juste avec des paramètres.

Voilà par exemple un cosinus qui semble assez précis quand on fait des tests avec (genre 11 chiffres).

double cos(double a)
{
    double u = 1.0;
    int p = 7;

    for(p = 2 * p - 1; p >= 1; p -= 2)
    {
        u = 1 - a * a / (p * p + p) * u;
    }

    return u;
}

Le sinus juste équivalent marche beaucoup moins bien, avec quelques valeurs où il n'a que 3 chiffres exacts d'après mes tests.

Ce cosinus est basé sur un développement limité et ne marche que dans un invervalle élémentaire genre [0 : π/2]. Après il faut s'y ramener par translation/symétrie. Et on en déduit le sinus.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 09/12/2019 15:28 | #


Ouai ça peut vite devenir compliqué selon ce que l'on veut .
J'imagine aussi les tableaux de constantes, je crois que Limachi avait fait ça pour son Minecraft pour gratter de la vitesse.
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir Hors ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 09/12/2019 15:32 | #


Ça marche aussi.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Yatis Hors ligne Membre Points: 581 Défis: 0 Message

Citer : Posté le 09/12/2019 15:49 | #


J'imagine aussi les tableaux de constantes, je crois que Limachi avait fait ça pour son Minecraft pour gratter de la vitesse.

Il me semble que PierrotLL utilisais cette technique pour CubeField. Ninestars aussi l'utilise (utilisais ?) pour Windmill. J'avais aussi expérimenté cette méthode pour faire un pseudo moteur 3D; la table de cosinus avait 360 valeurs de 8-bits et ce n'était pas si dégueu que ça a l'écran.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 125 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd