-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
101 lines (78 loc) · 2.75 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
OVERVIEW
* Formal proof of Puiseux's theorem
* Computation of roots of polynomials of Puiseux's series
You need coq version 8.14.1
PROOF
If you are only interested on the proof, you can just do:
cd coq; make
and ignore the rest of this README.
EVERYTHING
Otherwise, everything can be done by typing at top:
make
Faster compilation with option -j of make. E.g. "make -j4"
If this command "make" does not work, try reading the sections PROOF
(coq proof) and PROGRAM (ocaml program) below. They are independent.
PROGRAM
You need ocaml, its library num, camlp5, library mfpr (dev) to compile
(under Debian, it is the package libmpfr-def). Do:
cd cpoly; make; cd ..
cd ocaml; make; cd ..
This creates the executable named "puiseux".
Also building of a library function computing float complex roots of
any polynomial. See in directory 'cpoly' for details.
LIBRARY
The directory 'cpoly' contains an ocaml translation of CPOLY.F, a
well-known Fortran function that computes the float complex roots
of any polynomial
PROOF
Do:
cd coq; make
EXAMPLES OF THE PROGRAM
Warning: your terminal must be utf-8.
-- Robert J. Walker, "Algebraic Curves"
./puiseux '(-x3+x4)-2x2y-xy2+2xy4+y5'
./puiseux 'x4-x3y+3x2y3-3xy5+y7'
./puiseux '2x5-x3y+2x2y2-xy3+2y5'
./puiseux '(x2+4x3+6x4)-4x4y+(-2x-4x2-2x3)y2+y4'
-- Xavier Caruso
./puiseux -y X 't2X6+6t2X5+(8t3-2t2+t)X3+(7t4-t2-2t)X2+(8t3-3t)X-t8+t3'
-- Franz Winkler
./puiseux 'y5-4y4+4y3+2x2y2-xy2+2x2y+2xy+x4+x3'
./puiseux 'y2-x3+2x2-x'
-- Adrien Poteaux
./puiseux -y X '(Y3-X)((Y-1)^2-X)(Y-2-X2)-X2Y5'
-- Nicholas J. Willis, "Newton-Puiseux Algorithm" thesis
./puiseux '2x5-x3y+2x2y2-xy3+2y5'
./puiseux 'y4-(2x3+2x2)y2+(x6+2x5+x4)'
./puiseux 'y4-2x3y2-2x2y2+x6+2x5+x4'
./puiseux ' -x3+x4-2x2y-xy2+2xy4+y5'
./puiseux 'x2+xy+y2+x+y' #1
./puiseux 'x2+xy+y2+y'
./puiseux 'x2+xy+y2+x'
./puiseux 'x2+4xy+y2'
./puiseux 'x2+xy+y2' #5
./puiseux 'x2+2xy+y2'
./puiseux 'x3+x2y+xy2+y3+x2+xy+y2+x+y'
./puiseux 'x3+x2y+xy2+y3+x2+xy+y2+y'
./puiseux 'x3+x2y+xy2+y3+x2+xy+y2+x'
./puiseux 'x3+x2y+xy2+y3+x2' #10
./puiseux 'x3+x2y+xy2+y3+y2'
./puiseux 'x3+x2y+xy2+y3+x2+xy'
./puiseux 'x3+x2y+xy2+y3+xy+y2'
./puiseux 'x3+x2y+xy2+y3+xy'
./puiseux 'x3+x2y+xy2+y3+xy+y' #15
./puiseux 'x3+x2y+xy2+y3+xy+x'
./puiseux 'yx2-y3'
./puiseux 'x3+x2y+xy2+y3'
./puiseux 'yx2-2xy2+y3'
./puiseux 'x3-3yx2+3xy2-y3' #20
./puiseux 'x3+x2y+xy2+y3+x2+4xy+y2'
./puiseux 'x3+x2y+xy2+y3+x2+xy+y2'
./puiseux 'x3+x2y+xy2+y3+x2+2xy+y2'
./puiseux 'x3+x2y+xy2+y3+x2+4xy+4y2'
./puiseux 'x4+x3y+x2y2+xy3+y4+x+y' #25
./puiseux 'x4+x3y+x2y2+xy3+y4+x2+y'
./puiseux 'x4+x3y+x2y2+xy3+y4+x+y2'
./puiseux 'x4+x3y+x2y2+xy3+y4+x3+y'
./puiseux 'x4+x3y+x2y2+xy3+y4+y3+x'
./puiseux 'x4+x3y+x2y2+xy3+y4+y3+x2' #30