Function Dump/Mathematical Functions: Difference between revisions
>Mindraker m typo |
>Mr Doom Bringer No edit summary |
||
Line 1: | Line 1: | ||
{{CatUp|Function Dump}} | {{CatUp|Function Dump}} | ||
=Mathematical Functions= | |||
This library is an interface to the standard C math library. It provides all its functions inside the table math. | This library is an interface to the standard C math library. It provides all its functions inside the table math. | ||
===math.abs (x)=== | |||
Line 27: | Line 25: | ||
}} | }} | ||
===math.acos (x)=== | |||
Line 45: | Line 43: | ||
}} | }} | ||
===math.asin (x)=== | |||
Line 63: | Line 61: | ||
}} | }} | ||
===math.atan (x)=== | |||
Line 81: | Line 79: | ||
}} | }} | ||
===math.atan2 (y, x)=== | |||
Line 100: | Line 98: | ||
===math.ceil (x)=== | |||
Line 118: | Line 116: | ||
}} | }} | ||
===math.cos (x)=== | |||
Line 137: | Line 135: | ||
}} | }} | ||
===math.cosh (x)=== | |||
Line 155: | Line 153: | ||
}} | }} | ||
===math.deg (x)=== | |||
Line 170: | Line 168: | ||
}} | }} | ||
===math.exp (x)=== | |||
Line 188: | Line 186: | ||
}} | }} | ||
===math.floor (x)=== | |||
Line 206: | Line 204: | ||
}} | }} | ||
===math.fmod (x, y)=== | |||
Line 224: | Line 222: | ||
}} | }} | ||
===math.frexp (x)=== | |||
Line 244: | Line 242: | ||
}} | }} | ||
===math.huge=== | |||
Line 258: | Line 256: | ||
}} | }} | ||
===math.ldexp (m, e)=== | |||
Line 277: | Line 275: | ||
===math.log (x)=== | |||
Line 295: | Line 293: | ||
}} | }} | ||
===math.log10 (x)=== | |||
Line 313: | Line 311: | ||
}} | }} | ||
===math.max (x, ···)=== | |||
Line 326: | Line 324: | ||
}} | }} | ||
===math.min (x, ···)=== | |||
Line 340: | Line 338: | ||
}} | }} | ||
===math.modf (x)=== | |||
Line 354: | Line 352: | ||
}} | }} | ||
===math.pi=== | |||
Line 369: | Line 367: | ||
}} | }} | ||
===math.pow (x, y)=== | |||
Line 387: | Line 385: | ||
}} | }} | ||
===math.rad (x)=== | |||
Line 401: | Line 399: | ||
}} | }} | ||
===math.random ([m [, n]])=== | |||
Line 420: | Line 418: | ||
}} | }} | ||
===math.randomseed (x)=== | |||
Line 426: | Line 424: | ||
===math.sin (x)=== | |||
Line 444: | Line 442: | ||
}} | }} | ||
===math.sinh (x)=== | |||
Line 462: | Line 460: | ||
}} | }} | ||
===math.sqrt (x)=== | |||
Line 480: | Line 478: | ||
}} | }} | ||
===math.tan (x)=== | |||
Line 498: | Line 496: | ||
}} | }} | ||
===math.tanh (x)=== | |||
Line 515: | Line 513: | ||
</pre> | </pre> | ||
}} | }} | ||
Revision as of 23:43, 23 February 2010
Mathematical Functions
This library is an interface to the standard C math library. It provides all its functions inside the table math.
math.abs (x)
Returns the absolute value of x.
for i = -10, 10, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+math.abs(i),0)) wait() end
math.acos (x)
Returns the arc cosine of x (in radians).
for i = -1, 1, .01 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i*10,50+math.acos(i)*10,0)) wait() end
math.asin (x)
Returns the arc sine of x (in radians).
for i = -1, 1, .01 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i*10,50+math.asin(i)*10,0)) wait() end
math.atan (x)
Returns the arc tangent of x (in radians).
for i = -5, 5, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i*10,50+math.atan(i)*10,0)) wait() end
math.atan2 (y, x)
Returns the arc tangent of y/x (in radians), but uses the signs of both parameters to find the quadrant of the result. (It also handles correctly the case of x being zero.)
for i = -5, 5, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i*10,50+math.atan2(1,i)*10,0)) wait() end
math.ceil (x)
Returns the smallest integer larger than or equal to x.
for i = 0, 50, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,math.ceil(i),0)) wait() end
math.cos (x)
Returns the cosine of x (assumed to be in radians).
for i = 0, 50, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(2*math.cos(i),i,0)) wait() end
math.cosh (x)
Returns the hyperbolic cosine of x.
for i = 0, 5, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,2*math.cosh(i),0)) wait() end
math.deg (x)
Returns the angle x (given in radians) in degrees.
a=math.deg (1.5707963267948966192313216916398) print(a) Will result in: 90
math.exp (x)
Returns the the value e^x.
for i = -5, 5, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+math.exp(i),0)) wait() end
math.floor (x)
Returns the largest integer smaller than or equal to x.
for i = 0, 50, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,math.floor(i),0)) wait() end
math.fmod (x, y)
Returns the remainder of the division of x by y that rounds the quotient towards zero.
for i = -10, 10, 1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+math.fmod(i,2),0)) wait() end
math.frexp (x)
Returns m and e such that x = m*2^e, e is an integer and the absolute value of m is in the range [0.5, 1) (or zero when x is zero).
print(math.frexp (0)) Will result in: 0 0
print(math.frexp (4)) Will result in: 0.5 3 -- (2^3/2=4)
math.huge
The value HUGE_VAL, a value larger than or equal to any other numerical value.
print(math.huge) Will result in: 1.#INF
math.ldexp (m, e)
Returns m*2^e (e should be an integer).
for i = -10, 10, 1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+math.ldexp (i, 1),0)) wait() end
math.log (x)
Returns the natural logarithm of x.
for i = 0, 30, 1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+5*math.log (i),0)) wait() end
math.log10 (x)
Returns the base-10 logarithm of x.
for i = 0, 30, 1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+5*math.log10 (i),0)) wait() end
math.max (x, ···)
Returns the maximum value among its arguments.
print(math.max (1, 2, 3, 4, 5, 6, 7)) Will result in: 7
math.min (x, ···)
Returns the minimum value among its arguments.
print(math.min (1, 2, 3, 4, 5, 6, 7)) Will result in: 1
math.modf (x)
Returns two numbers, the integral part of x and the fractional part of x.
print(math.modf (2.5)) Will result in: 2 0.5
math.pi
The value of pi.
a=(math.pi^2) print(math.sqrt(a)) Will result in: 3.1415926535898
math.pow (x, y)
Returns x^y. (You can also use the expression x^y to compute this value.)
for i = 0, 10, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i+50,math.pow(i,2),0)) wait() end
math.rad (x)
Returns the angle x (given in degrees) in radians.
print(math.rad (90)) Will result in: 1.5707963267949 (Which is pi/2)
math.random ([m [, n]])
This function is an interface to the simple pseudo-random generator function rand provided by ANSI C. (No guarantees can be given for its statistical properties.)
When called without arguments, returns a pseudo-random real number in the range [0,1). When called with a number m, math.random returns a pseudo-random integer in the range [1, m]. When called with two numbers m and n, math.random returns a pseudo-random integer in the range [m, n].
local str = "" for i = 1,10 do local num = math.random(33,126) str = str .. string.char(num) end print(str)
math.randomseed (x)
Sets x as the "seed" for the pseudo-random generator: equal seeds produce equal sequences of numbers.
math.sin (x)
Returns the sine of x (assumed to be in radians).
for i = 0, 20, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(3*math.sin(i),3*i,3*math.cos(i))) wait() end
math.sinh (x)
Returns the hyperbolic sine of x.
for i = -2, 2, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(2*math.sinh(i),5*i+50,2*math.cosh(i))) wait() end
math.sqrt (x)
Returns the square root of x. (You can also use the expression x^0.5 to compute this value.)
for i = 0, 30, 1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+5*math.sqrt (i),0)) wait() end
math.tan (x)
Returns the tangent of x (assumed to be in radians).
for i = 0, 50, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+2*math.tan(i),0)) wait() end
math.tanh (x)
Returns the hyperbolic tangent of x.
for i = -5, 5, .1 do local p = Instance.new("Part") p.Parent = game.Workspace p.Size = Vector3.new(1,1,1) p.Anchored = true p.CFrame=(CFrame.fromEulerAnglesXYZ(0,0,0)+Vector3.new(i,50+2*math.tanh(i),0)) wait() end