On 8/5/07, John Voight <[EMAIL PROTECTED]> wrote:
> The (most basic) input and output to Bernd's program appears just to
> be integer matrices (the input being 1 or 2 positive definite Gram
> matrices for the respective lattices, the output being the matrix
> which represents the isometry).

What is the C/C++ data type exactly?  Is a matrix a mpz_t* or an
int* or a long* or an mpz_t**?

> The algorithm is heavily optimized, I'm sure, but the basic idea is
> straightforward: compute the shortest vectors, pair them up
> appropropiately, and iterate until one either exhausts the
> possibilities or finds an isometry.  It might be better to just
> reimplement it if SAGE decides it wants to have its own optimized code
> for lattices?

I'm for not reinventing the wheel when possible.

> In the meantime, the hack that I wrote should be not
> too slow...

Does it use the file system or only in-memory pipes?  Does it work
for large input/output?  If it uses only in-memory pipes and works
with "large" i/o (at least in this context), then it should be OK.

One issue with do a C library link to the old C program is that if
it has memory leaks, or bad memory management, it can seriously adversely
affect SAGE.  This was the case with Leon's backtracking program (several
SAGE developers had to spend months fixing the program...)

 -- William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to