Alright, so the data available with the new implementation is different, 
since everything is encapsulated into flint types. What would be the right 
approach? Should I keep the old types and provide conversion functions, or 
should the different functions decide on other algorithms depending on some 
heuristics (which should be re-done)?

Also, do you think it is worth keeping the native code (the one written by 
William) -- especially for the basic functionality --, or this should be 
considered superseded by the FLINT functionality?

For now, and as an intermediate step, I will reincorporate the calls to 
other packages but set the defaults to using flint whenever possible.

Thanks for the feedback!

Marc.

On Tuesday, August 12, 2014 7:00:38 PM UTC+1, wstein wrote:
>
> On Tue, Aug 12, 2014 at 10:52 AM, Martin Albrecht 
> <martinr...@googlemail.com <javascript:>> wrote: 
> > Hi, I like the proposal to move some types over to FLINT. However, you 
> removed 
> > some options, e.g. calling Pari, LinBox or IML for solving certain 
> problems 
> > (charpoly, kernel, …). I'd prefer these options to be preserved as it is 
> not 
> > clear to me a priori that FLINT will in all cases be fastest. Also, 
> having 
> > choices allows to compare results. 
>
> +1.   In my experience, having implemented Matrix_integer_dense in the 
> first place, most systems that we call are full of bugs.   It's almost 
> never the case that any of the claimed functions, e.g., charpoly, 
> kernel, etc. aren't buggy.  It's critical (and disturbing) to run test 
> code comparing the various systems with various random (and not) 
> inputs. 
> Also, there are some systems like linbox that have proof=False 
> options, which can be faster, but will in fact be very wrong, 
> especially in corner cases. 
>
> I also noticed your patch removes a bunch of verbose output.  Why? 
> Having the potential for logging when running code is very useful: 
>
> - t = verbose('hermite mod %s'%D, caller_name='matrix_integer_dense') 
> cdef Matrix_integer_dense res = 
> self._new_uninitialized_matrix(self._nrows, self._ncols) 
> self._hnf_modn(res, D) 
> - verbose('finished hnf mod', t, caller_name='matrix_integer_dense') 
>
> william 
>
> > 
> > Cheers, 
> > Martin 
> > 
> > On Tuesday 12 Aug 2014 10:12:04 Marc Masdeu wrote: 
> >> Hi, 
> >> 
> >> Recently I noticed that Sage was not using fmpz_mat_t for matrices 
> >> (probably when FLINT was incorporated in Sage it didn't yet have this). 
> I 
> >> have opened a ticket (http://trac.sagemath.org/ticket/16803 --thanks 
> >> pbruin!--) with a patch that reimplements matrix_integer_dense with 
> FLINT, 
> >> and it would probably be a good idea to do a similar thing for 
> fmpq_mat_t. 
> >> 
> >> In any case, I am new to FLINT so I might not be doing the right 
> things, if 
> >> any expert is willing to review the ticket it would be great! 
> >> 
> >> Best, 
> >> 
> >> Marc. 
>
>
>
> -- 
> William Stein 
> Professor of Mathematics 
> University of Washington 
> http://wstein.org 
> wst...@uw.edu <javascript:> 
>

-- 
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 http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to