packages feed

radian 0.0.3 → 0.0.4

raw patch · 3 files changed

+46/−38 lines, 3 files

Files

changelog view
@@ -1,3 +1,7 @@+0.0.4++* Delete the `Radians` data type -- just use raw floating-point types.+ 0.0.3  * Change the `degrees` iso.
radian.cabal view
@@ -1,5 +1,5 @@ name:               radian-version:            0.0.3+version:            0.0.4 license:            BSD3 license-file:       LICENCE author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
src/Data/Radian.hs view
@@ -2,58 +2,62 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-}  module Data.Radian(-  Radian-, radians-, degrees+  toRadians+, fromRadians ) where -import Control.Lens(Iso, iso)-import Data.Eq(Eq)-import Data.Ord(Ord)-import Prelude(Show, Num((*)), Fractional((/)), Floating, Real, RealFrac, RealFloat, pi)+import Control.Lens(Iso, iso, from)+import Prelude(Num((*)), Fractional((/)), Floating, pi)  -- $setup -- >>> import Control.Lens((#)) -- >>> import Prelude(Double) -newtype Radian a =-  Radian a-  deriving (Eq, Ord, Show, Num, Fractional, Floating, Real, RealFrac, RealFloat)---- | An isomorphism from radians to degrees.+-- | An isomorphism between radians and degrees. ----- >>> radians # (180 :: Double)--- Radian 3.141592653589793+-- >>> toRadians # (180 :: Double)+-- 3.141592653589793 ----- >> radians # (90 :: Double)--- Radian 1.5707963267948966+-- >> toRadians # (90 :: Double)+-- 1.5707963267948966 ----- >>> radians # (359 :: Double)--- Radian 6.265732014659643+-- >>> toRadians # (359 :: Double)+-- 6.265732014659643 ----- >>> radians # (360 :: Double)--- Radian 6.283185307179586+-- >>> toRadians # (360 :: Double)+-- 6.283185307179586 ----- >>> radians # (3600 :: Double)--- Radian 62.83185307179586+-- >>> toRadians # (3600 :: Double)+-- 62.83185307179586 ----- >>> radians # (1 :: Double)--- Radian 1.7453292519943295e-2+-- >>> toRadians # (1 :: Double)+-- 1.7453292519943295e-2 ----- >>> radians # ((-180) :: Double)--- Radian (-3.141592653589793)-radians ::+-- >>> toRadians # ((-180) :: Double)+-- -3.141592653589793+toRadians ::   (Floating a, Floating b) =>-  Iso (Radian a) (Radian b) a b-radians =+  Iso a b a b+toRadians =   iso-    (\(Radian a) -> a / pi * 180)-    (\a -> Radian (a / 180 * pi))+    (\a -> a / pi * 180)+    (\a -> a / 180 * pi)    -degrees ::+-- | An isomorphism between degrees and radians.+--+-- >>> fromRadians # (0 :: Double)+-- 0.0+--+-- >>> fromRadians # (1 :: Double)+-- 57.29577951308232+--+-- >>> fromRadians # ((-1) :: Double)+-- -57.29577951308232+--+-- >>> fromRadians # (3 :: Double)+-- 171.88733853924697+fromRadians ::   (Floating a, Floating b) =>-  Iso (Radian a) (Radian b) a b-degrees =-  iso-    (\(Radian a) -> a)-    Radian+  Iso a b a b+fromRadians =+  from toRadians