An oblate spheroid is an example of a Riemannian manifold: a smooth object that looks like a plane (or, in general, any ℝ^n) locally, and has a way to measure angles between vectors in that local plane.
All Riemannian manifolds have an object called the Levi-Cevita connection, which defines how vectors in the local plane (tangent space) most naturally map to vectors in other tangent spaces in the immediate neighborhood.
Standing at a point on the Earth and looking in a certain direction gives us 1) a point on the manifold, and 2) a direction in that point's tangent space.
We then take an infinitesimally small step forward, and apply the Levi-Cevita connection to get from the old tangent space to the (infinitesimally nearby) new tangent space, and repeat. This defines an ordinary differential equation. Integrating the differential equation gives us a curve through the manifold.
Within some neighborhood of the initial point, this curve is a geodesic, i.e. the shortest path between the initial point and all subsequent points on the curve. This matches our typical intuition of "straight".
(Disclaimer: I am currently learning about this topic, but am not an expert.)
In this example, random numbers provoked the worst case too often. However, in other situations random numbers are "too nice". For example, a random matrix with independent identically-distributed zero-mean entries is overwhelmingly likely to be well-conditioned, have no repeated eigenvalues, etc. Testing numerical algorithms on random data alone is a bad idea.
For math and writing, we still have in-class exams as an LLM-free evaluation tool.
I wish there was some way to do the same for programming. Imagine a classroom full of machines with no internet connection, just a compiler and some offline HTML/PDF documentation of languages and libraries.
+-12 years ago I took a course on concepts of programming languages. The exam consisted out of programming exercises in a classroom without internet access.
Grading was based on the number of (hidden) unit tests that succeeded.
It is not even close. Almost every branch of modern mathematics includes an important contribution from Euler in its history. Erdos was a specialist by comparison.
If you sample a random person with a math degree, the probability that they believe Erdos had more impact than Euler is 0. ;)
I applied to tenure-track positions the current cycle. A lot of places were hiring non-TT lecturers too, and a few were hiring only non-TT.
The application-submitting phase of the current cycle is over for TT positions, and some of the listings have been taken down. No idea if non-TT hiring follows the same cyclic pattern. But if the listings are looking thin, you should check again around November.
Not having a Ph.D. might disqualify you for some positions, but definitely not all of them. Teaching experience with positive evaluations will help a lot!
I wouldn't worry too much about laid-off developers/researchers. The huge majority of them will try to find another high-paying job.
Here is a recent and interesting paper connecting GJK and convex optimization [1]. They show that GJK is equivalent to the iterations of the Frank-Wolfe algorithm applied to the QP, and that recent improvements to Frank-Wolfe can be applied to improve GJK.
Frank-Wolfe is a somewhat less well-known (compared to simplex, interior point, etc) convex optimization algorithm with many interesting properties [2, Section 3.3].
For simple applications there's no need to learn about quaternions at all. There could be a library type called Rotation3D or something. You should never need to know which representation it uses. The important part is to know Euler angles are bad ;)
But once you get into something more sophisticated like using rotations in a dynamical system, statistical filtering, optimizing a rotation, etc., the abstractions begin to leak.
I think what you are suggesting is similar to the "dead-beat controller" in discrete-time control literature. While a controller designed with this method can get the position error measured at the sampling times to zero very quickly, it gives no guarantees that the error stays zero between the samples. This means the block could be wildly oscillating around the arrow in reality, but oscillating in such a way that it's exactly under the arrow at the times your digital controller measures it.
This would probably not be a concern in this digital simulator, but such an error can pop up when trying the same thing out in real life.
An oblate spheroid is an example of a Riemannian manifold: a smooth object that looks like a plane (or, in general, any ℝ^n) locally, and has a way to measure angles between vectors in that local plane.
All Riemannian manifolds have an object called the Levi-Cevita connection, which defines how vectors in the local plane (tangent space) most naturally map to vectors in other tangent spaces in the immediate neighborhood.
Standing at a point on the Earth and looking in a certain direction gives us 1) a point on the manifold, and 2) a direction in that point's tangent space.
We then take an infinitesimally small step forward, and apply the Levi-Cevita connection to get from the old tangent space to the (infinitesimally nearby) new tangent space, and repeat. This defines an ordinary differential equation. Integrating the differential equation gives us a curve through the manifold.
Within some neighborhood of the initial point, this curve is a geodesic, i.e. the shortest path between the initial point and all subsequent points on the curve. This matches our typical intuition of "straight".
(Disclaimer: I am currently learning about this topic, but am not an expert.)
edit: https://en.wikipedia.org/wiki/Geodesics_on_an_ellipsoid goes into some interesting specifics about the results of this process on ellipsoids.