Karim Belabas on Sun, 11 Nov 2007 01:00:58 +0100

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Sorting output of factor()

* Jeroen Demeyer [2007-11-08 23:15]:
> This is a rather technical question.  After PARI finishes factoring, the 
> output is sorted in some way (for example, integers are in increasing 
> order).  I would like to sort factorisations the way PARI does.  Is there a 
> seperate function in PARI for this?

There is no universal sorting function. You have a general template:

1)  GEN sort_factor(GEN fa, void *data, int (*cmp)(void *,GEN,GEN))

to sort (in place) an arbitrary factorization matrix using comparison
routine cmp to order irreducible factors (using auxiliary 'data').

This is for instance used with cmp = gauss_cmp (over Z[i]) or 
cmp = cmp_prime_ideal (providing a total ordering on maximal ideals in a
given number field, with given basis for its ring of integers)

2)  GEN sort_factor_pol(GEN fa, int (*cmp)(GEN,GEN))

a very common special case, which sorts (in place) a polynomial
factorization matrix. Irreducible (polynomial) factors are sorted by
increasing degree; factors of equal degree are sorted lexicographically,
using cmp() to compare coefficients.

Throughout the source code, depending on the precise function, we have

  cmp = gcmp ( or cmpii, but gcmp would sort in the same way here, over Q)
  cmp = cmp_padic (over Qp)
  cmp = cmp_RgX (over Q[y] and its quotients)

What do you have in mind ?


Karim Belabas                  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]