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 » Comment ce calcul peut être plus rapide ?!!
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Comment ce calcul peut être plus rapide ?!!

Posté le 25/09/2016 19:17

Bonsoir,
Pour mon moteur 3D je suis en train d'optimiser un peu partout, et là j'ai une question concernant une optimisation cachée faite par le compilateur.
A la base j'ai ce calcul
int tx = wx * h / point1.z / (wx / point1.z + (1-wx) / point0.z);
Avec h int et wx, point1.z, point0.z float
Je mets ça sur papier, je me dis ce truc est quand même bien dégeu il y a moyen de simplifier et je trouve
int tx = h / ( 1.0 + c1/wx - c1);

avec c1 précalculé : float c1 = point1.z / point0.z;
Et à ma grande surprise. C'est très légèrement moins rapide... Là je saisis pas
Comment est-ce possible ?


Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 29/09/2016 18:13 | #


Merci les gars, c'est un peu miuex mais j'ai toujours ça
C:\Casio Projets\Render3D\Main.cpp(120) : C5144 (E) A value of type "volatile void *" cannot be used to initialize an entity of type "volatile struct <unnamed> *"
C:\Casio Projets\Render3D\Main.cpp(121) : C5144 (E) A value of type "volatile void *" cannot be used to initialize an entity of type "unsigned char *"
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 29/09/2016 18:16 | #


Caste le second pointeur en volatile unsigned char * à la place, et ajoute un volatile au début de la déclaration. Déplace la définition de la structure hors de la fonction et donne-lui un nom ; utilise ce nom pour déclarer la variable et caster le pointeur.

Edit : J'ai modifié le code dans mon message précédent.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

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 227 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