Hello everyone: 

It has become necessary to lean on Magma's extensive ability to compute 
with lattices (and in particular with ideal classes in definite quaternion 
algebras). 

I am trying to write some code in Magma (granting that this is an 
abomination) and for the life of me, I cannot figure out how to make block 
matrices using a bunch of 3x 3 matrices all defined over a number field. 
Here is the code I have.  The function that I am trying to get to work is 
the BrandtOperator function: 

function representations(I, J, n)
 reqlat := J*invideal(I);
 reqnorm := n*Norm(reqlat);
 return Enumerate(reqlat, reqnorm, reqnorm);
end function;

function BrandtBlock(I, J, wt, n)
 assert RightOrder(I) eq RightOrder(J);
 eI := 1/2*#Units(LeftOrder(I));
 RIJn := representations(I, J, n);
 phi := MatrixRepresentation(QuaternionAlgebra(RightOrder(I)));
 bnIJ := SymmetricPower(phi(0),wt-2);
 for alph in RIJn do
  bnIJ := bnIJ + SymmetricPower(phi(alph),wt-2);
 end for;
 return 1/eI*bnIJ;
end function;

function BrandtOperator(O, wt, n)
 Cl := RightIdealClasses(O);
 H := #Cl;
 blkr := [BrandtBlock(I, J, wt, n) : I, J in Cl]; // needs tweaking
 // return blkr;
 return BlockMatrix(blkr);
end function;

Also, if anyone is working on building functionality for lattices and in 
particular definite quaternion algebras over number field in Sage, I am 
willing to contribute to your project or in any case, if any one has any 
kind of a blueprint, I am willing to spend the next couple of months to 
thrash out some working code to compute spaces of automorphic forms of 
higher weight (just as BrandtModules do for weight 2; in this case, 
already, it would be desirable to work with Pizer-type orders but I am not 
sure if people have tried to implement these things in Sage). 

Thank you for your help with this! 

Kannappan. 

-- 
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 post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to