I am having some difficulty with the tan() function in Mathlib (April 13
1999 version) which seems to be returning incorrect values.

Code I am using to demonstrate this is as follows -- essentially it just
takes a value in degrees and calculates the equivalent in radians and the
tangent:
------------------------------------------------------
#define radians(angle) ((float) ((angle) * 0.017453))
#define DBGSAYF(s, x, p)        StrCopy(diagmsg, s); \
        StringFToA(diagmsg + StrLen(diagmsg), x, p); \
        ErrNonFatalDisplayIf(true, diagmsg);

        // code to calculate x
        DBGSAYF("x: ", (float) x, 5);
        DBGSAYF("radians(x): ", radians(x), 5);
        DBGSAYF("tan(x): ", (float) tan(radians(x)), 5);
------------------------------------------------------

Typical results are:

x: 209.70740
radians(x): 3.66002
tan(radians(x)): 0.57048     <<<<< should be 0.57056

x: 93.56614
radians(x): 1.63301
tan(radians(x)): -16.05292     <<<<< should be -16.04586

Given the time that Mathlib has been around, I expect that the error is
something I am doing rather than the program but can't see what it is.
Grateful if anyone could throw any light on the subject.  

Reply via email to