|
From: William H. <ha...@ya...> - 2007-04-23 12:27:00
|
--- David Harvey <dmh...@ma...> wrote: > > On Apr 22, 2007, at 10:28 PM, William Hart wrote: > > > I can't see any way of plugging FLINT stuff > directly > > into LiDIA to make a faster version of LiDIA. > Their > > design philosophy seems much different to ours > (C++, > > lots of generic programming to get the broadest > > coverage first, etc). > > Ummm... well you said their code is set up to be > able to give > specialised implementations of things. So couldn't > you write a > specialised implementation of Z[x] which uses a > FLINT object as the > underlying representation? (That is, assuming our > code is faster than > theirs? :-)) Wouldn't this be a way of plugging > FLINT into LiDIA? Not really. By the time we finish FLINT 1.0, we'd be in a place to replace their polynomials over biginits section. But to do this, we'd have to rewrite their entire bigint package. Given that many other parts of LiDIA sit on top of their bigint package (all the specialisations I am talking about), we'd have to rewrite those too. Possibly we could replace the kernel of LiDIA with our own. That would work, but then we'd have to change all our code to work with their bigints instead of GMP objects. I don't see this being fast. > > > I met Nigel Smart at Bristol (who worked on part > of > > LiDIA). I must have looked like a dope actually, > since > > I didn't know so much about LiDIA then and he > asked me > > about generic programming in FLINT, especially > since I > > mentioned we were doing everything in C. I didn't > > really answer his questions all that well. But now > I > > understand what he was on about. > > Yeah well I'm still wondering how the hell you are > planning to write > algebraic number theory algorithms on top of all > this..... I guess > I'll just have to wait and see :-) Please, if you have reservations about this, please speak up. Nigel mentioned that they had some trouble initially with LiDIA because they tried to do things in C with a kind of hacked together kind of generic programming, but they had to change. If you can see why we'd need it, please tell. But as far as I can see, most algebraic number theory can be done with a decent Z, Q_p, Z/nZ package and with matrices and polynomials over those. There are of course many other specialised routines one needs, which we will have to write, such as finding class numbers, etc. We'll also need a lattice reduction package and code for finding roots of polynomials over Z, R, C, Q_p and Z/nZ. But I just don't see the need for generic programming. That will happen at the level of SAGE as far as I can see. Bill. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |