Dear Joey, On Wed, Oct 16, 2019 at 06:31:46PM +0000, Iverson, Joseph W [MATH] wrote: > > >> What kind of task are do going to do on these matrices? > > Usually when I need to export to MATLAB it's because I need to do stuff with > eigenvalues or with non-cyclotomic numbers. For instance, right now I need to > convert this non-unitary representation to a unitary one (using the square > root of a positive matrix) and then find a matrix for orthogonal projection > onto an invariant subspace (with the aid of a spectral decomposition).
SageMath can do linear algebra on matrices of general algebraic numbers. By the way, our GAP package should be able to do unitarization. We figured out a procedure for this, described in the MSc thesis (which I supervised) of the main author of the package, see Sect. A.1 of http://users.ox.ac.uk/~coml0531/kaashif-thesis.pdf but implementation isn't quite done yet (not tests ready, for sure). The procedure involves taking square roots of a positive diagonal matrix of cyclotomics (unsuprisingly) - probably this means that it might get slow. I guess one can do an "incomplete unitarisation" - the invariant sesquilinear form will be diagonal, but not scalar, this would avoid taking roots. > > >> I believe you can do a lot in SageMath > > Yes, I always have that in the back of my mind as a last resort, but I would > like to avoid learning a whole new system if I can. In addition, many of my > collaborators use MATLAB and I would like to stay on the same page as them. <rant> I honestly wish my university did not have a campus Matlab license - it has a side effect that any non-Matlab software effort gets zero university funding :-( Matlab for software is akin to Elsevier for maths journals - a huge access-restricting costpost for little gain. </rant> > > Still, I wonder if a person could use Sage as a bridge to MATLAB. Does > anybody know if it has a method to export .mat files, and if so, whether that > method is compatible with the interface to GAP? *.mat files are snapshots of Matlab memory, I don't see how one can produce them outside of Matlab. (They are akin to Python's or GAP's IO package serialisation). What one can do is to create a MEX-file extension for Matlab, which would embed libGAP and allow for efficient copying of data in memory: https://en.wikipedia.org/wiki/MEX_file (this is a kind of interface to (lib)GAP done in SageMath, and, IIRC, in a new Julia-language based system Oscar https://oscar.computeralgebra.de/) HTH Dima > > Dima, thanks also for pointing me to your package about block > diagonalization. That is closely related to what I am doing, yes. > > All the best, > Joey Iverson > > Assistant Professor > Department of Mathematics > Iowa State University > > > > > On 10/16/19, 9:11 AM, "dmitrii.pasech...@cs.ox.ac.uk" > <dmitrii.pasech...@cs.ox.ac.uk> wrote: > > Dear Joey, > On Wed, Oct 16, 2019 at 12:06:16PM +0000, Iverson, Joseph W [MATH] wrote: > > > > Does anybody know of a way to efficiently get matrices (say with > cyclotomic entries) from GAP to MATLAB? For instance, is there a package to > export matrices as .mat files? > > > > I have been getting by with a jerry-rigged solution where I make GAP > print a matrix like > > A:=[[1,0],[0,1]];; > > to a file "A.m" containing a single string like > > "A=[1,0;0,1];". > > Then I have MATLAB read the file as a script. That works fine for small > matrices, but for large ones (or for 3-tensors consisting of lots of > matrices) it is prohibitively slow, both for GAP to print to the file and for > MATLAB to interpret the result. > > > > For a sense of scale, at the moment I would like to export 95040 > matrices each of size 540x540 to MATLAB, preferably as a 3-tensor so that I > can easily iterate through the list. (The matrices are the image of a > representation of M12 having degree 540.) > > What kind of task are do going to do on these matrices? > I believe you can do a lot in SageMath, which has a fast (lib)GAP > interface, and many more numerical > and matrix tools than GAP. E.g. we recently have been working on solving > semidefinite optimisation problems using GAP output (needed to > block-diagonalise certain combinatorial data). > > We (mostly, my former student) also have a GAP package that would > block-diagonalise for you your > representation (into block-diagonal matrix with irredicible blocks). > https://gitlab.com/kaashif/decomp > which might help a lot with whatever linear algebra tasks you might want > to do with your representation of degree 540. > > HTH > Dima > > > > > > Best regards, > > Joey Iverson > > > > Assistant Professor > > Department of Mathematics > > Iowa State University > > > > _______________________________________________ > > Forum mailing list > > Forum@gap-system.org > > https://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ Forum mailing list Forum@gap-system.org https://mail.gap-system.org/mailman/listinfo/forum