Post Reply 
Gradian toolbox
01-08-2016, 09:36 AM
Post: #1
Gradian toolbox
Hi to everybody!
I created a small program that provides conversion from radians or degrees to gradian and viceversa. There are also the three basic trigonometric functions and their inverse functions that work directly in gradians.
I hope it is useful to someone. If there are errors and bugs report it!

Code:

// Gradian Toolbox
// January 2016
// HAngle = 1 -> degrees mode
// HAngle = 0 -> radian mode
// Exact function removes approximation error
// Approx function convert decimal value to fraction whenever possible

// Converting to grads
EXPORT TO_GRAD(n)
BEGIN
IF HAngle == 1 THEN 
RETURN 10*n/9;
ELSE 
RETURN 200*n/π;
END;
END;

// Convert from grads
EXPORT FROM_GRAD(n)
BEGIN
IF HAngle == 1 THEN 
RETURN 9*n/10; 
ELSE 
RETURN n*π/200;
END;
END;

// Grads cosine
EXPORT COS_G(n)
BEGIN
RETURN COS(FROM_GRAD(n));
END;

// Grads sine
EXPORT SIN_G(n)
BEGIN
RETURN SIN(FROM_GRAD(n));
END;

// Grads tangent
EXPORT TAN_G(n)
BEGIN
RETURN TAN(FROM_GRAD(n));
END;

// Grads arccosine
EXPORT ACOS_G(n)
BEGIN
IF HAngle == 1 THEN 
RETURN approx(exact(10*ACOS(n)/9));
ELSE 
RETURN approx(exact(200*ACOS(n)/π));
END;
END;

// Grads arcsine
EXPORT ASIN_G(n)
BEGIN
IF HAngle == 1 THEN 
RETURN approx(exact(10*ASIN(n)/9));
ELSE 
RETURN approx(exact(200*ASIN(n)/π));
END;
END;

// Grads arctangent
EXPORT ATAN_G(n)
BEGIN
IF HAngle == 1 THEN 
RETURN approx(exact(10*ATAN(n)/9));
ELSE 
RETURN approx(exact(200*ATAN(n)/π));
END;
END;
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Gradian toolbox - AlfaSierra - 01-08-2016 09:36 AM
RE: Gradian toolbox - salvomic - 01-08-2016, 06:41 PM
RE: Gradian toolbox - rprosperi - 01-09-2016, 09:52 PM
RE: Gradian toolbox - salvomic - 01-09-2016, 10:06 PM
RE: Gradian toolbox - Archanus - 01-10-2016, 01:47 AM
RE: Gradian toolbox - Eddie W. Shore - 02-21-2016, 04:29 PM



User(s) browsing this thread: 1 Guest(s)