exoplanet-core
This repository contains the compiled components for the
exoplanet project, with
implementations for NumPy, JAX, and PyMC3. Most users probably won't install or
interact with exoplanet-core directly, instead using it via
exoplanet itself. However, there are a few
reasons why you might be here:
- You want to evaluate a quadratically limb darkened light curve or solve Kepler's equation in numpy, JAX, or PyMC3, using fast and well-tested code.
- You might have found an issue with one of the compiled ops for
exoplanetand want to report or fix it. - You might be looking to build a better alternative to
exoplanet.
All of these are excellent reasons to be here, so welcome!
Motivation
This library is developed separately from the exoplanet codebase for several
reasons, but the main one is that the code in this repo needs to change at a
less frequent cadence than the main exoplanet modeling code and there is some
cost associated with re-compiling the backend. I'm hoping that this separation
will make it easier for people to contribute to the exoplanet project without
dealing with compilation issues. This also means that some users can use just
the computational components here without the heavy dependencies required by the
exoplanet project. This might be useful, for example, for people who just want a
high performance solver for Kepler's equation or fast quadratically
limb-darkened light curves.
Installation
The best way to install exoplanet-core is using pip:
python -m pip install exoplanet-core
By default this will only install the numpy ops and its dependencies (only
numpy itself). So if you want to install the dependencies for the jax or
pymc versions, you can run:
python -m pip install "exoplanet-core[jax]"
# or
python -m pip install "exoplanet-core[pymc]"
You can also install exoplanet-core using conda from
conda-forge:
conda install -c conda-forge exoplanet-core
Usage
If you're developing new ops or fixing existing ones, you'll probably want to skip to the next section, but if you just want to solve Kepler's equation or compute a limb darkened light curve, you can use the following snippets.
To solve Kepler's equation and compute the true anomaly for an array of eccentricities:
from exoplanet_core import kepler
ecc = 0.3
M = # compute the mean anomaly as a function of time for your measurements
sinf, cosf = kepler(M, ecc)
# Use the true anomaly to evaluate your model
To compute the relative flux for a quadratically limb darkened light curve at
some projected center-to-center distance b and radius ratio ror:
from exoplanet_core import quad_limbdark_light_curve
u1, u2 = 0.3, 0.2
ror = 0.05
b = # Compute the impact parameter as a function of time
flux = quad_limbdark_light_curve(u1, u2, b, ror)
where u1 and u2 are the usual limb darkening parameters and the resulting
flux is in relative units where 0 is the unocculted flux. Some other
implementations that you might be familiar with return this value plus one.
API Reference
exoplanet-core currently provides three ops, but only two are intended for
general consumption: kepler and quad_solution_vector. The three interfaces
(numpy, jax, and pymc) are designed to have the same API, so you can
import them interchangeably as:
from exoplanet_core.{interface} import ops
where {interface} is numpy, jax, or pymc.
kepler
sin_true_anomaly, cos_true_anomaly = ops.kepler(mean_anomaly, eccentricity)
Solve Kepler's equation and convert to the true anomaly using a fast method (Brandt et al., in prep) that gives nearly machine precision across the full valid parameter range.
| Parameter | Type | Description |
|---|---|---|
mean_anomaly |
array |
This does not need to be range reduced. |
eccentricity |
array |
Must be in the range [0, 1). |
| Returns | Type | Description |
|---|---|---|
sin_true_anomaly |
array |
The sine and cosine of the true anomaly |
cos_true_anomaly |
array |
evaluated at the input coordinates. |
quad_solution_vector
soln = ops.quad_solution_vector(impact_parameter, radius_ratio)
Compute the "solution vector" as defined by Agol et al. (2020) for a quadratically limb darkened light curve. This can then be dotted into a vector of coefficients (a function of the usual limb darkening parameters) to compute the integrated flux.
| Parameter | Type | Description |
|---|---|---|
impact_parameter |
array |
The projected center to center distance. |
radius_ratio |
array |
The radius of the occulter in units of the target. |
| Returns | Type | Description |
|---|---|---|
soln |
array |
The quadratic solution vector at each impact_parameter. |
Metadata
Release files for exoplanet-core 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| exoplanet_core-0.4.0.tar.gz | 70.1 kB | Details |
Built distributions (wheels)
Total release size: 3.8 MB
Release files / exoplanet_core-0.4.0.tar.gz
| Download URL | exoplanet_core-0.4.0.tar.gz |
|---|---|
| Size | 70.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6354063acf2e2a6705a7ef08e975612e9f1f30990c539a38ad99d7b2ad331055
|
|
BLAKE2b-256 checksum How to use checksums |
3b5fb4eaccf41978fae23dfbbac5ebdfe8d8247d2751ef746675e5677a08cbd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp314-cp314t-win_amd64.whl
| Download URL | exoplanet_core-0.4.0-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 465.7 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d9ca38d88dcf50a778f61f21944325efff92f83e82ab4ba497d8f1fc23dcc1ec
|
|
BLAKE2b-256 checksum How to use checksums |
d0cb5645c56494092891c6142ce5e17ab777b7e6c3d2646b1c47fd9c35187a83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | exoplanet_core-0.4.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 272.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
25c8d5204f051080e8ebf16c615412b17b31dcf9756ab8c720eec3afa3d696ac
|
|
BLAKE2b-256 checksum How to use checksums |
60381b81c6fccc336ba742b022bcf438ac2eb42744d5cb77ae7a13111450e66d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | exoplanet_core-0.4.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 225.7 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4302914a4e1cf3389228fd35ef6bdaa223a5180b39d878f8364d2042dc0c63cb
|
|
BLAKE2b-256 checksum How to use checksums |
bd5c052583471e2fd559a3dc288fd94138a3119d41ae4fd4e27dd6414655ebe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp314-cp314-win_amd64.whl
| Download URL | exoplanet_core-0.4.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 458.4 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
34905e7bea1b6bcf77b05ecfc1e8712f63db0d3e2a68d92713a54bed2c796825
|
|
BLAKE2b-256 checksum How to use checksums |
8ea39820a11d09d794f661cd5355a7e71c6c68c32836fae064922695e248ee12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | exoplanet_core-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 267.5 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d627995bab59cd42cc56eb12780f3ad154d7c7b68fe067c9bb28569463d4318f
|
|
BLAKE2b-256 checksum How to use checksums |
d1414030908ed0f679d15b6c7454338cdb061d07e720eef435da72b0cde8cf2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | exoplanet_core-0.4.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 219.9 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ef7339e60b3e656cc623f8a721ebdb5258f085011e77b01bc91c5c2d338a579f
|
|
BLAKE2b-256 checksum How to use checksums |
b187a0b7a401391aa3ebb202f15d6cabecf5e744cfc0697a1b66ee7607106847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp313-cp313-win_amd64.whl
| Download URL | exoplanet_core-0.4.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 445.4 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
250d33101331423d000d48fb8f3b36f459d4b05643ccc6da55673248065f4fb5
|
|
BLAKE2b-256 checksum How to use checksums |
231e2f20263db92474e5ad0cd8cfcb5f4a6f6d67363d4055d3806dc1970623c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | exoplanet_core-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 267.3 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
fd36806879bfd9de224f0b32a3b6816b51b967cecd2ab9219f0c8c00c00bc720
|
|
BLAKE2b-256 checksum How to use checksums |
3924de5a59b31662b38a4a33580e92e10b3b8283502f28a7c182a62506ee6728
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | exoplanet_core-0.4.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 219.6 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f9245f8d56d237324d852b4aa8fed57809244d015bfe6acb3b0040e6c44b8365
|
|
BLAKE2b-256 checksum How to use checksums |
c5f1109d17ce942794cd173e5376c4dabe9b91ecc84e3acdcd334fd69697cd33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp312-cp312-win_amd64.whl
| Download URL | exoplanet_core-0.4.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 445.3 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4b7b2e4eaba547444f94546aa85087050a8a76c70b8197165197b6d6c99746d8
|
|
BLAKE2b-256 checksum How to use checksums |
8e8670530bf2f102c561ca8fc1dadeea192dd31516537973f4e7412dc478371d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | exoplanet_core-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 267.2 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
edfe7ff129dbfc3e5c9d1ef8a53d3af1cd0b3e8b99950a4eca33a7e28c2a3b2b
|
|
BLAKE2b-256 checksum How to use checksums |
edaade18ef3543e8e9fae9641312ef9e0f87b66e65a759e21ad630987e47e439
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / exoplanet_core-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | exoplanet_core-0.4.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 219.4 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9690d600681ff224a7b0bbc5f03631a1db2bffa44712b75842b3a777578d98a3
|
|
BLAKE2b-256 checksum How to use checksums |
59ae8cf455e9a429a4a99d257ee748050fda4bf403040281b59d6ed1b8427518
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency log