-
Notifications
You must be signed in to change notification settings - Fork 0
/
newtonpuiseux.input
50 lines (37 loc) · 1.49 KB
/
newtonpuiseux.input
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
-- -*- coding: utf-8 -*-
)clear completely
)cd
)cd fricas/qeta/tmp
)r projectlibs )quiet
)r qetamacros.input )quiet
)co ../src/newtonpuiseux.spad
)set stream calculate 2
)set mess time on
-- http://jaypantone.com/courses/winter16math118/lecture-notes/lecture-notes-25.pdf
K ==> AlgebraicNumbe
KX ==> SparseUnivariatePolynomial K
KPX ==> PolynomialRing(K, QQ)
KPXY ==> SparseUnivariatePolynomial KPX
SlopePoints K ==> Record(slope: K, points: List Point K)
SPQQ ==> SlopePoints QQ
-- Winkler: https://www.risc.jku.at/education/courses/ss2016/caag/09-puiseux.pdf
pp := (x^3+x^4) + (2*x+2*x^2)*y + (-x+2*x^2)*y^2 + (4)*y^3 + (-4)*y^4 + (1)*y^5
-- Winkler RISC Report 97-38 (page 6)
-- ftp://risc.jku.at/pub/techreports/1007/97-38.ps.gz
-- pp := y^5 - 2*x^2*y^2 + 3*y*x^4 - x^6
pp := (y-(1+x)) * (y-(1-2*x));
pp := (y-(1+x))*(y-(1-x+x^2));
pp := (y-(1+x)) * (y-(1+x+x^2));
pp := (y^3-x)*(y^2-x);
pp := (y-x+x^2+x^3)*(y-x+x^2+x^3+x^4);
pp := (x^2+y^2)^3-4*x^2*y^2; -- \cite[p.~119]{Duval:RationalPuiseuxExpansions:1989}
pp := (2*x^2+y^2)^3-8*x^2*y^2; -- \cite[p.~133]{Duval:RationalPuiseuxExpansions:1989}
pp := y^2+x; -- \cite[p.~133]{Duval:RationalPuiseuxExpansions:1989}
pp := y^7+9*x^5; -- \cite[p.~133]{Duval:RationalPuiseuxExpansions:1989}
p := poly2KPXY(pp, 'x, 'y)
-- Compute the leading monomials of the puiseux series that solve
-- the polynomial p.
m := [leadingPuiseuxMonomials p]
m := cons(nextPuiseuxMonomials first m, m); first m
-------------------------------------------------------------------
)fin