| Trig {base} | R Documentation |
These functions give the obvious trigonometric functions. They respectively compute the cosine, sine, tangent, arc-cosine, arc-sine, arc-tangent, and the two-argument arc-tangent.
cospi(x), sinpi(x), and tanpi(x), compute
cos(pi*x), sin(pi*x), and tan(pi*x).
cos(x) sin(x) tan(x) acos(x) asin(x) atan(x) atan2(y, x) cospi(x) sinpi(x) tanpi(x)
x, y |
numeric or complex vectors. |
The arc-tangent of two arguments atan2(y, x) returns the angle
between the x-axis and the vector from the origin to (x, y),
i.e., for positive arguments atan2(y, x) == atan(y/x).
Angles are in radians, not degrees, for the standard versions (i.e., a
right angle is π/2), and in ‘half-rotations’ for
cospi etc.
cospi(x), sinpi(x), and tanpi(x) are accurate
for x which are multiples of a half.
All except atan2 are internal generic primitive
functions: methods can be defined for them individually or via the
Math group generic.
tanpi(0.5) is NaN. Similarly for other inputs
with fractional part 0.5.
For the inverse trigonometric functions, branch cuts are defined as in Abramowitz and Stegun, figure 4.4, page 79.
For asin and acos, there are two cuts, both along
the real axis: (-Inf, -1] and
[1, Inf).
For atan there are two cuts, both along the pure imaginary
axis: (-1i*Inf, -1i] and
[1i, 1i*Inf).
The behaviour actually on the cuts follows the C99 standard which requires continuity coming round the endpoint in a counter-clockwise direction.
Complex arguments for cospi, sinpi, and tanpi
are not yet implemented.
All except atan2 are S4 generic functions: methods can be defined
for them individually or via the
Math group generic.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Abramowitz, M. and Stegun, I. A. (1972). Handbook of
Mathematical Functions. New York: Dover.
Chapter 4. Elementary Transcendental Functions: Logarithmic,
Exponential, Circular and Hyperbolic Functions
For cospi, sinpi, and tanpi the draft C11
extension ISO/IEC TS 18661
(http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1785.pdf).
x <- seq(-3, 7, by = 1/8)
tx <- cbind(x, cos(pi*x), cospi(x), sin(pi*x), sinpi(x),
tan(pi*x), tanpi(x), deparse.level=2)
op <- options(digits = 4, width = 90) # for nice formatting
head(tx)
tx[ (x %% 1) %in% c(0, 0.5) ,]
options(op)