File: partitionlex

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (22 lines) | stat: -rw-r--r-- 609 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
!if $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Bernadette, Perrin-Riou
slib_example=[5,4,2]
!exit

:proc

!distribute items $wims_read_parm into slib_partition
slib_partition=!declosing $slib_partition
slib_partition=!sort reverse numeric item $slib_partition

slib_out=!exec pari p=[$slib_partition];  n=sum(i=1,#p,p[i]);\
    L=List([]); test=0;\
    for( a=1, #p,\
      if(a<#p && p[a+1]>1, listput(L,p[a]), listput(L, p[a]-1);\
       test=1; N=#p-a+1; s=divrem(N,p[a]-1)~;\
       for(j=1, s[1], listput(L,p[a]-1));\
       if(s[2]!=0, listput(L,s[2])); return(Vec(L)); break)\
    )