[BACK]Return to ifplot CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2018 / lib

File: [local] / OpenXM_contrib2 / asir2018 / lib / ifplot (download)

Revision 1.1, Wed Sep 19 05:45:08 2018 UTC (5 years, 7 months ago) by noro
Branch: MAIN
CVS Tags: HEAD

Added asir2018 for implementing full-gmp asir.

/*
 * Copyright (c) 1994-2000 FUJITSU LABORATORIES LIMITED 
 * All rights reserved.
 * 
 * FUJITSU LABORATORIES LIMITED ("FLL") hereby grants you a limited,
 * non-exclusive and royalty-free license to use, copy, modify and
 * redistribute, solely for non-commercial and non-profit purposes, the
 * computer program, "Risa/Asir" ("SOFTWARE"), subject to the terms and
 * conditions of this Agreement. For the avoidance of doubt, you acquire
 * only a limited right to use the SOFTWARE hereunder, and FLL or any
 * third party developer retains all rights, including but not limited to
 * copyrights, in and to the SOFTWARE.
 * 
 * (1) FLL does not grant you a license in any way for commercial
 * purposes. You may use the SOFTWARE only for non-commercial and
 * non-profit purposes only, such as academic, research and internal
 * business use.
 * (2) The SOFTWARE is protected by the Copyright Law of Japan and
 * international copyright treaties. If you make copies of the SOFTWARE,
 * with or without modification, as permitted hereunder, you shall affix
 * to all such copies of the SOFTWARE the above copyright notice.
 * (3) An explicit reference to this SOFTWARE and its copyright owner
 * shall be made on your publication or presentation in any form of the
 * results obtained by use of the SOFTWARE.
 * (4) In the event that you modify the SOFTWARE, you shall notify FLL by
 * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification
 * for such modification or the source code of the modified part of the
 * SOFTWARE.
 * 
 * THE SOFTWARE IS PROVIDED AS IS WITHOUT ANY WARRANTY OF ANY KIND. FLL
 * MAKES ABSOLUTELY NO WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY, AND
 * EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF THIRD PARTIES'
 * RIGHTS. NO FLL DEALER, AGENT, EMPLOYEES IS AUTHORIZED TO MAKE ANY
 * MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS WARRANTY.
 * UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT,
 * OR OTHERWISE, SHALL FLL BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL
 * DAMAGES OF ANY CHARACTER, INCLUDING, WITHOUT LIMITATION, DAMAGES
 * ARISING OUT OF OR RELATING TO THE SOFTWARE OR THIS AGREEMENT, DAMAGES
 * FOR LOSS OF GOODWILL, WORK STOPPAGE, OR LOSS OF DATA, OR FOR ANY
 * DAMAGES, EVEN IF FLL SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
 * SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. EVEN IF A PART
 * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
 * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
 * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
 *
 * $OpenXM: OpenXM_contrib2/asir2018/lib/ifplot,v 1.1 2018/09/19 05:45:08 noro Exp $
*/
/*
 * data for ifplot() and conplot()
 * IS[0] - IS[4] : famous curves
 * H, D, C, S : hart, diamond, club, spade
 */

IS = newvect(5);
IS[0] = x^5-2*y*x^2+y^5;
IS[1] = x^5-x^3+y^2;
IS[2] = x^6+3*y^2*x^4+(3*y^4-4*y^2)*x^2+y^6;
IS[3] = x^4+(2*y^2+3*y)*x^2+y^4-y^3;
IS[4] = 2*x^4-3*x^2*y+y^2-2*y^3+y^4;

HD = 
(4096*b^6-49152*b^5+258048*b^4-688256*b^3+894720*b^2-333504*b+37249)*x^6+((-24576*b^5+245760*b^4-1032192*b^3+2064768*b^2-1789440*b+333504)*a*y+(6144*b^5-29184*b^4-9216*b^3+361632*b^2-645240*b+138960)*a)*x^5+(((61440*b^4-491520*b^3+1548288*b^2-2064768*b+894720)*a^2+36864*b^4-251904*b^3+476928*b^2-653184*b+605136)*y^2+((-30720*b^4+116736*b^3+27648*b^2-723264*b+645240)*a^2-73728*b^4+310272*b^3-186624*b^2-419904*b+579936)*y+(-5888*b^4+96384*b^3-390384*b^2+541376*b+4536)*a^2-4096*b^6+49152*b^5-221184*b^4+499072*b^3-400128*b^2-359424*b+224847)*x^4+
(((-81920*b^3+491520*b^2-1032192*b+688256)*a^3+(-147456*b^3+755712*b^2-953856*b+653184)*a)*y^3+((61440*b^3-175104*b^2-27648*b+361632)*a^3+(239616*b^3-760320*b^2+362880*b+297792)*a)*y^2+((23552*b^3-289152*b^2+780768*b-541376)*a^3+(16384*b^5-178176*b^4+732672*b^3-1810432*b^2+1940256*b-746568)*a)*y+(-12288*b^3+60288*b^2+2016*b-214752)*a^3+(2048*b^5-38400*b^4+216576*b^3-546848*b^2+845784*b-391176)*a)*x^3+
(((61440*b^2-245760*b+258048)*a^4+(221184*b^2-755712*b+476928)*a^2+98304*b^2-221184*b+150528)*y^4+((-61440*b^2+116736*b+9216)*a^4+(-276480*b^2+589824*b-176256)*a^2-61440*b^2+138240*b-111360)*y^3+((-35328*b^2+289152*b-390384)*a^4+(-24576*b^4+239616*b^3-930816*b^2+2096640*b-1403568)*a^2+86016*b^3-322560*b^2+725760*b-776256)*y^2+((36864*b^2-120576*b-2016)*a^4+(-6144*b^4+92160*b^3-340992*b^2+529920*b-592920)*a^2+21504*b^3-331008*b^2+744768*b-616320)*y+(-512*b^2-47232*b+139536)*a^4+(5888*b^4-53376*b^3+141552*b^2-221184*b+157464)*a^2+23296*b^3-168192*b^2+378432*b-101952)*x^2+
(((-24576*b+49152)*a^5+(-147456*b+251904)*a^3+(-196608*b+221184)*a)*y^5+((30720*b-29184)*a^5+(129024*b-139776)*a^3+(24576*b-92160)*a)*y^4+((23552*b-96384)*a^5+(16384*b^3-141312*b^2+548352*b-785280)*a^3+(-114688*b^2+602112*b-709632)*a)*y^3+((-36864*b+60288)*a^5+(6144*b^3-69120*b^2+114048*b-75360)*a^3+(-43008*b^2+219648*b-154368)*a)*y^2+((1024*b+47232)*a^5+(-11776*b^3+97536*b^2-262368*b+386496)*a^3+(82432*b^2-285696*b+345600)*a)*y+(6144*b-31104)*a^5+(-1536*b^3+25344*b^2-104544*b+68256)*a^3+(10752*b^2-124416*b+103680)*a)*x+
(4096*a^6+36864*a^4+98304*a^2+65536)*y^6+(-6144*a^6-18432*a^4+36864*a^2+49152)*y^5+(-5888*a^6+(-4096*b^2+30720*b-129024)*a^4+(28672*b-258048)*a^2-135168)*y^4+(12288*a^6+(-2048*b^2+15360*b+10368)*a^4+(14336*b-74496)*a^2-72704)*y^3+(-512*a^6+(5888*b^2-44160*b+117360)*a^4+(-41216*b+218880)*a^2+101376)*y^2+(-6144*a^6+(1536*b^2-11520*b+864)*a^4+(-10752*b+34560)*a^2+27648)*y+2304*a^6+(-2304*b^2+17280*b-32400)*a^4+(16128*b-62208)*a^2-27648$

H = subst(HD,a,0,b,1/2,x,x*4/5)$

DD =
(b^6+6*b^5+9*b^4-8*b^3-24*b^2+16)*x^6+(-6*b^5-30*b^4-36*b^3+24*b^2+48*b)*a*y*x^5+(((15*b^4+60*b^3+54*b^2-24*b-24)*a^2+9*b^4+24*b^3+48)*y^2+(-2*b^4-12*b^3-18*b^2+8*b+24)*a^2-b^6-6*b^5-9*b^4+16*b^3+48*b^2-48)*x^4+(((-20*b^3-60*b^2-36*b+8)*a^3+(-36*b^3-72*b^2)*a)*y^3+((8*b^3+36*b^2+36*b-8)*a^3+(4*b^5+24*b^4+36*b^3+8*b^2)*a)*y)*x^3+(((15*b^2+30*b+9)*a^4+(54*b^2+72*b)*a^2+24*b^2+48)*y^4+((-12*b^2-36*b-18)*a^4+(-6*b^4-36*b^3-72*b^2-72*b)*a^2-24*b^3-96)*y^2+(b^2+6*b+9)*a^4+(2*b^4+12*b^3+18*b^2)*a^2-8*b^3-24*b^2+48)*x^2+
(((-6*b-6)*a^5+(-36*b-24)*a^3-48*b*a)*y^5+((8*b+12)*a^5+(4*b^3+24*b^2+72*b+48)*a^3+(32*b^2+96*b)*a)*y^3+((-2*b-6)*a^5+(-4*b^3-24*b^2-36*b-24)*a^3+(-32*b^2-48*b)*a)*y)*x+(a^6+9*a^4+24*a^2+16)*y^6+(-2*a^6+(-b^2-6*b-27)*a^4+(-8*b-72)*a^2-48)*y^4+(a^6+(2*b^2+12*b+27)*a^4+(16*b+72)*a^2+48)*y^2+(-b^2-6*b-9)*a^4+(-8*b-24)*a^2-16
$

D = subst(DD,a,0,b,-3,y,y*2/3)$

SD = 
27491161623901748237840008704160000*x^8+(-231923107204332088437337010112000000*y^2-438989873749821076461255606342024000*y+939465523571646883942936787742792000)*x^6+(3511783290739984814090842065727200000*y^4-6695504233047059251310633318983740000*y^3+5672487523985956633412121711440497200*y^2-975546638559767910027208867294219200*y-933149923531793481999247073173187856)*x^4+
(-10374421588810087431608403078310200000*y^6-25168345996045131722129229159155213625*y^5+80344688276418165741171721697817980625*y^4-52088334892965598574733495860576180430*y^3+18094768405637715235804133836185462270*y^2-2338373919731770865681064753418019385*y+93863302268748928351451123151105585)*x^2+
144320062968080911619503151312102900625*y^8-432299485137473633841588790235214637500*y^7+421058174691688692505412064005937240000*y^6-110941181851553554221810850474899427500*y^5-35434055310693969890792736120626583750*y^4+15140765067799208121228656106780367500*y^3-1951340418347865054725648736019755000*y^2+109360201377745320614463122757697500*y-2300210877534557840308980817801875$

SS = subst(SD,y,1/2*y,y,y+1/2)$

S =
269750638566396588009608754799730092188959880075367266378947710774141859273199354322761506264081254327599077919817728000*x^8+
(-4234545193089399262470505539918068632176586049454217791173833870417288329765211597693806732619818945317280153600000000000*y^2-3356667568168331576389085025603405375438101300383881912937759584500537262247944504172954986950950632015502614184014643200*y+1886626062518150329195854701922857853634684510236727669748536751610955937634863925892347128456135390594075671376581754880)*x^6+
(27429469175787785740605736736483794925731307101090349220529116889012411895667926805705501340722148898007692083200000000000*y^4-13384201636627312445814992392358532538604266897577359392094450591688715643575714615949850120299987826627526811364052172800*y^3-
192460017626073235044229924170970564929451180428983848486064680752849396334876194300066909432449786598973072006298775552000*y^2-250885569925613048723687158590117251835121605165661504485099087058012218400210779782907187004015933396253644571917879402496*y-101100208946326934193196757599453290308907784623662081182613671219106877926628354315435995833909027351865593309167146629632)*x^4+
(-39011265419389172818650442079898550839918615982296961694253569361646503020677690673787354747374860943427531571200000000000*y^6+489021639206469908028209203606848426644148870910662316865311313356836712779181009803378623187892614341352496025488423321600*y^5+2438434008867213686533940898179859788795923248286940459698210339908611004178911765518521142835427504235392834919751650918400*y^4+
4620234306420897346046072736780343990386023966896957527607429011022721487645574218165575510620373496809772829855025501537280*y^3+4738913158728256427257835651689970075227654800135782557793096788866382686211497063717450997770280524402624208918086367914240*y^2+2656224965995950178022518095453843656799614302121833808843665117088672018491942701216506163928449245454345688664113383352416*y+629673338274437150644161379479217000249123329764660638251543653874610157741250378301052331635480872812630722214957481475472)*x^2+
128886318458470047782392306455548599025593578029136018489204796395248309591429716317133552813348868491567574476800000000000*y^8-41784443044817355458054212191203634265532862215571183587324301100385984927846131020764399831945892353884620960000000000000*y^7-904632926060988989076358230496032718640734593976840664833957999383246190955071267994130166919818652656788368024760000000000*y^6-
176400101722928841848214757205871302625170733930647852397097866519057477537446076341707125391064857424881518337740000000000*y^5+2245965063028965383748889055733001518658651846814311240251281377927597773766800149196014302383668110610788374220358625000000*y^4+1501582735962003459862865790833281763933639913789656095529160699021642815884446503088297573014663017655207888747861343750000*y^3-
1685607467274396540891130477097948815187725342014856144199212457581794195971272393147459800122239658669024715424664132812500*y^2-2111585110118202410968282774414326712892791976349776858099122740454916601697535926605935415024089519703604885810941685546875*y-612885250715364334840712503524600736305367086705428099671679116052014211177187744342224416166789548083577072426045681640625$

CC =
138917140681816380415260656139117187263190999227962450188659829842455860012289880248747325740296036780052864446143556580948732349250539349003286930258093526149696982470270522849560479945459793463588189436400044330409544737896909168967680000000*x^10+(9646247706144465709379945247639564393817518489587339498821595395485042023070505918002190651065728572790841019659034051414292060108662490409410605062072911492531716733178091486515370072663679371864005838136953374505929208012235534657126400000000*y^2-
13389563591481304634057586974546017880897683830510928958916254526659606958729009004089024524134370831328355746894470128285668853663344044547963897729698870549990111369725274529740569702177646998350961266774600205418903488963961973430969958400000*y-27551151787377637450420238064184068319771658409811736310607145391323641937436773205598970783916410571260296041415797888698248567235836812030408424795905185518934454076654078344296891273560234980625937747600754500449228527259693039638398312448000)*x^8+(309470919682768296518686568872340473677025597647969151136217799747107486122355792161715800210691343406717660473307554125322917646442290172068395912715873968987430097425928829709574338177128611155529455332635110948272018847503073530504806400000000*y^4+
710476883051055343353048583701152000063070010492410129409752823955484676144455406795660332448873654098455672368883838871421730676674526037532834422770358068092203952037380500000948524277544108256407170204745351335245020567206386993564125757440000*y^3+3100000076609272125076810196716593694116734523766900435499619206643104361102273670965933643032015047572934323704034214448788354090409497427089367344937898200999637356692800162974070614696608055844734113757285637768532649118432796207039922413568000*y^2+5214440199747020724512036431480345104878541898370565302502742821809236978966131185168154554590337674354000937558043302322960593758484772466116032948128124060946731574214858528221062895921115048530757127559890618687870356852043948623192789450750080*y+
2887018699880669864784438010842845032315377221187395889294606273315982863086672126521750206068930795387355815248442271687253098726549571908415673218052266903275621536297003962280576177746584256101064104409095337945665814148084360336983076329523117)*x^6+(6497224631163339190063688883872493050713679789178533721587540960284887964928098773037541736034352560618855533175696629472852785500475261667737412285882215111615232526398317306169351696989933459296982837069257243847169714681390598215591526400000000*y^6+33773094616650557575569281569973876154748544785220646137329475054060031566259154617459536660096651689151661049633416017762465427733393706402959074320771995184920934907211937378240082143091735317609745733453624883104837515955118294840020901560320000*y^5+
101633679436462469995407959343770069627641238717916893303788291785801816936455212789738177091705958476177872269565860213194515824713333786054475984499127124792928338628407355998706698120234378598091277437512957658756819882106734035953954750878515200*y^4-7995887281102792109222218810905898691522120593005823073046572013515484303135121609703342010514919563220584316921942156533867118890806163419394044077724939036170745566237215091477479794328275359579918353296501621389365011012467994809431012849864704*y^3-277212952737556846415529955424140708442773950213211593713274724206704690143870862888669761668047249826676655021952608152842936472923210697035175237658434289002199592749748481894811255010146255739547830551882179329520229629807598397320095981402483764*y^2-
301049246615724947541572164669986539450164685613829064902491477277132270264846208033922723618533846924792016436439185576667688048660536267558828425389760953327274112558150964087048860805197600906502029538959172457721709297392236586709059960201142000*y-110428620895287346779562448872846368419094693589344529315187587918619858481216639550520609716037400024595616815218359340919009202608884458764382538934674280453181302064753712415352023748095198904951773920919199200056864918209717770138847626121512148)*x^4+
(77376089781567264562954021336248421752353197557967446895912299661442759011968522668479777802613986717581173313226769422648177547978705489194118048219206777224951879598238643625856295492696722606720896413143437933271230910342966587465033318400000000*y^8+438013946901838013469891078772410923383456444666328757068521583612423186656163981982288494668486612310611722312238017709510443055664690589421794746746792239960373166891037546384072052767855573159850235369100865052442676527177320302192123533066240000*y^7+843904076035204248549186808143838936720586011022041924375618613073431497295395118188485781619073544634936995091376482314960737987761919573970368744660784141088456828101575009161264413560799490717229484291362351404574206296226977123191327024852172800*y^6+
1501541176797822123270460325041706556131921390227161872214838758594907866923430347551664212731032897710595537797501015828663633082577425867218355087981926617386982500321973134052441466623489508657102162158155235140984713836666625984865398629241309824*y^5+4007527923252385376284114318112978161418196781275145557401983588984647354869743748446545665248473795891331183182821162008465021977762843042581918248007931131704052352456777977200860299213983119747591845623238609959996119939055041306501133660963804032*y^4+5564648364719491517119644524694850791537489944396257249531514159458162595692188508024643325447465218936147374825173101547380783065157692475860821276624657690258493634489026449804900229156384369364017686276534462669143567770598115709578716636660819136*y^3+
2592458827102311235486159141883692380127391216360346147739339268499539700411602794760444226440806690404315171286269339069582298069146596208681683262113422858278473087304918675739025166168825058533474501186638220748225222694654205321893648616676428816*y^2)*x^2+368399717294724870647958439730510248491205605302443354400793916023580723351622843903647467904150160341820383924748287093413398749493621860618180392940591405007133688230969716053281895882188595882668963003882623867403765428930828504549000478720000000*y^10+
2128653135229711126994307403368151200688381001839208811751769766455338910368462151395347255752928421872700830872384021575766835046616653387933695394459997343135763815563912433812174415897949696134896842697149441063476809061206494964040326342246400000*y^9+2233803685719293777044244304608309575027768889578679495129338426472213126706215433785707108927528653222733252277160630197284149841187874237512278128049946270220430069921864438620613772075998213306944112325183640848268248184086271166686894767726592000*y^8-
9831849501859096067188695798861753036277133113734365689655243506798008499920318225464778183511374770573270519363067039301120332628833224547895865941797475382656561171618909479309911583576584760738393658739674365946930720867231512204758204942317824000*y^7-30322775704227365727621146881279616034140390592457657944093938214589352365599845572403174701432108038916059169284156855073967327838462828696273434248708997196030418162516311819765460186874498071583522983663510370425678510613267722511074795712067701760*y^6-
31444617578836886833527701064796577380890448091360811368186535320713729764787198393289032416630520643131449680692552303479964522108834427043891389023064724426079994967450191509854673395172831394981057250249575899122206883745889905134493998858146919936*y^5-11450444241944189638911596339622079184238159073984460023875881077492612684649899511630785072057357279383325647411641616724688129560711672902999611959184660850512398774266512110894121107550905395936952422037805881808826515576263433783467238700134055168*y^4$

C = subst(CC,x,14/3*x,y,4/3*(y+1/2))$

CCC = 
9412065037800102416283339270265124983955459305716764526362532668832071107993171145742287946453637652455927408400442450817859791761567406757160971274770583598883173330825242338251702641243004278125580044777326460312192364463928858262896640000000*x^10+
(53352086078428649849410067542500306770743805967100346857679935026880232423896131497098535946635140748275268849472188333748183246033096243252048778614921782082150729585972654147640565340164547636976229820806853231835262780117055796622131200000000*y^2-2189807338086391595569552500060952587053993626130173268194898565189248293794572519863343560885212329827540174682650716918294961755590163761727389745310569828919362021776632790542538609609395467294424322850747620272781322251971648721151590400000*y-100147619638269674772555811557561543314391441135365575203739663145654901613785724662736437094841335351459063873002965873401855501564228113455146544446979640938348998312527501447771739046477676804838631498051656675048361774296517007946681122816000)*x^8+
(139725847334724310244768539032308926386805208109135983581784403413156113663709140729099197273257467217142365222516285460463257350069182158817476814206814349313548685963029595071694939282795281227187902231313207059537278350900858595783475200000000*y^4+520036459300493816122315434450193133218247880088717725270575054091661535651466673177363798127085907250693000453543500485852391754673653557857712374748564764012817228700621899138420066680737773715804687494921136264342711814506525485683903037440000*y^3+
1357767524706564639788208647054850105578398172735569548533089266593784637388562945266919731257127434037102923945978083350474394709232928667344954571273044212778969444377575799077629434511925308471270349643293960542073584892153337466797288718336000*y^2+2030829808612274666059244232443901643596884752127516446847763096171471205142032974589999729791839389465559296704324944015928271236545093381430129258863241921273127356160263891920816691461077247089583571339643639242703353416637005721510439888017920*y+1144675957923733325676766780195399562344859523982333965731941912744851001374423281904407450742077953698391403917159659702262860715426279034887186763719328449436415468600198378502833444267701135364902555221991444355607298729174231994241786491179691)*x^6+
(239468668693490959602102631720312165134463812551517781769630419441087185548226366612332819987012814385549007161642491760436283063473587011761260849467062170186588853148755603121240187802530031397621222515888112072112507210659179086951219200000000*y^6+1651989012436432574232907191339892579586052863528269511074612629000226040065729049310018801715140897796839789944721720022394169296213741149651293943079691074574425811821415925963381618221485379940417377488721238286830816533663130984970421534720000*y^5+5339044869273968820944195029709958450756904937536959313880819402509127054239631383251472506877591230544795338514946884572570616297909555550702633011019946034063182916646117959801545058072651562682636925695006702061632940542916381526479844828774400*y^4+
7022460213983931832961956404807803203514716810811734961283687506371866885839381719860524547123648731656087384726470650380876377167270087647146359473388690045661407130430025888529184862051994048708692896754097715950678231999703361522731026672451584*y^3+1132803292152823217277919057042840683438097823501964466205889578842225071014337858625570019949563955742259752219831832652734040491972499037676700147066026259713259695978460805770413207081625304753267787566756761530970607650632602779735177673391184*y^2-4568949414346406033665025099285851088876816453465774286113041033798885968121515825276536573336384103476108390452195769241857703076798974395978508804686471059885004802153453179121072560685353646464951093852178395667685358233352057504464268033342304*y-2700061346229258168007156613879958092274463993906833861868327156025702470023464936957564671963395877391482446678417344279158219749174634811373389922398209255307854367836627379432168079391100812813068266245728306239729305331040529707146113706982831)*x^4+
(232804573451023504793240670144989217086677359740198390651203370886226521513319383274380214798439281689076116793617626661412341592326520096152696169002091985124806829337265766168496361626281359690023918391025727650720901717732831148585779200000000*y^8+1919621013190156981900504477897540118590015026664154920500589056816010813439600069672588607730037845341520071007379039321713999247142791198596839473874149732740604086941147596245464221958660246601816475562298736887128709250736864150050140323840000*y^7+6517278731224401295928734121421543130475929519981896158171725043588427704716529024524973298664108744790405141470707395252341485223276059800233602976464872104080352406220484931594234048989483056227386152634462280268844008991014943932679406066073600*y^6+
13009382707904560993306548254626887371605531124566323649590617948583745047537682991323493601152489738823276058604541379083004326677163287788087242241953471136528825866833710510896873695531191122819143456262489264996570887292662563002407040036642816*y^5+19278587085254920979912872093905710187649304328736193326518196400450851947936111764586290633544211292520290081902334996818443546774741824457960978049074533072818010345768993514525811056966423141422738132930036209575948372520727611467776576153081856*y^4+22508244642364272306472351602418560942074089602979857753678915589935126168985358347433799195400118482732582848268631893804865637135258739526387496682979301275682162117941190823048836351195503605285478046792285776640848391523879471847079035800059648*y^3+
17542403995016223862124410092627814250568865109573535288303142609283083517631166551971152479596588293831748101921779123249094409225660379426408246140743430122052865535152168370716489192862790609764315958191465445335353152730036959358808925658399600*y^2+7261663459277895603959133620576404046772592821718738480449132736388712707013653134832998527412401990079721701916480176191567933836202135508027664203630570113101853967185969492757596685606319444181781880984015683512811248537408369686888002612913712*y+1172647994099134615160395988740160978771485921144764601382461085513321610455890036740350896663778648564488519861910551644046645741992893205700164136467941587807267712680516809528856793717836995421408433142454770439413828850231987742265821159939484)*x^2+
90483195262432604405091309204385392624935722805440502660757532987668570940961138574013459942291142548605221288797844983312843351223117084524243399794271157183602177720677426347058306956166462436798382709882305866591857299071713290024386560000000*y^10+844532191876921666986300441069434087739485818703213687108571294415382830123985764562801883116194380776802237643924542889541991347612632093596117018166114561808868758245750600439669893828400178746111990289541904166250773081464632888745420390400000*y^9+3091073305249239140156416267529939389383262186110326107311616514657074739710984787749230089660673030860620813294992872065728580367377224901045783854247734838844406452688084284509561646251494059091318760643786170907227446532449889549977579945984000*y^8+
5102001350700896950287010689492718677485447806533639288533581610912726622605799493908132608537034230667453520170333034640883426833530096658103749797167844321892167576966522824780289478286268266520142977579188151059845596943499021568260209049600000*y^7+1543013694688741189040311351992871161370883183718217247229848785044456818825742262714462762733187755423805687547886062845480551147533729747878186019299323442592119447360047233247578289559993403609685661713891871520394699289022276372609129230827520*y^6-8289830474492578051367089320631920928076510845877802805872369932619536902187338199935606300184422969089382357130692912901306390162146063356317273765880173857097434325983628722843263735304116151423358070146833232662127832150686260827969451697627136*y^5-
15185159553644963594302353325131372855613779511248617999899001284701067175104839823330716256439858944524259681599872367960037192317745319275353606797642423950206313495959772156446516640084853215398777994212322588530254773310889276154515296704920576*y^4-12563078861088601792355058610313214597759980096524318615999876285208109419413521752974687132748382831974752945559066266585682584918698006009093820467743124289864661044554888179857778143698898948887725094565189785428241703356166611732773085341632512*y^3-
5658279147902793488608978280766037370476116099396314978477478054056318309398173771300024443508844995680937289850396219029204874034964026670659775986197236720382054794984855963027856506503773792048181143256718029895252370690198328877416434983770624*y^2-1341425338993791125724653157091768250642973036028868417582561476891966600888011004205040912116134351351352804339028041465644401437547170532088016606947348154061776373984861428977203093141000408107168357825548261094566304450426708813443632947493888*y-131276064466259774971069116933510075074697211935232026522949241343807615026218179490546754920436873825710380171695490157390669350915512209850028240559198628978216782589074609119750582902306040401458966273349523689756459627719122997454725940497344$

def plot_reverse(F,X,A,Y,B)
{
	T = uc();
	G = nm(subst(F,X,X/T+A,Y,-Y/T+B));
	while ( 1 ) {
		if ( !(Q = tdiv(G,T)) )
			break;
		else
			G = Q;
	}
	return subst(G,T,X^2+y^2);
}
end;