meepmeep.numba3d.pos#
- meepmeep.numba3d.pos(time: float | ndarray[tuple[Any, ...], dtype[_ScalarT]], tc: float, p: float, c: ndarray[tuple[Any, ...], dtype[_ScalarT]], te: float = 0.0) tuple[float | ndarray[tuple[Any, ...], dtype[_ScalarT]], float | ndarray[tuple[Any, ...], dtype[_ScalarT]], float | ndarray[tuple[Any, ...], dtype[_ScalarT]]][source]#
Evaluate the planet’s (x, y, z) position at an absolute time using a 3D Taylor expansion.
This is the “direct” variant of the 3D position evaluator: it accepts an absolute observation time time, folds it back into a single orbital epoch around the expansion point te, and then evaluates the 5th-order Taylor polynomial stored in c using Horner’s scheme via the centered kernel.
Accepts a scalar time or a 1-D array of times and dispatches to the appropriate kernel at compile time (inside
@njit) or at call time (pure Python).- Parameters:
- time
floatorNDArray Absolute observation time(s) in the same units as tc and p (typically days). Scalar or array inputs are both accepted; the return type matches.
- tc
float Transit-centre time (time of inferior conjunction), on the same time axis as time.
- p
float Orbital period, used to fold time into a single epoch around the expansion point.
- c
NDArray A (3, 5) coefficient matrix produced by solve3d. Row 0 holds the x-direction coefficients, row 1 the y-direction, and row 2 the z-direction, ordered as [position, velocity, acceleration/2, jerk/6, snap/24] (i.e. already pre-scaled by the factorial of the Taylor order).
- te
float, optional Expansion-point offset from the transit centre [days] - the same value that was passed to solve3d. Defaults to 0.0, the expansion point at the transit centre.
- time
- Returns: