+1 for Vincent's zero-dimensional variety point finding. I used to use Magma's AlgebraicallyClosedField a lot for this (for some project which I did before Sage existed). The idea is to find the points over Qbar, then construct the absolute field they generate, then find them again over that field before continuing. I can imagine a nice Sage function to do that automatically including a field_of_definition_of points method on such a variety.
John On Sun, 25 Apr 2021 at 23:35, Michael Orlitzky <mich...@orlitzky.com> wrote: > > On Sun, 2021-04-25 at 15:07 +0200, Fredrik Johansson wrote: > > Hi all, > > > > I'm looking for benchmark problems for QQbar/AA arithmetic. Ideally such a > > problem will: > > > > * Be reducible to a short program that, apart from using QQbar/AA > > operations, is reasonably self-contained. > > * Reflect real-world use, i.e. originate from using Sage to solve an actual > > mathematical problem, with QQbar/AA arithmetic being a significant > > ingredient. > > I'm interested in Gram-Schmidt and the coordinate_vector() methods that > solve linear systems over AA. > > For a benchmark, you could conjure a set of long vectors with entries > in AA/QQbar, and orthonormalize them using the kindergarten algorithm > that everyone knows. That will leave a linearly-independent set, and if > you keep the input/output indices matched up, will let you know which > of the input vectors correspond to that linearly independent set. Call > the set of those input vectors "X". Then to benchmark the > coordinate_vector() methods, you can generate random elements in > W=span(X), and solve the system to find their W-coordinates in terms of > the basis X. (Using the de-orthonormalized vectors as the basis makes > the system harder to solve, and more representative of the general > case.) > > > Unimportant background information: > > A Euclidean Jordan algebra (EJA) is a real vector space where every > element "x" has a self-adjoint "left multiplication by x" operation > that I'll write L_x. > > It turns out that every EJA is a mishmash of various Hermitian matrix > algebras, which is nice, because it lets you think of their elements as > being some concrete object rather than just an abstract vector space > element. For example, the space of real symmetric matrices with > > L_x(y) := (xy + yx)/2 > > induces an EJA. But when people think of a symmetric matrix, they're > thinking of it in terms of the standard basis, which leads to a > problem; namely that the basis > > [1 0] [0 1] [0 0] > [0 0], [1 0], [0 1] > > for S^2 is not normalized. This raises a problem: while L_x is always > self-adjoint, its matrix representation won't be symmetric unless your > basis is orthonormal. And you need its matrix to be symmetric if you > want to do anything cool with it in sage, because sage assumes that > when you have a matrix full of numbers, they're with respect to the > standard basis. > > In short, this means that a sqrt(2) must become involved, and the "2" > isn't special. Here's where Gram-Schmidt comes in. Afterwards, matrices > aren't vectors in sage, so converting back and forth between > matrix/vector representations involves a lot of to_vector() and > coordinate_vector() over AA. > > Things get worse: when constructing a subalgebra, its basis needs to be > orthonormalized as well, and we need to be able to convert back and > forth between the orthonormalized superalgebra coordinates and the > orthonormalized subalgebra coordinates. Thus we wind up > orthonormalizing vectors that already have ugly entries, and solving > systems with uglier and uglier entries in AA. This is a bottleneck when > the algebras get "big," which they do even in simple examples (the > Albert algebra has dimension 27). > > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-devel/1620f0b7f268a16e477d74f7295d9b1340285604.camel%40orlitzky.com. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAD0p0K4sFsRNjEQ8aL%2BATfQ5hngik4aonLPX14sRkPdmoFnq0g%40mail.gmail.com.