Trig
Trigonometric Functions
These functions give the obvious trigonometric functions. They respectively compute the cosine, sine, tangent, arccosine, arcsine, arctangent, and the twoargument arctangent.
cospi(x)
, sinpi(x)
, and tanpi(x)
, compute
cos(pi*x)
, sin(pi*x)
, and tan(pi*x)
.
 Keywords
 math
Usage
cos(x)
sin(x)
tan(x)
acos(x)
asin(x)
atan(x)
atan2(y, x)
cospi(x)
sinpi(x)
tanpi(x)
Arguments
 x, y
 numeric or complex vectors.
Details
The arctangent of two arguments atan2(y, x)
returns the angle
between the xaxis 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 $\pi/2$), and in ‘halfrotations’ 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.
Value

tanpi(0.5) is NaN. Similarly for other inputs
with fractional part 0.5.
Complex values
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 counterclockwise
direction. Complex arguments for cospi
, sinpi
, and tanpi
are not yet implemented.
S4 methods
All except atan2
are S4 generic functions: methods can be defined
for them individually or via the
Math
group generic.
References
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.openstd.org/jtc1/sc22/wg14/www/docs/n1785.pdf).
Examples
library(base)
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)