module Data.Constants.Mechanics.Extra ( turn , halfTurn , addRad , delRad ) where import Data.Coerce import qualified Data.Dimensions.SI as D import Data.Metrology import Data.Metrology.SI ( ) import Data.Metrology.Unsafe import Data.Units.SI type PlaneAngle = MkQu_DLN D.PlaneAngle 'DefaultLCSU -- | One complete revolution in radians turn :: Floating a => PlaneAngle a turn = 2 |*| halfTurn -- | π radians halfTurn :: Floating a => PlaneAngle a halfTurn = pi % Radian -- | Multiply by 1 radian addRad :: Qu b 'DefaultLCSU a -> Qu (Normalize ('[ 'F D.PlaneAngle One] @+ b)) 'DefaultLCSU a addRad = coerce -- | Divide by 1 radian delRad :: Qu u 'DefaultLCSU a -> Qu (Normalize (u @- '[ 'F D.PlaneAngle One])) 'DefaultLCSU a delRad = coerce