All Versions
9
Latest Version
Avg Release Cycle
12 days
Latest Release
868 days ago
Changelog History
Changelog History
-
v1.2.1.0 Changes
November 14, 2020- Introduces
gregorianDateTime
, which is the reverse ofjulianDay
: given a JD, return a tuple with(year, month, day, decimalHour)
.
- Introduces
-
v1.2.0.0 Changes
September 14, 2020BREAKING CHANGE:
splitDegrees
now takes options that reflect the options in the underlying library.- Constructors for
JulianTime
andSiderealTime
are now exposed. - Introduce
SplitDegreesOption
enum for all options one can split degrees with; amendssplitDegrees
to take
said options as the first argument. splitDegreesZodiac
is unchanged, though a mere veneer for the now more powerfulsplitDegrees
.- Since
splitDegreesZodiac
goes the extra enum-mile to provide human-readable zodiac names, and the underlying
library can also split on Nakshatras, we now include theNakshatraName
enum. Names are from wikipedia
and I saw some variants, so please forgive any mispellings!
- Constructors for
-
v1.1.0.0 Changes
September 12, 2020BREAKING CHANGE: the
Coordinates
type has been retired, in favor of the more specific
GeographicPosition
andEclipticPosition
.calculateCoordinates
is nowcalculateEclipticPosition
,
and thecalculateCusps*
family now takes aGeographicPosition
as part of its inputs.- Introduces an
Internal
module with types and helpers that this library introduces,
which are not native to the underlying C library. Import at your own risk! (the "curated"/
"stable" ones are re-exported by the main module.)- Deprecates the
Coordinates
type, in favor ofEclipticPosition
.
- Deprecates the
- Introduces functions to
calculateEquatorialPosition
andcalculteObliquity
at a given time,
👍 as well as types that better convey the different types of positions (EquatorialPosition
,ObliquityInformation
). - Some astrology helpers: convert between equatorial and ecliptic (and vice-versa,)
obtain the Delta Time effective at a given moment, obtain the house position of a given body.
( Note: thecalculateHousePosition
function is more useful for working near the polar circles or for bodies
off of the ecliptic -- the ARMC and obliquity need to be calculated or provided, it's simpler
if you already have the cusps: just check which cusps a given longitude falls between -- no need for
this function!)
- Introduces an
-
v1.0.0.0 Changes
September 07, 2020- 🔨 Refactor the
calculateCusps
function:- Return a simple list of cusps. This allows for future implementations of exotic systems that have more (or fewer?) cusps, and hews closer to regular usage (which iterates over the cusps.)
- The house system comes first, to allow for more ergonomic partial application for uses where one system is
the "default" (e.g.
traditionalCusps = calculateCusps Placidus
.)
- ⚡️ Cleans up haddocks, adds many links to the original docs (and notes the headings, since updates to those seem to break hyperlinking?)
- 🔨 Refactor the
-
v0.3.1.0 Changes
September 07, 2020- 🛠 Fixes occasional segmentation fault (caught most often in the more memory-strapped CI server than in my computer,)
📦 caused by usingalloca
for the error string and, when no error string was populated, ending with undefined
📚 behavior. Now we explicitly allocate the 256char
s that the documentation and C sources recommend, which seems to be always
freed by Haskell, vs. leaving a hole somewhere when the underlying library fails to terminate the string.
👀 See notes in #9
- 🛠 Fixes occasional segmentation fault (caught most often in the more memory-strapped CI server than in my computer,)
-
v0.3.0.0 Changes
September 05, 2020- ⬆️ Upgrades to v2.09.03 of the C library, to incorporate some bug fixes that seem marginally related
to random breakage I've seen; read more at: https://www.astro.com/swisseph/swephprg.htm#_Toc49847971 - Introduces
withoutEphemerides
which sets the ephe path toNULL
(via the also newsetNoEphemeridesPath
)
👀 and takes care of callingcloseEphemerides
. Use this orwithEphemerides
for memory safety,
only call the functions directly if you really know what you're doing (i.e setting/closing ephemerides
in some other manner.) - Both calculation functions are now
IO
computations, to reflect the fact that they may interact
with ephemeris data and allocate memory thatcloseEphemerides
has to free. - More closely reflects the underlying behavior for calculating cusps: it may return
cusps in thePorphyrius
system if given a point for which the chosen system fails. To
more explicitly reflect this, we now havecalculateCuspsStrict
which returns aLeft
value
if the requested house system couldn't be used.calculateCuspsLenient
always returns a calculation,
0️⃣ and is aliased tocalculateCusps
as the "default" method. - Since the calculation may have changed the house system, we now return a
systemUsed
entry
in theCuspsCalculation
record.
CI continues to not work, despite my insane efforts to resolve.
- ⬆️ Upgrades to v2.09.03 of the C library, to incorporate some bug fixes that seem marginally related
-
v0.2.0.0 Changes
September 04, 2020- Introduces
withEphemerides
for bracketed access to the ephemeris directory. - 🔄 Changes the signature of
calculateCusps
to return aLeft
value if the underlying library
is unable to calculate the cusps. - Introduces "monadic" versions of the calculations that work with instances of
MonadFail
:
calculateCuspsM
andcalculateCoordinatesM
- 👌 Improves test coverage with property testing.
- Introduces
-
v0.1.0.2 Changes
August 13, 2020🏗 The build in hackage was failing, it seems like all header files need to be explicitly stated so they're included in the tarball!
-
v0.1.0.0 Changes
August 12, 2020- Bundles the C code for v2.09.01 of Swiss Ephemerides -- refer to that page and related documentation for other possible additions to this package!
- 🚀 First release with basic bindings to calculate the coordinates of bodies
between the Sun and Chiron, plus cusps and major angles --
calculateCoordinates
andcalculateCusps
, respectively. - 👀 The functions
setEphemeridesPath
andcloseEphemerides
are provided to initialize (important) and release (less important) resources related to caching calculations and locating the data files for ephemerides.