Skip to content

Add short-arc precovery module with ranging and sky-plane propagation - #193

Open
akoumjian wants to merge 3 commits into
mainfrom
codex/short-arc-precovery
Open

Add short-arc precovery module with ranging and sky-plane propagation#193
akoumjian wants to merge 3 commits into
mainfrom
codex/short-arc-precovery

Conversation

@akoumjian

@akoumjian akoumjian commented Mar 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a new orbit_determination.short_arc module with dual short-arc workflows:
    • systematic_ranging_short_arc(...) for state-vector candidate generation/evaluation
    • propagate_sky_plane(...) for weighted tangent-plane sky propagation
  • add ades_to_od_observations(...) conversion for ADES input, including covariance construction from ADES RMS fields
  • export new APIs/types from adam_core.orbit_determination.__init__
  • add test_short_arc.py with deterministic unit tests plus an ASSIST integration test (skip-guarded)

New Public APIs

  • ShortArcRangingConfig
  • SkyPropagationPredictions
  • SkyPropagationResult
  • ades_to_od_observations(...)
  • systematic_ranging_short_arc(...)
  • propagate_sky_plane(...)

Validation

  • pdm run ruff check src/adam_core/orbit_determination/short_arc.py src/adam_core/orbit_determination/tests/test_short_arc.py
  • pdm run pytest -q src/adam_core/orbit_determination/tests/test_short_arc.py -m 'not profile'
  • result: 5 passed, 1 skipped (ASSIST integration skipped in this environment due missing ASSIST shared-library runtime)

@akoumjian
akoumjian force-pushed the codex/short-arc-precovery branch from 257c055 to 39cfaed Compare March 31, 2026 01:18
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

bad = np.flatnonzero(~np.isfinite(values))

P1 Badge Return row index for non-finite ephemeris detection

_first_non_finite uses np.flatnonzero on possibly 2D arrays, but callers treat the return value as a row index (e.g., times_chunk[bad_eph] and orbit/object row lookup). If the first NaN/Inf is not in column 0, the flattened index points to the wrong row and can exceed the chunk length, which turns the intended DynamicsNumericalError into incorrect context or an IndexError during failure handling.


lt = jnp.where((dlt > lt_tol) | (iterations >= max_lt_iter), jnp.nan, lt)

P2 Badge Don’t mark converged light-time as failure at iteration cap

The post-loop failure check flags lt as NaN whenever iterations >= max_lt_iter, even if convergence was achieved on the last allowed iteration (dlt <= lt_tol). That misclassifies valid solutions as non-converged and can cause downstream ephemeris generation to fail spuriously for borderline cases that converge exactly at the iteration limit.


ra_pred = np.degrees(np.arctan2(uy, ux)) % 360.0
dec_pred = np.degrees(np.arcsin(np.clip(uz, -1.0, 1.0)))

P1 Badge Convert ecliptic topocentric vectors before RA/Dec scoring

This RA/Dec approximation is computed directly from topocentric Cartesian components, but in this workflow those vectors are in the ecliptic frame while observations are equatorial RA/Dec. Scoring candidates in the wrong frame biases approx_chi2 ranking, so with capped max_seed_candidates the best orbit can be filtered out before full evaluation/refinement.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python Benchmark

Details
Benchmark suite Current: ed26722 Previous: f556b5e Ratio
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=equatorial,-to=SphericalCoordinates,] 426.38767106197486 iter/sec (stddev: 0.00032726614957165914) 553.9302702885318 iter/sec (stddev: 0.00007385544049222605) 1.30
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=equatorial,-to=KeplerianCoordinates,] 390.66089196899264 iter/sec (stddev: 0.00015947023676035217) 377.8750528925565 iter/sec (stddev: 0.00014991569696677897) 0.97
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=equatorial,-to=CometaryCoordinates,] 429.54248914099315 iter/sec (stddev: 0.0001222641893648273) 410.5567272402443 iter/sec (stddev: 0.00014846564933736236) 0.96
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=ecliptic,-to=SphericalCoordinates,] 592.5241976700019 iter/sec (stddev: 0.00005723777737511272) 587.1001362640179 iter/sec (stddev: 0.00004320848271326562) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=ecliptic,-to=KeplerianCoordinates,] 402.55268962414834 iter/sec (stddev: 0.00003137183175460934) 394.7224393334056 iter/sec (stddev: 0.0001317292958125166) 0.98
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=ecliptic,-to=CometaryCoordinates,] 451.91040367563335 iter/sec (stddev: 0.000030359981991343108) 445.061437139846 iter/sec (stddev: 0.000031239283017729746) 0.98
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=equatorial,-to=SphericalCoordinates,] 561.9958951387707 iter/sec (stddev: 0.000033990376942322954) 553.810706635861 iter/sec (stddev: 0.00003431802102922037) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=equatorial,-to=KeplerianCoordinates,] 385.85092379400885 iter/sec (stddev: 0.00005173315062425063) 384.5563488772064 iter/sec (stddev: 0.000042868954225777133) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=equatorial,-to=CometaryCoordinates,] 395.0718734491146 iter/sec (stddev: 0.0001516074923664325) 390.66275389337335 iter/sec (stddev: 0.00013450108331440375) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=ecliptic,-to=SphericalCoordinates,] 542.8079250655379 iter/sec (stddev: 0.0002031089576719004) 557.2920217902544 iter/sec (stddev: 0.00003890801803352268) 1.03
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=ecliptic,-to=KeplerianCoordinates,] 386.76643333038726 iter/sec (stddev: 0.00005548843934086218) 384.5160053219957 iter/sec (stddev: 0.00006299159221913654) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=ecliptic,-to=CometaryCoordinates,] 419.380751576797 iter/sec (stddev: 0.00003606341501205481) 412.24503845860585 iter/sec (stddev: 0.00019359480441635818) 0.98
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=equatorial,-to=SphericalCoordinates,] 534.83567569166 iter/sec (stddev: 0.00002701629253455207) 521.3988857433349 iter/sec (stddev: 0.00005669657469498275) 0.97
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=equatorial,-to=KeplerianCoordinates,] 374.72031046381653 iter/sec (stddev: 0.00004734868819102084) 368.7816809352266 iter/sec (stddev: 0.0000719899882108848) 0.98
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=equatorial,-to=CometaryCoordinates,] 385.7887462480536 iter/sec (stddev: 0.00015930333122523557) 381.1786195382201 iter/sec (stddev: 0.00014249485497260257) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=ecliptic,-to=SphericalCoordinates,] 526.9699216593739 iter/sec (stddev: 0.000046791083026589625) 525.3674417496246 iter/sec (stddev: 0.00004494698040375959) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=ecliptic,-to=KeplerianCoordinates,] 373.4466470338304 iter/sec (stddev: 0.00003422763374228904) 374.2556620107722 iter/sec (stddev: 0.00004340885956746513) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=ecliptic,-to=CometaryCoordinates,] 393.69688926225587 iter/sec (stddev: 0.000175939432791339) 397.9924395966658 iter/sec (stddev: 0.00003685614415152018) 1.01
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_CoordinateCovariances_to_matrix 626.2080534079096 iter/sec (stddev: 0.000015109479696500743) 628.3457434253748 iter/sec (stddev: 0.000021232716065513527) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_CoordinateCovariances_from_matrix 15541.329914032245 iter/sec (stddev: 0.0000074764751491912015) 15449.924796807247 iter/sec (stddev: 0.0000060727663144360205) 0.99
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark__propagate_2body 44040.495251275606 iter/sec (stddev: 0.000010794682208015755) 42079.35112641884 iter/sec (stddev: 0.00001011163949265006) 0.96
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark__propagate_2body_vmap 28188.86540233787 iter/sec (stddev: 0.00001665854626267208) 20756.72085143148 iter/sec (stddev: 0.00001698992303844256) 0.74
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark_propagate_2body 432.48539669835264 iter/sec (stddev: 0.00013254369114992038) 414.7072096609827 iter/sec (stddev: 0.00009526857098756177) 0.96
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark_propagate_2body_matrix 3.94632903171967 iter/sec (stddev: 0.002239849556205523) 3.996413404403092 iter/sec (stddev: 0.0006585103282904692) 1.01
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=X05,-times=1,] 4978.424215110135 iter/sec (stddev: 0.000014131638519755472) 4825.637278066988 iter/sec (stddev: 0.000014644991274494464) 0.97
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=X05,-times=10000,] 2608.0799185351134 iter/sec (stddev: 0.00002242818662918673) 2526.661543099481 iter/sec (stddev: 0.000046950271984842535) 0.97
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=500,-times=1,] 1283.9107944448913 iter/sec (stddev: 0.00004217025840265152) 1277.0441440720272 iter/sec (stddev: 0.000015863684421188547) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=500,-times=10000,] 169.31105701825027 iter/sec (stddev: 0.00004904199978416526) 168.19704115835302 iter/sec (stddev: 0.00026879850465129465) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=X05,-times=1,] 4964.70619011791 iter/sec (stddev: 0.000012938367099312597) 4915.361207665127 iter/sec (stddev: 0.000011753322595659794) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=X05,-times=10000,] 2647.7558062194857 iter/sec (stddev: 0.00001960067469278885) 2606.080507009896 iter/sec (stddev: 0.00003075939541861252) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=500,-times=1,] 1289.3469339819023 iter/sec (stddev: 0.000020241914996042504) 1275.6400090810355 iter/sec (stddev: 0.00002456969067632466) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=500,-times=10000,] 168.3565576907445 iter/sec (stddev: 0.00004352068864772233) 168.2404162795992 iter/sec (stddev: 0.00006147281248389974) 1.00
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=X05,-times=1,] 4984.01579572947 iter/sec (stddev: 0.00001230236817432434) 4862.574866422216 iter/sec (stddev: 0.00001273660702626592) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=X05,-times=10000,] 2649.5271697181784 iter/sec (stddev: 0.000013255233197216489) 2515.498615880435 iter/sec (stddev: 0.00005623132248662082) 0.95
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=500,-times=1,] 1293.805819237802 iter/sec (stddev: 0.00004785540025360449) 1288.0298019790569 iter/sec (stddev: 0.00001995531494365108) 1.00
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=500,-times=10000,] 168.62735347032756 iter/sec (stddev: 0.00003906399618906942) 169.450507810153 iter/sec (stddev: 0.00005833509211282718) 1.00
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=X05,-times=1,] 4951.590284189099 iter/sec (stddev: 0.000012543776492854256) 4888.706431143293 iter/sec (stddev: 0.000012248707421236628) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=X05,-times=10000,] 2663.243510938406 iter/sec (stddev: 0.000017863822804523925) 2548.4697712898114 iter/sec (stddev: 0.00003711024805709895) 0.96
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=500,-times=1,] 1308.2116909340748 iter/sec (stddev: 0.000020221553193242623) 1279.4742924486143 iter/sec (stddev: 0.000019674777325240866) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=500,-times=10000,] 168.53430415788588 iter/sec (stddev: 0.000049968957824636676) 168.35211988137615 iter/sec (stddev: 0.00008027738557540025) 1.00
src/adam_core/orbits/tests/test_benchmarks.py::test_benchmark_iterate_real_orbits 15518.884134067259 iter/sec (stddev: 0.000004518433052464242) 15948.609271574831 iter/sec (stddev: 0.000003196664891399119) 1.03
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_jax[n=256] 781.7415718227795 iter/sec (stddev: 0.00006761293747905747) 795.9161686898482 iter/sec (stddev: 0.0000623489456493949) 1.02
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_jax[n=16384] 471.53894976748836 iter/sec (stddev: 0.00007515149289610563) 457.9279250392206 iter/sec (stddev: 0.00006575876204403579) 0.97
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_jax[n=65536] 106.12764648773243 iter/sec (stddev: 0.0002863289661693495) 127.13671716052006 iter/sec (stddev: 0.0004619770566070989) 1.20
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_jax[n=262144] 29.480610354089933 iter/sec (stddev: 0.0017223763774987047) 28.11295984639119 iter/sec (stddev: 0.0011603023337838302) 0.95
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_jax[n=1048576] 7.583082452816681 iter/sec (stddev: 0.0025342690310274614) 7.655960797576976 iter/sec (stddev: 0.003444001220756353) 1.01
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_phase_angle_jax[n=256] 496.9372486003342 iter/sec (stddev: 0.000029189200648755685) 488.0610817262508 iter/sec (stddev: 0.00005081269210073748) 0.98
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_phase_angle_jax[n=16384] 279.85192726275363 iter/sec (stddev: 0.00005438026092414519) 279.40023186416516 iter/sec (stddev: 0.00008223996548752987) 1.00
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_phase_angle_jax[n=65536] 73.79636768693071 iter/sec (stddev: 0.0001068797056030864) 71.90012191961438 iter/sec (stddev: 0.00014476527847536464) 0.97
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_phase_angle_jax[n=262144] 17.29993090993757 iter/sec (stddev: 0.0004795694940819614) 16.89660228357705 iter/sec (stddev: 0.0003625234763022606) 0.98
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_phase_angle_jax[n=1048576] 4.029236104943583 iter/sec (stddev: 0.0033481653024344193) 3.961408073467947 iter/sec (stddev: 0.001820708820277104) 0.98
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_and_phase_jax[n=256] 626.0440120823156 iter/sec (stddev: 0.00007037898563807037) 632.4482038290433 iter/sec (stddev: 0.000060918836671295344) 1.01
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_and_phase_jax[n=16384] 347.014508831441 iter/sec (stddev: 0.000133605348005032) 348.39198978352505 iter/sec (stddev: 0.00008573535951674681) 1.00
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_and_phase_jax[n=65536] 94.67258721527084 iter/sec (stddev: 0.0003478870414398902) 95.56371310715268 iter/sec (stddev: 0.0001140868963787956) 1.01
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_and_phase_jax[n=262144] 23.531727334817457 iter/sec (stddev: 0.0004588891760448445) 23.610567868448797 iter/sec (stddev: 0.0007733384937972566) 1.00
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_and_phase_jax[n=1048576] 5.723586034646075 iter/sec (stddev: 0.0012323812594086823) 5.798060476488087 iter/sec (stddev: 0.0023509292915997156) 1.01
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_convert_magnitude_bandpass[n=256] 469.08492978000976 iter/sec (stddev: 0.0002445872697786392) 471.6158625766562 iter/sec (stddev: 0.00009501254808615115) 1.01
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_convert_magnitude_bandpass[n=16384] 251.12946723566003 iter/sec (stddev: 0.00040626786082437324) 255.52529265252514 iter/sec (stddev: 0.00010746696186643447) 1.02
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_convert_magnitude_bandpass[n=65536] 67.03388030025273 iter/sec (stddev: 0.0008125433472274867) 68.15544525915669 iter/sec (stddev: 0.00021557931449179524) 1.02
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_convert_magnitude_bandpass[n=262144] 17.32435697314267 iter/sec (stddev: 0.00133228589567967) 17.397175449106047 iter/sec (stddev: 0.0005509984589807771) 1.00
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_convert_magnitude_bandpass[n=1048576] 4.3572117863658875 iter/sec (stddev: 0.0011690105232322846) 4.361661942368669 iter/sec (stddev: 0.0009741944790455913) 1.00
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_convert_magnitude_bandpass_shape_sweep 9.82985721321431 iter/sec (stddev: 0.000518287854054628) 9.804281597227972 iter/sec (stddev: 0.0006499081295011464) 1.00
src/adam_core/photometry/tests/test_benchmarks.py::test_benchmark_calculate_apparent_magnitude_jax_shape_sweep 18.31499208785087 iter/sec (stddev: 0.0015478983737660242) 18.267552766871358 iter/sec (stddev: 0.0016892974930861557) 1.00
src/adam_core/propagator/tests/test_benchmarks.py::test_assist_generate_ephemeris_single_process_benchmark 0.5398270137096022 iter/sec (stddev: 0.004434398551170734) 0.5231658552744225 iter/sec (stddev: 0.022232560145905727) 0.97
src/adam_core/propagator/tests/test_benchmarks.py::test_assist_generate_ephemeris_multi_process_benchmark 0.402578196341392 iter/sec (stddev: 0.0065431614770963265) 0.3888281363287237 iter/sec (stddev: 0.014612026346892104) 0.97
src/adam_core/propagator/tests/test_benchmarks.py::test_observer_alignment_indices_benchmark[10000] 242.1624563715593 iter/sec (stddev: 0.00010327506754679847) 241.68381684639402 iter/sec (stddev: 0.00008614371638244792) 1.00
src/adam_core/propagator/tests/test_benchmarks.py::test_hg_param_mapping_benchmark[20000-5] 66.0875266176547 iter/sec (stddev: 0.00040434521473963283) 62.75601963052847 iter/sec (stddev: 0.00038415941607920263) 0.95
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tai-tai] 588161.1563940216 iter/sec (stddev: 3.3340584066403663e-7) 585803.6494793572 iter/sec (stddev: 2.8366563117168043e-7) 1.00
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tai-utc] 2211.950031047202 iter/sec (stddev: 0.000026166014278761743) 2231.124583261241 iter/sec (stddev: 0.00003242244730450441) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tai-tdb] 1449.6676496925377 iter/sec (stddev: 0.00002705390650273014) 1457.018008386182 iter/sec (stddev: 0.000040950572083236183) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tai-tt] 2621.149607189885 iter/sec (stddev: 0.00003138374147222286) 2685.2831037584533 iter/sec (stddev: 0.000025117334758077443) 1.02
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-utc-tai] 2214.6130677231045 iter/sec (stddev: 0.00003770759607713796) 2283.550287502086 iter/sec (stddev: 0.000027062216457408597) 1.03
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-utc-utc] 575130.763729876 iter/sec (stddev: 3.4962693281383913e-7) 576848.5040379186 iter/sec (stddev: 3.1273799211724037e-7) 1.00
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-utc-tdb] 1309.9541263789147 iter/sec (stddev: 0.000043348191803012416) 1340.6597940436927 iter/sec (stddev: 0.000030185263406882785) 1.02
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-utc-tt] 2174.099426775894 iter/sec (stddev: 0.000030116895677374233) 2178.033379123639 iter/sec (stddev: 0.000029856613389629674) 1.00
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tdb-tai] 1446.732165045992 iter/sec (stddev: 0.00003589166590429814) 1456.0531328556526 iter/sec (stddev: 0.00004221240833376671) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tdb-utc] 1324.201943360544 iter/sec (stddev: 0.00003338970361580899) 1324.651580819428 iter/sec (stddev: 0.00007033504687124594) 1.00
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tdb-tdb] 597133.7988114546 iter/sec (stddev: 3.11955056706884e-7) 584479.7890707874 iter/sec (stddev: 2.581399199795439e-7) 0.98
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tdb-tt] 1484.3071974929676 iter/sec (stddev: 0.000026070428518431733) 1511.9541679392735 iter/sec (stddev: 0.000020782525789011466) 1.02
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tt-tai] 2653.3622772782373 iter/sec (stddev: 0.00002527504223690559) 2678.512480559722 iter/sec (stddev: 0.000024513735237790816) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tt-utc] 2143.739884394502 iter/sec (stddev: 0.000025864023843737306) 2187.7376326552967 iter/sec (stddev: 0.00003061014949940402) 1.02
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tt-tdb] 1490.465846251176 iter/sec (stddev: 0.00003633876203503933) 1522.3053915983098 iter/sec (stddev: 0.000026051836330452183) 1.02
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[astropy-tt-tt] 586825.8519252602 iter/sec (stddev: 3.454254439119035e-7) 585725.2329877908 iter/sec (stddev: 2.753612288000891e-7) 1.00
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tai-tai] 585716.6942279831 iter/sec (stddev: 3.422663196881262e-7) 584137.0621278738 iter/sec (stddev: 2.7889900115271085e-7) 1.00
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tai-utc] 2637.7585317430403 iter/sec (stddev: 0.00002740462702092752) 2708.102119845115 iter/sec (stddev: 0.00001962897244185753) 1.03
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tai-tdb] 3430.370322194456 iter/sec (stddev: 0.000025764830420868415) 3532.6699990015027 iter/sec (stddev: 0.000016981517828278923) 1.03
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tai-tt] 4261.7816043595 iter/sec (stddev: 0.00002261636488432246) 4339.748061026963 iter/sec (stddev: 0.000020710801492743746) 1.02
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-utc-tai] 2608.5688238815133 iter/sec (stddev: 0.000028338168423355824) 2646.1445697241984 iter/sec (stddev: 0.000028157202548887413) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-utc-utc] 547312.0989306201 iter/sec (stddev: 6.492277690424802e-7) 579882.5272574225 iter/sec (stddev: 4.864645103142788e-7) 1.06
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-utc-tdb] 2406.5040689589873 iter/sec (stddev: 0.00003148536649769066) 2427.833030121707 iter/sec (stddev: 0.000023307745437915644) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-utc-tt] 2653.0675763534928 iter/sec (stddev: 0.000028690962883254624) 2666.933419693101 iter/sec (stddev: 0.000027499838548170787) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tdb-tai] 3520.1831336256255 iter/sec (stddev: 0.000025528770161606866) 3551.67546777597 iter/sec (stddev: 0.000019255818864079562) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tdb-utc] 2443.461261565455 iter/sec (stddev: 0.00013605977801255247) 2456.8676206699124 iter/sec (stddev: 0.00012575988772667) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tdb-tdb] 592156.5434286701 iter/sec (stddev: 3.611962899896384e-7) 585971.2147269596 iter/sec (stddev: 3.132504123324117e-7) 0.99
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tdb-tt] 3542.2166801685153 iter/sec (stddev: 0.000025879529487341888) 3585.253757604984 iter/sec (stddev: 0.000017473416921342174) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tt-tai] 4258.584890161657 iter/sec (stddev: 0.00002592953066096751) 4302.061862132189 iter/sec (stddev: 0.0000202830124862227) 1.01
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tt-utc] 2668.898463866789 iter/sec (stddev: 0.000037217515401451863) 2624.593929329632 iter/sec (stddev: 0.00003399919654537664) 0.98
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tt-tdb] 3524.311993293695 iter/sec (stddev: 0.000023057364119088084) 3501.7794430963286 iter/sec (stddev: 0.000020018767727313058) 0.99
src/adam_core/time/tests/test_time.py::test_Timestamp_rescale_benchmark[new-tt-tt] 592840.9438522336 iter/sec (stddev: 3.2233406405908825e-7) 549013.8126390282 iter/sec (stddev: 4.18577010679282e-7) 0.93
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=EARTH,-times=1,] 1799.400769682279 iter/sec (stddev: 0.0000684569652971068) 1824.7607438106697 iter/sec (stddev: 0.00005687731495130449) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=EARTH,-times=10000,] 177.44016442290308 iter/sec (stddev: 0.00015469829018115148) 178.53688029022405 iter/sec (stddev: 0.00015427153870440708) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SUN,-times=1,] 1801.9347454069168 iter/sec (stddev: 0.00004181111847862513) 1813.889576375959 iter/sec (stddev: 0.00002725757936359693) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SUN,-times=10000,] 175.00767915790573 iter/sec (stddev: 0.00011541580868197039) 178.37273260667868 iter/sec (stddev: 0.0001187980038545052) 1.02
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1799.4814778193513 iter/sec (stddev: 0.00003602866898641013) 1805.9266991567197 iter/sec (stddev: 0.00002868569511563384) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 177.48231783606028 iter/sec (stddev: 0.0001104539595267261) 177.4649766953739 iter/sec (stddev: 0.00011748199823105022) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=EARTH,-times=1,] 1821.3608697825214 iter/sec (stddev: 0.00003373495564765394) 1809.4046756045152 iter/sec (stddev: 0.000023260141889996345) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=EARTH,-times=10000,] 178.6581435591805 iter/sec (stddev: 0.00010809551819060211) 178.40715229269867 iter/sec (stddev: 0.00009184812781335165) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SUN,-times=1,] 1809.4583218710231 iter/sec (stddev: 0.000028947344402647354) 1796.2118748682433 iter/sec (stddev: 0.000029306722873220938) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SUN,-times=10000,] 177.61041351150052 iter/sec (stddev: 0.00007687110028358455) 179.1621069909249 iter/sec (stddev: 0.00004857713676111529) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1789.6515080864938 iter/sec (stddev: 0.000040663362101964685) 1807.4789135053188 iter/sec (stddev: 0.00004303661446461055) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 177.23852702722849 iter/sec (stddev: 0.00004832535176244745) 176.86462031540984 iter/sec (stddev: 0.00019810119593484244) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=EARTH,-times=1,] 1811.791999642793 iter/sec (stddev: 0.000036844463169946625) 1824.3913034059642 iter/sec (stddev: 0.00003632799036012351) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=EARTH,-times=10000,] 179.21306370699858 iter/sec (stddev: 0.00015082131165145227) 177.85064069929317 iter/sec (stddev: 0.00017890199617805408) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SUN,-times=1,] 1839.1547785937448 iter/sec (stddev: 0.000028044987783912805) 1830.6836079160246 iter/sec (stddev: 0.000034348812753856855) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SUN,-times=10000,] 178.2292713741894 iter/sec (stddev: 0.0000987427810650537) 177.91160703043568 iter/sec (stddev: 0.0001240689712228654) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1819.6778603736661 iter/sec (stddev: 0.000036511740000295764) 1825.080369425679 iter/sec (stddev: 0.000032116094490239765) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 177.54439690691908 iter/sec (stddev: 0.0001052999623764739) 180.45376197575874 iter/sec (stddev: 0.000046514811020547157) 1.02
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=EARTH,-times=1,] 1819.3686923854093 iter/sec (stddev: 0.00003540928317269037) 1842.423641955674 iter/sec (stddev: 0.00002362468428754481) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=EARTH,-times=10000,] 178.89201470314032 iter/sec (stddev: 0.0001087582266929321) 178.56362994024556 iter/sec (stddev: 0.00012058198012449967) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SUN,-times=1,] 1826.087952526516 iter/sec (stddev: 0.000038617920215522014) 1835.217035926648 iter/sec (stddev: 0.000028306278497764217) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SUN,-times=10000,] 177.53486321484326 iter/sec (stddev: 0.00010784861331892694) 177.67883685597317 iter/sec (stddev: 0.00009616806339286907) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1781.615857172525 iter/sec (stddev: 0.00005144922051544943) 1835.6352680482003 iter/sec (stddev: 0.00003059397547998806) 1.03
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 176.9404718728021 iter/sec (stddev: 0.00007875803175617823) 177.62478656591094 iter/sec (stddev: 0.00013870235000396) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant