linear-geo-0.1.0.0: Geographic coordinates, built on the linear package.
CopyrightTravis Whitaker 2023
LicenseMIT
Maintainerpi.boy.travis@gmail.com
StabilityProvisional
PortabilityPortable (Windows, POSIX)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Linear.Geo.ECEF

Description

Earth-centered Earth-fixed (ECEF) coordinates.

Synopsis

Documentation

newtype ECEF a Source #

R3 vector with the origin at the Earth's center of mass, first basis vector through the intersection of the prime meridian and the equator, and the third basis vector through True North. The origin and basis vectors move and rotate with the Earth through space.

Constructors

ECEF (V3 a) 

Instances

Instances details
MonadFix ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

mfix :: (a -> ECEF a) -> ECEF a #

MonadZip ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

mzip :: ECEF a -> ECEF b -> ECEF (a, b) #

mzipWith :: (a -> b -> c) -> ECEF a -> ECEF b -> ECEF c #

munzip :: ECEF (a, b) -> (ECEF a, ECEF b) #

Foldable ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

fold :: Monoid m => ECEF m -> m #

foldMap :: Monoid m => (a -> m) -> ECEF a -> m #

foldMap' :: Monoid m => (a -> m) -> ECEF a -> m #

foldr :: (a -> b -> b) -> b -> ECEF a -> b #

foldr' :: (a -> b -> b) -> b -> ECEF a -> b #

foldl :: (b -> a -> b) -> b -> ECEF a -> b #

foldl' :: (b -> a -> b) -> b -> ECEF a -> b #

foldr1 :: (a -> a -> a) -> ECEF a -> a #

foldl1 :: (a -> a -> a) -> ECEF a -> a #

toList :: ECEF a -> [a] #

null :: ECEF a -> Bool #

length :: ECEF a -> Int #

elem :: Eq a => a -> ECEF a -> Bool #

maximum :: Ord a => ECEF a -> a #

minimum :: Ord a => ECEF a -> a #

sum :: Num a => ECEF a -> a #

product :: Num a => ECEF a -> a #

Traversable ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

traverse :: Applicative f => (a -> f b) -> ECEF a -> f (ECEF b) #

sequenceA :: Applicative f => ECEF (f a) -> f (ECEF a) #

mapM :: Monad m => (a -> m b) -> ECEF a -> m (ECEF b) #

sequence :: Monad m => ECEF (m a) -> m (ECEF a) #

Applicative ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

pure :: a -> ECEF a #

(<*>) :: ECEF (a -> b) -> ECEF a -> ECEF b #

liftA2 :: (a -> b -> c) -> ECEF a -> ECEF b -> ECEF c #

(*>) :: ECEF a -> ECEF b -> ECEF b #

(<*) :: ECEF a -> ECEF b -> ECEF a #

Functor ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

fmap :: (a -> b) -> ECEF a -> ECEF b #

(<$) :: a -> ECEF b -> ECEF a #

Monad ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

(>>=) :: ECEF a -> (a -> ECEF b) -> ECEF b #

(>>) :: ECEF a -> ECEF b -> ECEF b #

return :: a -> ECEF a #

Distributive ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

distribute :: Functor f => f (ECEF a) -> ECEF (f a) #

collect :: Functor f => (a -> ECEF b) -> f a -> ECEF (f b) #

distributeM :: Monad m => m (ECEF a) -> ECEF (m a) #

collectM :: Monad m => (a -> ECEF b) -> m a -> ECEF (m b) #

Affine ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Associated Types

type Diff ECEF :: Type -> Type #

Methods

(.-.) :: Num a => ECEF a -> ECEF a -> Diff ECEF a #

(.+^) :: Num a => ECEF a -> Diff ECEF a -> ECEF a #

(.-^) :: Num a => ECEF a -> Diff ECEF a -> ECEF a #

Metric ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

dot :: Num a => ECEF a -> ECEF a -> a #

quadrance :: Num a => ECEF a -> a #

qd :: Num a => ECEF a -> ECEF a -> a #

distance :: Floating a => ECEF a -> ECEF a -> a #

norm :: Floating a => ECEF a -> a #

signorm :: Floating a => ECEF a -> ECEF a #

Trace ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

trace :: Num a => ECEF (ECEF a) -> a #

diagonal :: ECEF (ECEF a) -> ECEF a #

Finite ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Associated Types

type Size ECEF :: Nat #

Methods

toV :: ECEF a -> V (Size ECEF) a #

fromV :: V (Size ECEF) a -> ECEF a #

R1 ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

_x :: Lens' (ECEF a) a #

R2 ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

_y :: Lens' (ECEF a) a #

_xy :: Lens' (ECEF a) (V2 a) #

R3 ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

_z :: Lens' (ECEF a) a #

_xyz :: Lens' (ECEF a) (V3 a) #

Additive ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

zero :: Num a => ECEF a #

(^+^) :: Num a => ECEF a -> ECEF a -> ECEF a #

(^-^) :: Num a => ECEF a -> ECEF a -> ECEF a #

lerp :: Num a => a -> ECEF a -> ECEF a -> ECEF a #

liftU2 :: (a -> a -> a) -> ECEF a -> ECEF a -> ECEF a #

liftI2 :: (a -> b -> c) -> ECEF a -> ECEF b -> ECEF c #

Data a => Data (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ECEF a -> c (ECEF a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ECEF a) #

toConstr :: ECEF a -> Constr #

dataTypeOf :: ECEF a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ECEF a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ECEF a)) #

gmapT :: (forall b. Data b => b -> b) -> ECEF a -> ECEF a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ECEF a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ECEF a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ECEF a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ECEF a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ECEF a -> m (ECEF a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ECEF a -> m (ECEF a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ECEF a -> m (ECEF a) #

Bounded a => Bounded (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

minBound :: ECEF a #

maxBound :: ECEF a #

Floating a => Floating (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

pi :: ECEF a #

exp :: ECEF a -> ECEF a #

log :: ECEF a -> ECEF a #

sqrt :: ECEF a -> ECEF a #

(**) :: ECEF a -> ECEF a -> ECEF a #

logBase :: ECEF a -> ECEF a -> ECEF a #

sin :: ECEF a -> ECEF a #

cos :: ECEF a -> ECEF a #

tan :: ECEF a -> ECEF a #

asin :: ECEF a -> ECEF a #

acos :: ECEF a -> ECEF a #

atan :: ECEF a -> ECEF a #

sinh :: ECEF a -> ECEF a #

cosh :: ECEF a -> ECEF a #

tanh :: ECEF a -> ECEF a #

asinh :: ECEF a -> ECEF a #

acosh :: ECEF a -> ECEF a #

atanh :: ECEF a -> ECEF a #

log1p :: ECEF a -> ECEF a #

expm1 :: ECEF a -> ECEF a #

log1pexp :: ECEF a -> ECEF a #

log1mexp :: ECEF a -> ECEF a #

Generic (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Associated Types

type Rep (ECEF a) :: Type -> Type #

Methods

from :: ECEF a -> Rep (ECEF a) x #

to :: Rep (ECEF a) x -> ECEF a #

Num a => Num (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

(+) :: ECEF a -> ECEF a -> ECEF a #

(-) :: ECEF a -> ECEF a -> ECEF a #

(*) :: ECEF a -> ECEF a -> ECEF a #

negate :: ECEF a -> ECEF a #

abs :: ECEF a -> ECEF a #

signum :: ECEF a -> ECEF a #

fromInteger :: Integer -> ECEF a #

Fractional a => Fractional (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

(/) :: ECEF a -> ECEF a -> ECEF a #

recip :: ECEF a -> ECEF a #

fromRational :: Rational -> ECEF a #

Show a => Show (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

showsPrec :: Int -> ECEF a -> ShowS #

show :: ECEF a -> String #

showList :: [ECEF a] -> ShowS #

NFData a => NFData (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

rnf :: ECEF a -> () #

Eq a => Eq (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

(==) :: ECEF a -> ECEF a -> Bool #

(/=) :: ECEF a -> ECEF a -> Bool #

Ord a => Ord (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

compare :: ECEF a -> ECEF a -> Ordering #

(<) :: ECEF a -> ECEF a -> Bool #

(<=) :: ECEF a -> ECEF a -> Bool #

(>) :: ECEF a -> ECEF a -> Bool #

(>=) :: ECEF a -> ECEF a -> Bool #

max :: ECEF a -> ECEF a -> ECEF a #

min :: ECEF a -> ECEF a -> ECEF a #

Epsilon a => Epsilon (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

Methods

nearZero :: ECEF a -> Bool #

type Diff ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

type Diff ECEF = V3
type Size ECEF Source # 
Instance details

Defined in Linear.Geo.ECEF

type Size ECEF = 3
type Rep (ECEF a) Source # 
Instance details

Defined in Linear.Geo.ECEF

type Rep (ECEF a) = D1 ('MetaData "ECEF" "Linear.Geo.ECEF" "linear-geo-0.1.0.0-LxCVplq22GGCkRzZB0XgZk" 'True) (C1 ('MetaCons "ECEF" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (V3 a))))

cross :: Num a => ECEF a -> ECEF a -> ECEF a Source #

Right-handed orthogonal vector with magnitude equal to the area of the subtended parallelogram.

triple :: Num a => ECEF a -> ECEF a -> ECEF a -> a Source #

Scalar triple product.