test_velocity_in_ITRF_to_GCRS2 too tight for 32-bit Intel
See original GitHub issueIn relation to #404: 32-bit intel is not precise enough for this test
[ 93s] =================================== FAILURES ===================================
[ 93s] ________________________ test_velocity_in_ITRF_to_GCRS2 ________________________
[ 93s]
[ 93s] def test_velocity_in_ITRF_to_GCRS2():
[ 93s] # TODO: Get test working with these vectors too, showing it works
[ 93s] # with a non-zero velocity vector, but in that case the test will
[ 93s] # have to be fancier in how it corrects.
[ 93s] # r = np.array([(1, 0, 0), (1, 1 / DAY_S, 0)]).T
[ 93s] # v = np.array([(0, 1, 0), (0, 1, 0)]).T
[ 93s]
[ 93s] ts = api.load.timescale(builtin=True)
[ 93s] t = ts.utc(2020, 7, 17, 8, 51, [0, 1])
[ 93s] r = np.array([(1, 0, 0), (1, 0, 0)]).T
[ 93s] v = np.array([(0, 0, 0), (0, 0, 0)]).T
[ 93s]
[ 93s] r, v = ITRF_to_GCRS2(t, r, v, True)
[ 93s]
[ 93s] # Rotate back to equinox-of-date before applying correction.
[ 93s] r = mxv(t.M, r)
[ 93s] v = mxv(t.M, v)
[ 93s]
[ 93s] r0, r1 = r.T
[ 93s] v0 = v[:,0]
[ 93s]
[ 93s] # Apply a correction: the instantaneous velocity does not in fact
[ 93s] # carry the position in a straight line, but in an arc around the
[ 93s] # origin; so use trigonometry to move the destination point to where
[ 93s] # linear motion would have carried it.
[ 93s] angvel = (t.gast[1] - t.gast[0]) / 24.0 * tau
[ 93s] r1 = mxv(rot_z(np.arctan(angvel) - angvel), r1)
[ 93s] r1 *= np.sqrt(1 + angvel*angvel)
[ 93s]
[ 93s] actual_motion = r1 - r0
[ 93s] predicted_motion = v0 / DAY_S
[ 93s]
[ 93s] relative_error = (length_of(actual_motion - predicted_motion)
[ 93s] / length_of(actual_motion))
[ 93s]
[ 93s] > assert relative_error < 2e-12
[ 93s] E assert 3.866305785983307e-12 < 2e-12
[ 93s]
[ 93s] skyfield/tests/test_positions.py:129: AssertionError
[ 93s] =========================== short test summary info ============================
[ 93s] FAILED skyfield/tests/test_positions.py::test_velocity_in_ITRF_to_GCRS2 - ass...
[ 93s] ======================== 1 failed, 452 passed in 14.92s ========================
Issue Analytics
- State:
- Created 3 years ago
- Comments:10 (6 by maintainers)
Top Results From Across the Web
When using PCI Express, can 32-bit addressing be used to ...
If the addressable range is greater than 4 GB in size, this will by definition span outside of 32-bit address space. 32-bit addressing...
Read more >Question: problems porting a 32-bit application to 64 bit ...
I have the source code for the application (originally written as a 32-bit application) and I am able to build the solution for...
Read more >5.15.1. CPRI 32-bit IQ Data TX Interface
Each asserted bit indicates the IP core is ready to write IQ data into iq_tx_data in the next clock cycle. Each bit represents...
Read more >Possible to install Win 10 32bit on NUC 8i3
Hello guys. Trying to install Win 10 32bit on new NUC (for mum; to have compatibility with old DOS aplication) I boot from...
Read more >Intel® Graphics Driver for Windows* [15.40]
Windows® 10, 64-bit and 32-bit only. 32-bit support is limited to particular SKU's. 5th Generation Intel® Core™ Processors and related Intel Pentium ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Can confirm, tests now pass using assay on i586
I have adjusted the test tolerances so that they should now all pass under 32-bit Linux! I do not have anything running under 32-bit in CI, but I now have a local command I can run before each Skyfield release (hopefully I remember!) that should hopefully keep the tests of future versions also running under 32-bit operating systems.
I plan to release a new Skyfield 1.25 within the next few hours that includes the improvement. Once you have the chance to try it out, let me know if you have any further problems that need to be tracked down for your openSUSE build!