{VERSION 6 0 "IBM INTEL NT" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "restart: with(algcur ves):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 264 "The puiseux program can give unnecessarily large answers. Reading the following code into Map le before using the puiseux command will help to prevent one (but not \+ all) of the causes of these large answers, namely it will help to prev ent some unnecessary expanding." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2225 "`algcurves/lift_exp` := proc(v, f, x, y)\nlocal i, ii, r, re s, v7, vv7, v3, ext, a, j, n, np, ram, j3;\n if v[5] = 1 then retur n \{v\} end if;\n v3 := degree(v[3], x);\n res := \{\};\n r : = v[1] + y*x^v[2];\n vv7 := v[7]*v3 + v[2] - 1;\n vv7 := vv7 + v [5];\n ii := `algcurves/truncate_subs`(subs(x = v[3], f), x, y, r, \+ vv7 + 1,\n v[4]);\n if ii = 0 then error \"degree estimate w as wrong\" end if;\n v7 := (ldegree(ii, x) - v[2])/v3;\n r := `a lgcurves/v_ext_m`(\n `algcurves/g_factors`(tcoeff(ii, x), y, v[ 4]), y);\n for i in r do res := res union `algcurves/lift_exp`([\n \+ v[1] + x^v[2]*i[1], v[2] + 1, v[3], [op(i[3]), op(v[4])], i[2], \n v[6]*i[4], v7, [op(v[8]), [op(1 .. 4, v)]]], f, x, y)\n e nd do;\n if add(i[5]*i[6]*degree(i[3], x)/(v[6]*v3), i = res) <>\n \+ degree(tcoeff(ii, x), y) then error \"found wrong number of expansi ons\"\n end if;\n if v[5] = degree(tcoeff(ii, x), y) then\n \+ if ldegree(ii, x) <> vv7 then error \"degree estimate was wrong\"\n end if;\n return res\n end if;\n ii := collect(ii , y);\n ii := add(`algcurves/normal_tcoeff`(coeff(ii, y, i), x)*y^i ,\n i = 0 .. degree(ii, y));\n np := `algcurves/Newtonpolygo n`(ii, x, y);\n if nops(np) = 2 and np[1][3] = 0 then\n erro r \"found wrong number of expansions\"\n end if;\n for j in np d o\n if 2 < nops(j) and 0 < j[3] and j[3] < 1 then\n \+ r := `algcurves/g_factors`(j[4], x, v[4]);\n r := `algcurve s/v_ext_m`(r, x);\n for i in r do\n j3 := j[ 3] - v[2];\n ext := [op(i[3]), op(v[4])];\n \+ n := mods(1/numer(j3), denom(j3));\n ram := i[1]^n* x^denom(j3);\n a := v[2]*denom(j3) - numer(j[3]);\n \+ res := res union `algcurves/lift_exp`([collect(\n \+ subs(x = ram, v[1])\n + x^a*i[1]^((1 - \+ n*numer(j3))/denom(j3)), x, normal),\n a + 1, norma l(subs(x = ram, v[3])), ext, i[2],\n v[6]*i[4],\n \+ (j[2] - j[1]*j[3] - a/degree(ram, x))/degree(v[3], x ),\n [op(v[8]), [op(1 .. 4, v)]]], f, x, y)\n \+ end do\n end if\n end do;\n res\nend proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "A:=a*x^5+(x+y)^2*(x-y)*y+f*x ^4*y+g*x^3*y^2+h*x^2*y^3+j*x*y^4+k*y^5;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG,0*&%\"aG\"\"\")%\"xG\"\"&F(F(*(),&F*F(%\"yGF(\"\"#F(,&F*F (F/!\"\"F(F/F(F(*(%\"fGF()F*\"\"%F(F/F(F(*(%\"gGF()F*\"\"$F()F/F0F(F(* (%\"hGF()F*F0F()F/F:F(F(*(%\"jGF(F*F()F/F6F(F(*&%\"kGF()F/F+F(F(" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 524 "Having three segments where the s lope is -1 is just flat out nasty because we will have three different roots. We break this into two cases: all three are the same, two of \+ the roots are the same and one is different. If all three are differe nt then the jets completely split and there are no more cases to consi der. So, in case A, by substituting in the proper values for the coef ficients of the terms that are represented by points on the Polygon, w e ensure that two of the three roots are the same and one is different ." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 21 "define polynomial [1]" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "puiseux(A,x=0,y,0);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"\"!%\"xG*&\"\"\"F'%\"kG!\"\",&*(\" \"%F),.%\"fGF)%\"gGF'%\"jGF'%\"hGF)%\"aGF'F(F)\"\"#*&F%F',.*&F3F)F.F'F )*&F3F)F/F'F'*&F3F)F0F'F'*&F3F)F1F'F)*&F3F)F2F'F'*&F3F)F(F'F)F)#\"\"$F 3F'*(,.*&F3F)F.F'F'*&F3F)F/F'F)*&F3F)F0F'F)*&F3F)F1F'F'*&F3F)F2F'F)*&F 3F)F(F'F'F'F%F'F5F)F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "numerato r=0 [2]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "solve(-1/2*f+1/2 *g+1/2*j-1/2*h+1/2*a-1/2*k,f);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,,% \"aG\"\"\"%\"gGF%%\"jGF%%\"hG!\"\"%\"kGF)" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 16 "A1:=eval(A,f=%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%#A1G,0*&%\"aG\"\"\")%\"xG\"\"&F(F(*(),&F*F(%\"yGF(\"\"#F(,&F*F(F/! \"\"F(F/F(F(*(,,F'F(%\"gGF(%\"jGF(%\"hGF2%\"kGF2F()F*\"\"%F(F/F(F(*(F5 F()F*\"\"$F()F/F0F(F(*(F7F()F*F0F()F/F=F(F(*(F6F(F*F()F/F:F(F(*&F8F()F /F+F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "reevaluate polynomial \+ [3]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "puiseux(A1,x=0,y,0); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<'\"\"!%\"xG,$F%!\"\"*&\"\"\"F)%\" kGF',&F%F'*&)F%\"\"#F),,*&F.F'%\"aGF)F)*&F.F'%\"gGF)F'*(\"\"$F)F.F'%\" jGF)F'%\"hGF)*&F.F)F*F)F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 19 " Cases exhausted [6]" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 75 "In case B, we sustitute values to ensure that all three roots are the same." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "B:=a*x^5+(x+y)^3*y+f*x^4*y+g *x^3*y^2+h*x^2*y^3+j*x*y^4+k*y^5;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %\"BG,0*&%\"aG\"\"\")%\"xG\"\"&F(F(*&),&F*F(%\"yGF(\"\"$F(F/F(F(*(%\"f GF()F*\"\"%F(F/F(F(*(%\"gGF()F*F0F()F/\"\"#F(F(*(%\"hGF()F*F9F()F/F0F( F(*(%\"jGF(F*F()F/F4F(F(*&%\"kGF()F/F+F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 21 "define polynomial [1]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "puiseux(B,x=0,y,0);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#<%\"\"!,$*&\"\"\"F'%\"kG!\"\"F),&%\"xGF)*&*&F+F',.%\"fGF)%\"gGF'%\"j GF'%\"hGF)%\"aGF'F(F)F'#\"\"%\"\"$F.F)F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "numerator=0 [2]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "B1:=eval(B,f=g+j-h+a-k);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#B 1G,0*&%\"aG\"\"\")%\"xG\"\"&F(F(*&),&F*F(%\"yGF(\"\"$F(F/F(F(*(,,F'F(% \"gGF(%\"jGF(%\"hG!\"\"%\"kGF6F()F*\"\"%F(F/F(F(*(F3F()F*F0F()F/\"\"#F (F(*(F5F()F*F=F()F/F0F(F(*(F4F(F*F()F/F9F(F(*&F7F()F/F+F(F(" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "reevaluate polynomial [3]" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "puiseux(B1,x=0,y,0);" } {TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"\"!,$%\"xG!\"\",$* &\"\"\"F*%\"kGF'F',&*&)*&F&F*,,%\"aGF*%\"gGF'*&\"\"$F*%\"jGF*F'*&\"\"# F*%\"hGF*F**&\"\"%F*F+F*F*F'#F4F7F*)F0F7F*F**(,,F1F'F2F**&F4F*F5F*F**& F7F*F8F*F'*&F:F*F+F*F'F*F&F*F0F'F*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "numerator=0 [2]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "B 2:=eval(B1,g=a-3*j+2*h+4*k);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#B2G ,0*&%\"aG\"\"\")%\"xG\"\"&F(F(*&),&F*F(%\"yGF(\"\"$F(F/F(F(*(,**&\"\"# F(F'F(F(*&F4F(%\"jGF(!\"\"%\"hGF(*&F0F(%\"kGF(F(F()F*\"\"%F(F/F(F(*(,* F'F(*&F0F(F6F(F7*&F4F(F8F(F(*&F " 0 "" {MPLTEXT 1 0 11 "factor(B2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&),&% \"xG\"\"\"%\"yGF'\"\"#F',4*&%\"aGF')F&\"\"$F'F'**F)F')F&F)F'%\"jGF'F(F '!\"\"*(F0F'%\"hGF'F(F'F'**F.F'F0F'%\"kGF'F(F'F'*(F&F'F1F')F(F)F'F'**F )F'F&F'F6F'F8F'F2*&F&F'F(F'F'*$F8F'F'*&)F(F.F'F6F'F'F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 22 "polynomial factors [5]" }}}}{MARK "25 0 0 " 22 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }