Re: sparse polynomial arithmetic
- From: rjf <fateman@xxxxxxxxx>
- Date: Thu, 3 Apr 2008 19:36:36 -0700 (PDT)
On Apr 3, 6:08 pm, Bill Hart <goodwillh...@xxxxxxxxxxxxxx> wrote:
On Apr 4, 1:27 am, rjf <fate...@xxxxxxxxx> wrote:
What is lisp? Does it multiply polynomials?
Lisp is a programming language. There is an ANSI standard for "Common
Lisp".
Does it multiply polynomials? Well, you can easily write programs to
do so in Lisp.
There are a number of computer algebra systems written in lisp:
Macsyma/Maxima, Axiom, Reduce, Jacal (Scheme dialect), Mathlab, plus
many experiments.
there are lots of examples
that would run slowly if all arithmetic were replaced by calls to the
very efficient libraries available (like GMP) for arbitrary precision
arithmetic. The run-of-the-mill arithmetic should be (and generally
is) compilable to machine integer or float arithmetic, which, for what
it does, is much much faster than calls to GMP.
FLINT doesn't use either of the strategies you have in mind, for small
polynomials.
If FLINT neither uses machine integer/float arithmetic, nor calls to
libraries, what does it do?
A mixed approach that tries to estimate what is going on beforehand
may be smart: e.g.
are these inputs and outputs sparse/dense?
are the coefficients [in the answer] going to be large/small (e.g.
in finite field, floats?)?
How much memory is available if we have to spread out in memory?
What kind of blocking makes sense given cache sizes etc.
I once read a paper by someone who suggested that for polynomials of
length 128000 blocking worked, but for small polynomials (length 1000
to 32000) cache blocking doesn't work.
Can you identify this paper? (and what is meant by "length"?)
I'm not sure what size you consider to be a small polynomial, but
using machine words or doubles would not be faster for polynomials
more than length about 20 at most, less probably on some
architectures. But now you are talking about saving time on a
computation which takes a tenth of a microsecond.
You have a need to multiply a few billion polynomials efficiently?
Generally computer algebra systems multiply (mostly small) polynomials
quite often.
If you ran one for a few days, it might very well multiply a few
billion polynomials.
RJF
.
- Follow-Ups:
- Re: sparse polynomial arithmetic
- From: Bill Hart
- Re: sparse polynomial arithmetic
- References:
- sparse polynomial arithmetic
- From: Roman Pearce
- Re: sparse polynomial arithmetic
- From: Mike Hansen
- Re: sparse polynomial arithmetic
- From: rjf
- Re: sparse polynomial arithmetic
- From: Roman Pearce
- Re: sparse polynomial arithmetic
- From: mabshoff
- Re: sparse polynomial arithmetic
- From: Bill Hart
- Re: sparse polynomial arithmetic
- From: Roman Pearce
- Re: sparse polynomial arithmetic
- From: Bill Hart
- Re: sparse polynomial arithmetic
- From: rjf
- Re: sparse polynomial arithmetic
- From: Bill Hart
- sparse polynomial arithmetic
- Prev by Date: Re: sparse polynomial arithmetic
- Next by Date: Re: sparse polynomial arithmetic
- Previous by thread: Re: sparse polynomial arithmetic
- Next by thread: Re: sparse polynomial arithmetic
- Index(es):
Relevant Pages
|