
WrapAngle rapide
-
- Messages : 333
- Inscription : sam. 25/juin/2005 11:18
- Localisation : Laon (02)
- Contact :
ayé j'ai des résultats similaires aux votres 
Psychophanta m'a suggéré de changer !fprem1 par !fprem
et j'obtiens

Psychophanta m'a suggéré de changer !fprem1 par !fprem
et j'obtiens
---------------------------
Test
---------------------------
WrapAngle1 = 422
WrapAngle2 = 422
WrapAngle3 = 422
WrapAngleDeg = 312
WrapValue = 516
---------------------------
OK
---------------------------
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Ce code était fait pour la version 3.94, il y a des changements avec la V4.
PsychoPhanta a fait une mise à jour :
http://purebasic.fr/english/viewtopic.php?t=18635
PsychoPhanta a fait une mise à jour :
http://purebasic.fr/english/viewtopic.php?t=18635
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
N'y comprenant rien.
Je ne sais pas si ça peux vous aider
Mais voila :
Non compilé :
----------------
WrapAngle1 = 1172
WrapAngle2 = 1203
WrapAngle3 = 1172
WrapAngleDeg = 1156
WrapValue = 719
Intel celeron 2.4 Ghz
Compilé:
----------
WrapAngle1 = 985
WrapAngle2 = 1000
WrapAngle3 = 969
WrapAngleDeg = 984
WrapValue = 562
Intel Pentium 2.4 Ghz
********************************
********************************
Non compilé :
----------------
WrapAngle1 = 766
WrapAngle2 = 781
WrapAngle3 = 766
WrapAngleDeg = 750
WrapValue = 453
Intel P4 3.2 Ghz
Compilé:
----------
WrapAngle1 = 781
WrapAngle2 = 766
WrapAngle3 = 781
WrapAngleDeg = 750
WrapValue = 453
Intel P4 3.2 Ghz
Je ne sais pas si ça peux vous aider
Mais voila :
Non compilé :
----------------
WrapAngle1 = 1172
WrapAngle2 = 1203
WrapAngle3 = 1172
WrapAngleDeg = 1156
WrapValue = 719
Intel celeron 2.4 Ghz
Compilé:
----------
WrapAngle1 = 985
WrapAngle2 = 1000
WrapAngle3 = 969
WrapAngleDeg = 984
WrapValue = 562
Intel Pentium 2.4 Ghz
********************************
********************************
Non compilé :
----------------
WrapAngle1 = 766
WrapAngle2 = 781
WrapAngle3 = 766
WrapAngleDeg = 750
WrapValue = 453
Intel P4 3.2 Ghz
Compilé:
----------
WrapAngle1 = 781
WrapAngle2 = 766
WrapAngle3 = 781
WrapAngleDeg = 750
WrapValue = 453
Intel P4 3.2 Ghz
Voici un test plus préci

Code : Tout sélectionner
Procedure.f WrapValue(angle.f)
;Auteur Filperj
angle/360
angle-Int(angle)
If angle<0
ProcedureReturn (angle+1)*360
Else
ProcedureReturn angle*360
EndIf
EndProcedure
Procedure.f WrapAngleDeg(angle.f); <- wraps a value into [0,360) fringe
!fild dword[@f] ; <- now i have 360 into st0
!FLD dword[p.v_angle]
!FPREM
!FADD st1,st0
!fldz
!fcomip st1
!fcmovnbe st0,st1
!FSTP st1
ProcedureReturn
!@@:dd 360
EndProcedure
*Test.ITest = New_Test(0)
For t=0 To #ITest
*Test\Start(1)
angle.f = 0
For r=0 To 1000
Val.f = WrapValue(angle)
angle + 0.3
Next
*Test\Stop(1)
Next
*Test\SetTitle(1, "Test Filperj : Résultat = "+StrF(Val))
For t=0 To #ITest
*Test\Start(2)
angle.f = 0
For r=0 To 1000
Val.f = WrapAngleDeg(angle)
angle + 0.3
Next
*Test\Stop(2)
Next
*Test\SetTitle(2, "Test PsychoPhanta (ASM) = "+StrF(Val))
For t=0 To #ITest
*Test\Start(3)
*Test\Stop(3)
Next
*Test\SetTitle(3, "Vide")
*Test\Display(1)
Intel(R) Pentium(R) 4 CPU 2.40GHz
2.52 GHz, 768Mo de RAM
NVIDIA GeForce4 Ti 4800 SE - 128Mo
Microsoft Windows XP Professionnel Service Pack 2
-----------------------------------
Test Filperj : Résultat = 300.000061
131764 cycles CPU (minimum)
133512 cycles en moyenne
X 1.00
-----------------------------------
Test PsychoPhanta (ASM) = 300.000061
74636 cycles CPU (minimum)
75932 cycles en moyenne
X 1.77
-----------------------------------
Vide
288 cycles CPU (minimum)
326 cycles en moyenne
X 457.51
-----------------------------------
C'est clair que les tests sont plus efficaces avec ta lib 

Intel(R) Pentium(R) 4 CPU 2.66GHz
2.66 GHz, 511Mo de RAM
NVIDIA GeForce 6800 - 256Mo
Microsoft Windows XP Édition familiale Service Pack 2
-----------------------------------
Test Filperj : Résultat = 300.000061
127224 cycles CPU (minimum)
134019 cycles en moyenne
X 1.00
-----------------------------------
Test PsychoPhanta (ASM) = 300.000061
75480 cycles CPU (minimum)
76044 cycles en moyenne
X 1.69
-----------------------------------
Vide
300 cycles CPU (minimum)
320 cycles en moyenne
X 424.08
-----------------------------------
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.