-- | Trigonometric Functions
module CsoundExpr.Opcodes.Math.Trig
    (cos',
     cosh',
     cosinv,
     sin',
     sinh',
     sininv,
     tan',
     tanh',
     taninv)
where



import CsoundExpr.Base.Types
import CsoundExpr.Base.MultiOut
import CsoundExpr.Base.SideEffect
import CsoundExpr.Base.UserDefined



-- | * opcode : cos
--  
--  
-- * syntax : 
--  
--  >   cos(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the cosine of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/cos.html>
 
cos' :: (X x0) => x0 -> x0
cos' x0sig = prefixOperation "cos" args
  where args = [to x0sig]


-- | * opcode : cosh
--  
--  
-- * syntax : 
--  
--  >   cosh(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the hyperbolic cosine of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/cosh.html>
 
cosh' :: (X x0) => x0 -> x0
cosh' x0sig = prefixOperation "cosh" args
  where args = [to x0sig]


-- | * opcode : cosinv
--  
--  
-- * syntax : 
--  
--  >   cosinv(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the arccosine of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/cosinv.html>
 
cosinv :: (X x0) => x0 -> x0
cosinv x0sig = prefixOperation "cosinv" args
  where args = [to x0sig]


-- | * opcode : sin
--  
--  
-- * syntax : 
--  
--  >   sin(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the sine of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/sin.html>
 
sin' :: (X x0) => x0 -> x0
sin' x0sig = prefixOperation "sin" args
  where args = [to x0sig]


-- | * opcode : sinh
--  
--  
-- * syntax : 
--  
--  >   sinh(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the hyperbolic sine of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/sinh.html>
 
sinh' :: (X x0) => x0 -> x0
sinh' x0sig = prefixOperation "sinh" args
  where args = [to x0sig]


-- | * opcode : sininv
--  
--  
-- * syntax : 
--  
--  >   sininv(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the arcsine of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/sininv.html>
 
sininv :: (X x0) => x0 -> x0
sininv x0sig = prefixOperation "sininv" args
  where args = [to x0sig]


-- | * opcode : tan
--  
--  
-- * syntax : 
--  
--  >   tan(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the tangent of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/tan.html>
 
tan' :: (X x0) => x0 -> x0
tan' x0sig = prefixOperation "tan" args
  where args = [to x0sig]


-- | * opcode : tanh
--  
--  
-- * syntax : 
--  
--  >   tanh(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the hyperbolic tangent of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/tanh.html>
 
tanh' :: (X x0) => x0 -> x0
tanh' x0sig = prefixOperation "tanh" args
  where args = [to x0sig]


-- | * opcode : taninv
--  
--  
-- * syntax : 
--  
--  >   taninv(x) (no rate restriction)
--  
--  
-- * description : 
--  
--  Returns the arctangent of x (x in radians).
--  
--  
-- * url : <http://www.csounds.com/manual/html/taninv.html>
 
taninv :: (X x0) => x0 -> x0
taninv x0sig = prefixOperation "taninv" args
  where args = [to x0sig]