# hpr2598 :: Calculating planetary orbits in Haskell

### tuturto talks about calculating planetary orbits

Hosted by tuturto on 2018-07-18 is flagged as Clean and is released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. | Comments (0)

### Part of the series: Haskell

A series looking into the Haskell (programming language)

Function signatures (it might or might not be helpful to have these at hand while listening):

• Helpers:
``````    radToDeg :: Floating a => a -> a
degToRad :: Floating a => a -> a
clamp :: Float -> Float``````
• Time:

``    day :: Int -> Int -> Int -> Float -> Day Float``
• Orbital parameters:
``````    longitudeOfAscendingNode :: Orbit body center => body -> center -> Day d -> LongAscNode body center
inclinationToEcliptic :: Orbit body center => body -> center -> Day d -> InclToEcl body center
argumentOfPeriapsis :: Orbit body center => body -> center -> Day d -> ArgPeri body center
semiMajorAxis :: Orbit body center => body -> center -> Day d -> SemiMajor body center
eccentricity :: Orbit body center => body -> center -> Day d -> Ecc body center
meanAnomaly :: Orbit body center => body -> center -> Day d -> MeanAno body center``````
• Calculating location on orbital plane:
``````    eccAnomaly :: MeanAno a b -> Ecc a b -> EccAnomaly a b
trueAnomaly :: EccAnomaly a b -> Ecc a b -> TrueAnomaly a b
dist :: EccAnomaly a b -> Ecc a b -> SemiMajor a b -> Distance a b``````
• Translating between coordinate systems:
``````    toEclCoord :: TrueAnomaly a b -> Distance a b -> LongAscNode a b -> ArgPeri a b -> InclToEcl a b -> EclCoord a b
toEqCoordinates :: EclCoord body Earth -> Day Float -> EqCoord body``````