https://observablehq.com/@d3/d3-packenclose
I still haven’t quite figured out how to make D3’s implementation robust, though. Volodymyr Agafonkin’s robust-predicated would probably help… https://github.com/mourner/robust-predicates
https://www.dmg.tuwien.ac.at/gruber/gruber_arbeiten/johnelli...
— one elegant trick I remember from there was that the value of a quadratic form with matrix A on vectors u and v (^T for transpose):
u^T A v
is interpreted as the dot product between the matrix A and the tensor product u v^T,
A • (u v^T)
— and dot product • on matrices is just from them being n×n vectors.
With that a lot of things are really nice now, e.g. interiors of ellipsoids correspond to intersections of halfspaces of matrices with the positive semidefinite cone. And halfspaces are simple to reason about and intersect!
This trick is also implicitly in the parent post, of course.
BTW is there a hackernews-type site or other aggregator that’s nothing but content like this? Maybe a subreddit? I’d love to read a few articles like this every day.
So an ellipse is only something that exists following a transformation of a unit ball? So, these "unit balls" are the elemental atoms of this ellipsis physics? Technically speaking at least.
Not sure I follow the physics analogy though. A unit ball is a specific case of an ellipse where A is the identity matrix. Perhaps the entries of A would be the atoms in this case as they uniquely shape it?
A unit ball along with the possibility of doing linear transformations on the unit ball are dependencies for constructing an ellipse.
:)
The physics metaphor is meant to communicate that you can have different materials (like aluminum or air), depending on the combinations or parameters used for a particular ellipsis case. And the physics or dynamics of ellipses would be the study of how the combinations on the dependencies (that is, the atomic elements) create different ellipsis shapes and properties.
"Semidefinite programming is still far from being a mature technology like linear or quadratic programming."
[1] https://link.springer.com/article/10.1007/s10957-021-01896-x [2] https://www.annualreviews.org/doi/pdf/10.1146/annurev-contro...