P[9(0,P[9(0,-8128738628696425240876421113000306319731006274790811575447341572289619828615283705480216382356568431153519493855232)(1,-29337621688334791206648792518856056782932962122356665803761522980849016163649583584031048675141663346661839591650048)(2,14746856533501990537552936451595174746737048203118313420504924873190434624709724693242650948108492507007981162956128)(3,67501232417746111093483571314951709958127463496792607864384784355126280085044063396806620894836529634271842752866352)(4,-49133557518330748695721160770959859957824026856406500308774438173736775102991269933491334273541203336389213962336764)(5,-13268879297851860459572030703298600480618836336746436430317422147381613558812483707524540417903879077642531113212712)(6,17365228213904795660799083957538760681077667794919875745682480792140028772724105637879534855535118473687645068332671)(7,-3356384526653341190078254903497100842848157354544198130803603870630099917872000128072858452500033255290289092673374)(8,-3844030775988788677251689610119218115793719775677394859378994513228097348365768790219073201062557740381240548799)(9,2612646738370889042232740582493497196240474365619947903215985040560949261166096893748920521584195256495410000386)])(1,P[8(0,11279866695423667066526794556370838418069343208961784816209403898931316978534817752167242281135460573407413146096896)(1,54466546984776288369156352536021793947005351435178425848555858051141862262178016524140248421753123380554862417430080)(2,6837808976466415602037096272031708909268061872551964246690891330499761361082519212571855460779613554968818408221240)(3,-145189804696680239295939788710580810086601071815112239366642381067597674084258234133621843974735628850300490632180960)(4,85960592140630476272709058395989117599445731625743336238389797105891552779189430244294800295073573284036038886508632)(5,7407177424689174378240361891757844822542671619063721042256146681460761896699163335832034906197661253208902454145611)(6,-11879241602006352382223091567297699725841606770563818799681173301015641404423084496656191080725754116462099564779931)(7,1480427980208238095486690346619113047954448819136594767033969903866610162547428590314996804234772920566005355874591)(8,-11194481124039804780354159308758379530100599140607779416454807220734450955272593194352119893015694449629360118065)])(2,P[7(0,-1964837511499203764943428440322932086427405886378817415298348588666266419063882315634728749253589993509289436523168)(1,-31271480848151535418497356341791127429081285199920244548393503781525915768893856511248142417435559089479873588259408)(2,-44004650339927634362037918584425691093157297088193145642245529622107129797350341843924137316294485187637145874407192)(3,108317481260361210050285616085940536335316877394832910962567951503445043864291876781865890894540175171866532802847488)(4,-49271822863763645855596317065789525791514413393479819595344068235372776937471216505607911892103723553259196990738562)(5,12026711727281861497937500497346342121870902097580763723033222023432859108560966493245760316678859988867565579314493)(6,-7633688805170429314545839770972067718235663780945658398233261269987125562577837558561629828534401032616348466144915)(7,1855755913685916648908563589072283157925379633015960189016735745951353668706334201367852214507890209881930288789725)])(3,P[6(0,649989733430249156670498064051797929669533150425995284285757514208519240844322728254289994771768953902030119321832)(1,10246490874056403257857092100617473450327605561650942564374859972009889040659014817966567030598717892647698336949536)(2,16781406993679271571808759878218327302490435357130994845256596367256396520932938139344266249300273639682926406008744)(3,-17139581359569427586263260330402414563537826017849940652175203804491734188223881134807784821268976794651713329930722)(4,966950018103884327992740454469421526445059505900268199722987531163661294028473494909946895713950382602649531062530)(5,-4154815405059835465705494994527597261581408242953356054990999784742581058457203090592326137812278947480983498940313)(6,2362191916288734640869213557608113353371507115593964761613134756200529474523369240153935938014446757866018473258139)])(4,P[5(0,-3052878649412754707380027372943629746807205244523935759169793485562151925066343511794382306828533435854282291304876)(1,-6588667125710638937593768052897201066520599684915998247199404254943677263327048928944769026688159848952926307491288)(2,11701466378812687911214789406509812288847551152673114919437628327525782338823763685057383168640572423228471605768291)(3,-19504034873947802004287321134680968558310357088312526731645919892954517572255870268656922462091079927741269429819904)(4,13511888763015087699459185201718945020447887912131887600586062017165849779019582135782996476608643129564558250733387)(5,-2103543548138553807560767423599027925845306446855078436174105976237349508735305054818581549285429068234696216577273)])(5,P[4(0,1055330327584780484709639188342961244340829384980574760356434788658888423885892186002169982389671116035348998048960)(1,-662356012151255181983492853590412248092904277762339446968309466799715241338196574677061751278254614741992523414873)(2,-3587653373299099172383513252967164851531585458570243586316831795874675296670424375532680569771930844625100932527707)(3,6056175269126187054752164366839553821288113959438556482379815674084989878423671652265446351614696479464864320999609)(4,-2810443186919937793195035732581302914942899362550854369291274060698832718609436723449017773084219782016026161204239)])(6,P[3(0,644659497372317339912769088403217132023414339905473091061154675368561146628325908878762503564067056706885879402160)(1,3120603770609746973394937369588660954933972764982419077809818580541914109568350470684566402917904247358928114693809)(2,-2466866405997731071774697052910230797646109176075924417790255501314285716799726528386555111848706724862287307053221)(3,587910229377936797095566523817234593237314307145664624939175627711248712530392103341865582576584050235589036427835)])(7,P[2(0,-512918559631419168282706900130096077711565179039719083152974085599272354739851447147538225498375997101814984323580)(1,-265105924352141523093471076739282086238520472871566274263444327243726909647064426001192227929830025653851265162063)(2,568572672912263016492316071143039020208545665938530314068162660807208140163069844356658751223818677412322067009633)])(8,P[1(0,11817894065480332046142813280783903947873861210825107725963374759253664540031348617289138009179004635194192398236)(1,-226851192056023028416850318694440375517106502983596970919732748415752502999716921728526826907726577348760281026577)])(9,P[0(0,17709201363308501616740115947365602626188639248630773429743480190771073051971056137111764066921152932033870738772)])]



> impose_conditions:=proc(f)
> local eqns,M,N,s,g,m,h;
> m:=0;
> while(m<3) do
> h:=RandPoly(4,2^4):
> m:=nops([fsolve(h)]);
> od:
> print(fsolve(h));
> M:=eval(h,x=t);
> m:=0;
> while(m<3) do
> h:=RandPoly(4,2^8):
> m:=nops([fsolve(h)]);
> od:
> print(fsolve(h));
> N:=eval(h,x=t);
> eqns:=[];
> eqns:=[op(eqns),get_eqns(f,t,3*t-2*t^2,M)]:
> eqns:=[op(eqns),get_eqns(diff(f,x),t,3*t-2*t^2,M)]:
> eqns:=[op(eqns),get_eqns(diff(f,y),t,3*t-2*t^2,M)]:
> eqns:=[op(eqns),get_eqns(diff(diff(f,y),y),t,3*t-2*t^2,M)]:
> eqns:=[op(eqns),get_eqns(diff(diff(f,y),x),t,3*t-2*t^2,M)]:
> eqns:=[op(eqns),get_eqns(f,t,-t,N)]:
> eqns:=[op(eqns),get_eqns(diff(f,y),t,-t,N)]:
> eqns:=[op(eqns),get_eqns(diff(diff(f,y),y),t,-t,N)]:
> s:=solve(eqns);
> g:=eval(f,s);
> return g:
> end proc:
> f:=create_curve(9,8,8,impose_conditions):
17709201363308501616740115947365602626188639248630773429743480190771073051971056137111764066921152932033870738772*y^9 + ((-226851192056023028416850318694440375517106502983596970919732748415752502999716921728526826907726577348760281026577)*x + 11817894065480332046142813280783903947873861210825107725963374759253664540031348617289138009179004635194192398236)*y^8 + (568572672912263016492316071143039020208545665938530314068162660807208140163069844356658751223818677412322067009633*x^2 + (-265105924352141523093471076739282086238520472871566274263444327243726909647064426001192227929830025653851265162063)*x + (-512918559631419168282706900130096077711565179039719083152974085599272354739851447147538225498375997101814984323580))*y^7 + (587910229377936797095566523817234593237314307145664624939175627711248712530392103341865582576584050235589036427835*x^3 + (-2466866405997731071774697052910230797646109176075924417790255501314285716799726528386555111848706724862287307053221)*x^2 + 3120603770609746973394937369588660954933972764982419077809818580541914109568350470684566402917904247358928114693809*x + 644659497372317339912769088403217132023414339905473091061154675368561146628325908878762503564067056706885879402160)*y^6 + ((-2810443186919937793195035732581302914942899362550854369291274060698832718609436723449017773084219782016026161204239)*x^4 + 6056175269126187054752164366839553821288113959438556482379815674084989878423671652265446351614696479464864320999609*x^3 + (-3587653373299099172383513252967164851531585458570243586316831795874675296670424375532680569771930844625100932527707)*x^2 + (-662356012151255181983492853590412248092904277762339446968309466799715241338196574677061751278254614741992523414873)*x + 1055330327584780484709639188342961244340829384980574760356434788658888423885892186002169982389671116035348998048960)*y^5 + ((-2103543548138553807560767423599027925845306446855078436174105976237349508735305054818581549285429068234696216577273)*x^5 + 13511888763015087699459185201718945020447887912131887600586062017165849779019582135782996476608643129564558250733387*x^4 + (-19504034873947802004287321134680968558310357088312526731645919892954517572255870268656922462091079927741269429819904)*x^3 + 11701466378812687911214789406509812288847551152673114919437628327525782338823763685057383168640572423228471605768291*x^2 + (-6588667125710638937593768052897201066520599684915998247199404254943677263327048928944769026688159848952926307491288)*x + (-3052878649412754707380027372943629746807205244523935759169793485562151925066343511794382306828533435854282291304876))*y^4 + (2362191916288734640869213557608113353371507115593964761613134756200529474523369240153935938014446757866018473258139*x^6 + (-4154815405059835465705494994527597261581408242953356054990999784742581058457203090592326137812278947480983498940313)*x^5 + 966950018103884327992740454469421526445059505900268199722987531163661294028473494909946895713950382602649531062530*x^4 + (-17139581359569427586263260330402414563537826017849940652175203804491734188223881134807784821268976794651713329930722)*x^3 + 16781406993679271571808759878218327302490435357130994845256596367256396520932938139344266249300273639682926406008744*x^2 + 10246490874056403257857092100617473450327605561650942564374859972009889040659014817966567030598717892647698336949536*x + 649989733430249156670498064051797929669533150425995284285757514208519240844322728254289994771768953902030119321832)*y^3 + (1855755913685916648908563589072283157925379633015960189016735745951353668706334201367852214507890209881930288789725*x^7 + (-7633688805170429314545839770972067718235663780945658398233261269987125562577837558561629828534401032616348466144915)*x^6 + 12026711727281861497937500497346342121870902097580763723033222023432859108560966493245760316678859988867565579314493*x^5 + (-49271822863763645855596317065789525791514413393479819595344068235372776937471216505607911892103723553259196990738562)*x^4 + 108317481260361210050285616085940536335316877394832910962567951503445043864291876781865890894540175171866532802847488*x^3 + (-44004650339927634362037918584425691093157297088193145642245529622107129797350341843924137316294485187637145874407192)*x^2 + (-31271480848151535418497356341791127429081285199920244548393503781525915768893856511248142417435559089479873588259408)*x + (-1964837511499203764943428440322932086427405886378817415298348588666266419063882315634728749253589993509289436523168))*y^2 + ((-11194481124039804780354159308758379530100599140607779416454807220734450955272593194352119893015694449629360118065)*x^8 + 1480427980208238095486690346619113047954448819136594767033969903866610162547428590314996804234772920566005355874591*x^7 + (-11879241602006352382223091567297699725841606770563818799681173301015641404423084496656191080725754116462099564779931)*x^6 + 7407177424689174378240361891757844822542671619063721042256146681460761896699163335832034906197661253208902454145611*x^5 + 85960592140630476272709058395989117599445731625743336238389797105891552779189430244294800295073573284036038886508632*x^4 + (-145189804696680239295939788710580810086601071815112239366642381067597674084258234133621843974735628850300490632180960)*x^3 + 6837808976466415602037096272031708909268061872551964246690891330499761361082519212571855460779613554968818408221240*x^2 + 54466546984776288369156352536021793947005351435178425848555858051141862262178016524140248421753123380554862417430080*x + 11279866695423667066526794556370838418069343208961784816209403898931316978534817752167242281135460573407413146096896)*y + (2612646738370889042232740582493497196240474365619947903215985040560949261166096893748920521584195256495410000386*x^9 + (-3844030775988788677251689610119218115793719775677394859378994513228097348365768790219073201062557740381240548799)*x^8 + (-3356384526653341190078254903497100842848157354544198130803603870630099917872000128072858452500033255290289092673374)*x^7 + 17365228213904795660799083957538760681077667794919875745682480792140028772724105637879534855535118473687645068332671*x^6 + (-13268879297851860459572030703298600480618836336746436430317422147381613558812483707524540417903879077642531113212712)*x^5 + (-49133557518330748695721160770959859957824026856406500308774438173736775102991269933491334273541203336389213962336764)*x^4 + 67501232417746111093483571314951709958127463496792607864384784355126280085044063396806620894836529634271842752866352*x^3 + 14746856533501990537552936451595174746737048203118313420504924873190434624709724693242650948108492507007981162956128*x^2 + (-29337621688334791206648792518856056782932962122356665803761522980849016163649583584031048675141663346661839591650048)*x + (-8128738628696425240876421113000306319731006274790811575447341572289619828615283705480216382356568431153519493855232))
