math

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

math

Message par Le Soldat Inconnu »

quelques fonctions manquantes :

Math :
Exponentielle
Sign() (obtenir le signe d'une valeur) pour rappel il suffit de de faire le test suivant :

Code : Tout sélectionner

Long.l = 57
If Long & $80000000
  Debug Str(Long) + " : signe -"
Else
  Debug Str(Long) + " : signe +"
EndIf

Trigo :
Pi() (ou au minimum une constante #Pi)
CosH, ..., ACosH, ...
Conversion degré/radian et radian/degré

Pour les probabilités :
Factorielle
NCR (combinaison sans répétition) NCR(p,n) = n!/(p!*(n-p)!)
NPR (arrangement sans répétition) NPR(p,n) = n!/(n-p)!


Bon, toutes ces fonctions peuvent être programmé mais ce serait mieux de les avoir directement dans PB :D
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

tu oublies le atan2 (peut-être qu'il existe d'ailleurs 8) )

Une version vite faite et très courte qui a l'air de marcher (ne pas oublier d'activer l'assembleur dans les options) :

Code : Tout sélectionner

Procedure.f ATan2(y.f, x.f)
 FLD y      ;Get y onto the FPU stack
 FLD x      ;Get x onto the FPU stack 
 FPATAN     ;Get the ATAN(y/x), Put result in ST(1) then pop the stack 
 
 ;!fstp dword [esp+8]      ;pas besoin, pure renvoie la dernière valeur st()

EndProcedure
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Autre petit truc:

Code : Tout sélectionner

signe = (n>>30)|1
donnera à "signe" la valeur -1 si "n"(entier) est strictement inférieur à zéro, la valeur +1 sinon.
8) 8) 8) 8) 8) 8)
(Faites pas attention, j'avais juste envie de me la péter un peu :lol: )
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Répondre