Arcsin(x) = pi/2 + arccos(x)
Bear in mind that the inverse trig functions are multivalued: e.g. arcsin(0) =
0, but it's also true that arcsin(0) = pi, or 2pi, or any integral multiple of
pi.
John,
The principal values for the Arcsin() function should be between -pi/2
and pi/2. See:
http://mathworld.wolfram.com/InverseSine.html
Your function is one of the "multivalues" of the function, so it is
not technically incorrect, but it is not correct -- technically --
without taking care afterward to put the principal value in the
correct range. Maybe you took that as a given.
Perhaps:
Arcsin(x) = Arccos(x) - 2 * Atn(1) (from the technique shown in the
A97 Help File -- Derived Math Functions)
Atn(1) returns the value of pi/4 (as best it can) and saves having to
define a constant. The principal values for the Arccos() function are
between 0 and pi. It's good to be reminded that the result of the
function is in radians and should be converted if degrees are
desired. Mentally, I think of ArcSin(x) as the "arc whose Sine is x,"
so the range of input values from -1 to 1 makes sense. If x is placed
on the Y-Axis along with a unit circle centered at the origin, the
ArcSin() function corresponds to the arc length along the unit circle
from (1, 0) to the place where a horizontal line from x to the right
intersects the circle. Naturally, that arc length equates to a
particular angle, at least in Euclidean geometry anyway
.
James A. Fortune
(e-mail address removed)