module Numeric.Special.Trigonometric (csc, sec, cot,
acsc, asec, acot,
csch, sech, coth,
acsch, asech, acoth
) where
import Data.Complex
csc :: Floating a => a -> a
csc :: forall a. Floating a => a -> a
csc a
z = a
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
sin a
z
sec :: Floating a => a -> a
sec :: forall a. Floating a => a -> a
sec a
z = a
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
cos a
z
cot :: Floating a => a -> a
cot :: forall a. Floating a => a -> a
cot a
z = a
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
tan a
z
acsc :: Floating a => a -> a
acsc :: forall a. Floating a => a -> a
acsc a
z = forall a. Floating a => a -> a
asin forall a b. (a -> b) -> a -> b
$ a
1 forall a. Fractional a => a -> a -> a
/ a
z
asec :: Floating a => a -> a
asec :: forall a. Floating a => a -> a
asec a
z = forall a. Floating a => a -> a
acos forall a b. (a -> b) -> a -> b
$ a
1 forall a. Fractional a => a -> a -> a
/ a
z
acot :: Floating a => a -> a
acot :: forall a. Floating a => a -> a
acot a
z = forall a. Floating a => a -> a
atan forall a b. (a -> b) -> a -> b
$ a
1 forall a. Fractional a => a -> a -> a
/ a
z
csch :: Floating a => a -> a
csch :: forall a. Floating a => a -> a
csch a
z = a
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
sinh a
z
sech :: Floating a => a -> a
sech :: forall a. Floating a => a -> a
sech a
z = a
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
cosh a
z
coth :: Floating a => a -> a
coth :: forall a. Floating a => a -> a
coth a
z = a
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
tanh a
z
acsch :: Floating a => a -> a
acsch :: forall a. Floating a => a -> a
acsch a
z = forall a. Floating a => a -> a
asinh forall a b. (a -> b) -> a -> b
$ a
1 forall a. Fractional a => a -> a -> a
/ a
z
asech :: Floating a => a -> a
asech :: forall a. Floating a => a -> a
asech a
z = forall a. Floating a => a -> a
acosh forall a b. (a -> b) -> a -> b
$ a
1 forall a. Fractional a => a -> a -> a
/ a
z
acoth :: Floating a => a -> a
acoth :: forall a. Floating a => a -> a
acoth a
z = forall a. Floating a => a -> a
atanh forall a b. (a -> b) -> a -> b
$ a
1 forall a. Fractional a => a -> a -> a
/ a
z
{-# specialize csc :: Double -> Double #-}
{-# specialize csc :: Complex Double -> Complex Double #-}
{-# specialize sec :: Double -> Double #-}
{-# specialize sec :: Complex Double -> Complex Double #-}
{-# specialize cot :: Double -> Double #-}
{-# specialize cot :: Complex Double -> Complex Double #-}
{-# specialize acsc :: Double -> Double #-}
{-# specialize acsc :: Complex Double -> Complex Double #-}
{-# specialize asec :: Double -> Double #-}
{-# specialize asec :: Complex Double -> Complex Double #-}
{-# specialize acot :: Double -> Double #-}
{-# specialize acot :: Complex Double -> Complex Double #-}
{-# specialize csch :: Double -> Double #-}
{-# specialize csch :: Complex Double -> Complex Double #-}
{-# specialize sech :: Double -> Double #-}
{-# specialize sech :: Complex Double -> Complex Double #-}
{-# specialize coth :: Double -> Double #-}
{-# specialize coth :: Complex Double -> Complex Double #-}
{-# specialize acsch :: Double -> Double #-}
{-# specialize acsch :: Complex Double -> Complex Double #-}
{-# specialize asech :: Double -> Double #-}
{-# specialize asech :: Complex Double -> Complex Double #-}
{-# specialize acoth :: Double -> Double #-}
{-# specialize acoth :: Complex Double -> Complex Double #-}