Simple Mathematics -
Lorenc_ - 17.09.2011
A math include for problem solving..
Why? What? Why'd you make this
I thought about it, and I was thinking is there any ways I could do equations more tidier? Well I here made this for myself thought since I don't
always use it, I would share it among the community :P
You may seem to think it's useless but hey, works fine for me and does a superb job for me. Some functions return decimals (such as floats) and some return whole numbers. So make sure you check what you're doing!
There are
17 functions all related to numbers (or in other words, math). I managed to make a function relating to some mathematical theorems. Though the new 6 basic functions, plus, minus, times, divide, sqroot, power. They haven't been fully tested but if there is problems with it, please do report it here.
Functions
pawn Код:
/*
native Math.Pi()
native Math.Infinite()
native Math.Highest(...)
native Math.Add(val, val2)
native Math.Subtract(val, val2)
native Math.Divide(val, val2)
native Math.Multiply(val, val2)
native Math.SquareRoot(Value)
native Math.Power(val, val2)
native Math.Mean(...)
native Math.Pythagoras( Float: val1, Float: val2, bool: shortside = false )
native Math.GetMiddlePos(Float: X, Float: Y, Float: X2, Float: Y2, &Float: vX, &Float: vY)
native Math.RandomEx(min, max)
native Math.RandomPlayer()
native Math.IsPositive( num )
native Math.IsNegative( num )
native Math.Random3DCoord( Float: minx, Float: miny, Float: minz, Float: maxx, Float: maxy, Float: maxz, &Float: randx, &Float: randy, &Float: randz)
*/
By looking at the functions, they're easy to know what they are. Pretty much self explanatory.
Yes I know, they're also in functions. Please don't complain about me converting them to defines/macros.
Credits
Mauzen - Arithmetic mean value.
Lorenc - Most of the functions
RyDeR` - RandomEx calculation
[HiC]TheKiller - Minor fixes/help
Logs
Код:
** Released
Fixed several things listed - <<
Note: I'm not the best at math though I can do some things. However, I would accept function suggestions if I know how they're operated/made.
Ask
RyDeR` for mathematic problems lol, his a mathematician pro!
Download
Version 1.1
Problems/Suggestions?
Please do bump the thread with suggestions, would be more than welcome to add them
Problems? Please post here so I can fix them as soon as possible.
I will update the thread for new functions and bug fixes, so stay tuned.
Re: Math Include -
[O.z]Caroline - 17.09.2011
nice, very nice!
downloading ...
Respuesta: Math Include -
Manuel7284 - 17.09.2011
Good Job!
Re: Math Include -
cessil - 17.09.2011
there's quite a few pointless ones, like Math.Add
also there's functions that won't work like
pawn Код:
stock Math.RandomPlayer( ) // Correct
{
new
pCount,
val
;
for(new i, g = GetMaxPlayers(); i < g; i++)
{
if(IsPlayerConnected(i)) pCount++;
}
val = random(pCount);
return val;
}
it could return a non connected player
also this will return -.99 to -.01 as a positive
pawn Код:
stock bool: Math.IsPositive( Float: num ) // Correct
{
if( num > -1 ) return true;
return false;
}
and Math.Highest(...) won't work if you use all negative numbers
and you use RandomEx in the script but it should be Math.RandomEx
that's all just by looking over it
Re: Math Include -
Lorenc_ - 17.09.2011
Quote:
Originally Posted by cessil
there's quite a few pointless ones, like Math.Add
also there's functions that won't work like
pawn Код:
stock Math.RandomPlayer( ) // Correct { new pCount, val ; for(new i, g = GetMaxPlayers(); i < g; i++) { if(IsPlayerConnected(i)) pCount++; } val = random(pCount); return val; }
it could return a non connected player
also this will return -.99 to -.01 as a positive
pawn Код:
stock bool: Math.IsPositive( Float: num ) // Correct { if( num > -1 ) return true; return false; }
and Math.Highest(...) won't work if you use all negative numbers
and you use RandomEx in the script but it should be Math.RandomEx
that's all just by looking over it
|
Thanks for that, I completely forgot while I was writing this function however they should be fixed. I'm currently at my cousins house and he doesn't have SA-MP nor the compiler and dial-up lawl. I've fixed it in notepad but not 100% correct if it'll work.
Updated :P
Re: Math Include -
bhaveshnande - 17.09.2011
Hope this might help you:
http://i.imgur.com/HCDtq.jpg to add some more functions. I just wrote it to explain someone, it has some formulas that might help you, like distance between two points in 3D, internal division, external division
Re: Math Include -
[MWR]Blood - 17.09.2011
Nice include, good job mate.
Re: Math Include -
System64 - 17.09.2011
very cool, good job

Maybe more cleaner script, ex. you do
It could be
Re: Math Include -
MicroD - 17.09.2011
Quote:
Originally Posted by System64
very cool, good job 
Maybe more cleaner script, ex. you do
It could be
|
*facepalm*
Nice idea Lorenc ^.^
Re: Math Include -
CaHbKo - 17.09.2011
I don't get the point of all those basic arithmetic functions. How this
pawn Код:
new var = Math.Add(1, 2);
better than this?
Congratulations, you've just invented a bicycle...
Also, this is a better way to do things:
pawn Код:
stock Math.Add( val, val2 ) return val+val2; //That's it. The whole function. But the most pointless one...
Re: Math Include -
GangsTa_ - 17.09.2011
Looks cool, especially Pythagora's)
Re: Math Include -
iPLEOMAX - 17.09.2011
Nice work!
Maybe some other angle functions too in next version?
Re: Math Include -
Hiddos - 17.09.2011
Code:
stock Float: Math.Pie( ) return ( 3.14159265 ); // Correct!
stock Math.Infinite( ) return ( 0x7F800000 ); // Correct!
stock Math.SquareRoot( Float: Val ) return floatsqroot(Val); //Correct but nothing useful... lol.
Or just...
Code:
#define Math.Pie() (3.14159265)
#define Math.Infinite() (0x7F800000)
#define Math.SquareRoot(%0) (floatsqroot(%0))
Also, why do we need stuff like this:
Code:
Math.Power
Math.Multiply
Math.Divide
Math.Substract
Math.Add
You've got these functions in the float.inc as well, which are most probably even faster?
Code:
floatpower
floatmul
floatdiv
floatsub
floatadd
I also didn't know that 0 was a positive number 0.o
Edit: This actually is real simple math
Re: Math Include -
wups - 17.09.2011
Code:
stock bool: Math.IsPositive( Float: num ) // Correct
{
if( num >= 0 ) return true;
return false;
}
Definitely NOT correct. Since when is 0 positive?
Also, you forgot Lowest, since there is Highest.
And if i remember correctly char arrays([MAX_PLAYERS char]) store integers from -125 to 125.
So you can't use it in RandomPlayer.
Re: Math Include -
Lorenc_ - 17.09.2011
Okay, tommrow since I'm not at home yet. I'll be fixing up these and converting them to macros. Of course, yes, this is meant to be a 'simple math' include. I added those 4 functions for the sake of it. But i'll remove them since I'm creating 4 32 bit variables D:
Re: Math Include -
Raimis_R - 17.09.2011
Lorenc_ your super duper matematic! : D
Nice.
Re: Math Include -
=WoR=Varth - 17.09.2011
Code:
stock minrand(min, max) //By Alex "Y_Less" Cole
{
return random(max-min)+min;
}
And I think Iter_Random(Player) is faster.
Re: Math Include - Double-O-Seven - 17.09.2011
That Math.Pie must be tasty!
Re: Math Include -
Lorenc_ - 17.09.2011
Quote:
Originally Posted by Double-O-Seven
That Math.Pie must be tasty!
|
Yes, indeed I was rotating a wheel object and it did actually stop at "math.pie()". Deleted the code before, I'll try to make it soon.
:P
@varthshenon
I'd supposedly say so. Foreach is fast into looping as well. However I'm rewriting the functions in defines later. Not sure if 'defines' make a speed difference but they do shorten the code.
@Raimis_R
Haha, wish I was better though and knew alot more formulas! But to admit it. I'm not the best/good at it, though I can do some jobs in it.
Pythagoras should be a useful function :P
Re: Math Include - Double-O-Seven - 17.09.2011
Quote:
Originally Posted by Lorenc_
Yes, indeed I was rotating a wheel object and it did actually stop at "math.pie()". Deleted the code before, I'll try to make it soon.
:P
@varthshenon
I'd supposedly say so. Foreach is fast into looping as well. However I'm rewriting the functions in defines later. Not sure if 'defines' make a speed difference but they do shorten the code.
@Raimis_R
Haha, wish I was better though and knew alot more formulas! But to admit it. I'm not the best/good at it, though I can do some jobs in it.
Pythagoras should be a useful function :P
|
I just wanted to say the Math.Pie isn't correct. It's
Math.Pi.