Trigonometry

by Oasiscircle
Basic trigonometric functions that aren't offered in BYOND!
ID:125887
 
Include the following trigonometric procedures by simply checking the include-box!

Version 1.0 (359 bytes)
*Added all basic functions.

Version 1.1 (401 bytes)
*Added arctan2() function.
*Fixed arcpyth() function.

Version 1.2 (424 bytes)
*Uncompressed for cross-eyes sake. :)

pyth(a,b) return sqrt(a**2+b**2)
arcpyth(a,c) return sqrt(c**2-a**2)
triarea(a,b,C) return (a*b*sin(C))/2
tan(n) return sin(n) / cos(n)
cot(n) return cos(n) / sin(n)
sec(n) return 1 / cos(n)
csc(n) return 1 / sin(n)
arctan(n) return arccos(1 / sqrt(1+n*n))
arccot(n) return arcsin(1 / sqrt(1+n*n))
arcsec(n) return arccos(1 / n)
arccsc(n) return arcsin(1 / n)
arctan2(x,y) return 2*arctan(y/(sqrt(x**2+y**2)+x))


Code is compressed to smallest size (424 bytes!) in order to have the smallest effect possible on your projects! (:

                   Profile results (total time)
Proc Name Self CPU Total CPU Real Time Calls
-------------- --------- --------- --------- ---------
/proc/arctan 1.185 1.319 1.600 2000000
/proc/pyth 0.687 0.753 0.915 1000000
/proc/arcpyth 0.678 0.742 0.881 1000000
/proc/arccsc 0.608 0.676 0.816 1000000
/proc/arcsec 0.605 0.668 0.804 1000000
/proc/arccot 0.564 0.629 0.782 1000000
/proc/triarea 0.444 0.523 0.666 1000000
/proc/cot 0.379 0.445 0.611 1000000
/proc/tan 0.370 0.424 0.585 1000000
/proc/csc 0.255 0.326 0.498 1000000
/proc/sec 0.250 0.321 0.473 1000000