问题
I have a numerical computation problem which requires solving nonlinear equations (with long integers) in multiple precision.
I tried an MPFR C++ wrapper from this link by Pavel: mpfr C++ wrapper by Pavel The wrapper can be downloaded here: mpfrc++-3.5.6.zip
However, there is precision loss in the solution when handling very long integers (equations with small integers worked well).
I tried three options as in the sample code below:
- to use the code immediately does not work with "constant integer too long" error.
- below the two options "worked" with precision loss (a) write them into double with a dot suffix; (b) use "" quotation mark to write them as strings
How can I handle such equations in multiple precision without precision loss?
Below is a sample of my nonlinear equations with the long integers:
#include <Eigen/Dense>
#include "Eigen/Eigen"
#include "Eigen/LU"
#include "Eigen/SVD"
#include "mpreal.h"
using namespace Eigen;
using namespace std;
using namespace mpfr;
VectorXmp testfun126(VectorXmp x0)
{
VectorXmp value(3);
mpreal x,y,z;
x=x0(0);
y=x0(1);
z=x0(2);
// Working option 1: write all the long integers into "double" ( but there are precision loss )
value(0)=(256.*((256.*(-24610976415716501050652227.*x+256.*(-10153609683556422184100.+374519398571124540883.*y-4145573659500944095488.*z))*(29427736469514379027531261659072347.+58899562724319710108573382000184640.*y-1732944474195510410991057714955859184.*z))/pow(5042560366642267.*x-256.*(2446745837411900.+4901398098088043.*y-144207654645973248.*z),3)-(256.*(-308518681989548429992935348850261.+41445095210006425938788783390458.*y-1638970396838251453451269879637336.*z)*(-801790542801929135637671.-732048260009923946735424.*x+56975701334774517040256.*y-187552638032246240630656.*z))/pow(-3075770275504817.+198931044892562752.*x+14199788245258112.*y-1122852841901814912.*z,3)+(5*(-89303793175477833893354121208000.+6533090911353242906294143748495.*y-32276910383172707359896832089932.*z)*(-61468981380127448102256.-5328427636421850183140.*x+4647710007810227520885.*y-13344414478836548348450.*z))/pow(-46366672189358032.-18896234711237580.*x+3927118781169095.*y+14705346416259850.*z,3)-(3*(9101665097092871812176.+3063507166600182944940.*x+6945927557350563805665.*y+1052001549322007294950.*z)*(19493858980629008651267653094056.+93282964805436900100617577630195.*y+42271355681070699741325611572830.*z))/pow(46366672189358032.+18896234711237580.*x-3927118781169095.*y-14705346416259850.*z,3)-(4*(39553725461800043367392.+17203831108841472538824.*x+45483386678520344593037.*y+2703260049547565568088.*z)*(52830583937680669669892057655944.+303023948138837354463602341532495.*y+134962043561465977901954677856080.*z))/pow(92856945980914656.+51329763147513032.*x-8586501277743859.*y-56199770659759016.*z,3)-((22670037111266004087968.+12461845278544574559640.*x+39219302812923818032157.*y-46563087562792926056.*z)*(95973949246309465842551069546976.+723429769797021053206211106031819.*y+317530466286898645427564085427048.*z))/pow(50159316775994592.+36243094308305160.*x-4827156544231217.*y-52318895858217464.*z,3)-(80.*(4157117722725769078952.+4534359335248895646832.*x+26193979470458655189977.*y-2382852476120229696128.*z)*(205429639975670471114284923188348.+2095815907391732802212116237430935.*y+883539023887333564964405237094400.*z))/pow(45070329471431608.+130124049256651728.*x-5583613021604317.*y-387630670566282112.*z,3)-(16.*(9439334964924689507817.+17499514376929345709248.*x+187907876794815451253888.*y-21704870055089718153088.*z)*(943164674716649969807523653958385.+18130967224506023673179633045358720.*y+7486136216172114262568716503454336.*z))/pow(-3075770275504817.+198931044892562752.*x+14199788245258112.*y-1122852841901814912.*z,3)+(80.*(2304705299858575630109.*x-256.*(204828849006588248100.+19508530860149228990861.*y-2445924471668591306496.*z))*(-179928369646271075844345534739549.+3401432279430696137250330740801392.*y+12500875943051297916024009205116096.*z))/pow(5042560366642267.*x-256.*(2446745837411900.+4901398098088043.*y-144207654645973248.*z),3)+(80.*(-805507884940017483975376678503744.+52529278437993151034132605337909.*y-620040027953848498781390188900552.*z)*(-716026618045942942760.*x+243780804476456624597.*y-8*(408351630952413337484.+89777022692195474597.*z)))/pow(-50159316775994592.-36243094308305160.*x+4827156544231217.*y+52318895858217464.*z,3)+(768.*(61889933231497708820968.+30294916915069669525488.*x-4484037822343607626207.*y+13934625423713945278848.*z)*(16858970779944867265671037333379.*y-176.*(1546216290476124632111328928258.+3134171189636832381705249359145.*z)))/pow(45070329471431608.+130124049256651728.*x-5583613021604317.*y-387630670566282112.*z,3)-(40.*(1717566388539311579248.*x+7025931019459451548321.*y+48.*(46537098413809906919.-8301700878138964680.*z))*(3434616943638241443585000648954199.*y+320.*(1107265969195848092307625165761.+4643932844541992753284837619195.*z)))/pow(85141430232132048.+97951351741329392.*x-8855616621991191.*y-199920422688690560.*z,3)+(12.*(88457226224862447127008.+13504083955712971035976.*x-6622138801690554356387.*y+19322683651036147287512.*z)*(36451820000039413375829754767131.*y-8*(66864837166560711793644210325852.+35619205657210451197984743698883.*z)))/pow(92856945980914656.+51329763147513032.*x-8586501277743859.*y-56199770659759016.*z,3)+(512.*(45619694076424722199344.+14936846773318822792976.*x-3365788117861218576473.*y+10130491989577935272320.*z)*(12048859085295019197936041733505.*y-6*(32519187452933223586671104614156.+40471151781636260063426632487709.*z)))/pow(85141430232132048.+97951351741329392.*x-8855616621991191.*y-199920422688690560.*z,3)))/125.;
value(1)=(128.*((32768.*(24610976415716501050652227.*x-256.*(-10153609683556422184100.+374519398571124540883.*y-4145573659500944095488.*z))*(98990697209366584150952278657452.+920305667567495470446459093752885.*x-65799721166407263195366683527104.*z))/pow(5042560366642267.*x-256.*(2446745837411900.+4901398098088043.*y-144207654645973248.*z),3)+(1024.*(-10864227594859409007678067839115.+566592725765813239786863532667460.*x-3214793226869529893757297514562848.*z)*(9439334964924689507817.+17499514376929345709248.*x+187907876794815451253888.*y-21704870055089718153088.*z))/pow(-3075770275504817.+198931044892562752.*x+14199788245258112.*y-1122852841901814912.*z,3)+(40.*(2938923392457131154149055759247753.+8383263629566931208848464949723740.*x-24821520393182477390523323699174560.*z)*(4157117722725769078952.+4534359335248895646832.*x+26193979470458655189977.*y-2382852476120229696128.*z))/pow(45070329471431608.+130124049256651728.*x-5583613021604317.*y-387630670566282112.*z,3)+(80.*(1717566388539311579248.*x+7025931019459451548321.*y+48.*(46537098413809906919.-8301700878138964680.*z))*(3017477155357435955713408172820441.+3434616943638241443585000648954199.*x-6875761229715351344214913955270620.*z))/pow(85141430232132048.+97951351741329392.*x-8855616621991191.*y-199920422688690560.*z,3)+(2*(1013986939222028224203834326214704.+723429769797021053206211106031819.*x-1002019231842824621894736024449560.*z)*(22670037111266004087968.+12461845278544574559640.*x+39219302812923818032157.*y-46563087562792926056.*z))/pow(50159316775994592.+36243094308305160.*x-4827156544231217.*y-52318895858217464.*z,3)+(2*(698833722744934775627393528218146.+279848894416310700301852732890585.*x-191427609122898840477329914007915.*z)*(9101665097092871812176.+3063507166600182944940.*x+6945927557350563805665.*y+1052001549322007294950.*z))/pow(46366672189358032.+18896234711237580.*x-3927118781169095.*y-14705346416259850.*z,3)+(8*(557016173590538671691101855964863.+303023948138837354463602341532495.*x-309197308873592242001670976702725.*z)*(39553725461800043367392.+17203831108841472538824.*x+45483386678520344593037.*y+2703260049547565568088.*z))/pow(92856945980914656.+51329763147513032.*x-8586501277743859.*y-56199770659759016.*z,3)-(128.*(-57335208466953058729715954197164.+96390872682360153583488333868040.*x-372364031472286149332017066304111.*z)*(45619694076424722199344.+14936846773318822792976.*x-3365788117861218576473.*y+10130491989577935272320.*z))/pow(85141430232132048.+97951351741329392.*x-8855616621991191.*y-199920422688690560.*z,3)-(5*(-5058036108182894712997605343704.+13066181822706485812588287496990.*x-23584235630998237996607750176151.*z)*(61468981380127448102256.+5328427636421850183140.*x-4647710007810227520885.*y+13344414478836548348450.*z))/pow(46366672189358032.+18896234711237580.*x-3927118781169095.*y-14705346416259850.*z,3)-(256.*(-35027435322808897803896166913833.+101153824679669203594026224000274.*x-443348667941077090029000877418626.*z)*(61889933231497708820968.+30294916915069669525488.*x-4484037822343607626207.*y+13934625423713945278848.*z))/pow(45070329471431608.+130124049256651728.*x-5583613021604317.*y-387630670566282112.*z,3)-(24.*(-23539469566855513950637813409344.+36451820000039413375829754767131.*x-87577625291530403453057402554096.*z)*(88457226224862447127008.+13504083955712971035976.*x-6622138801690554356387.*y+19322683651036147287512.*z))/pow(92856945980914656.+51329763147513032.*x-8586501277743859.*y-56199770659759016.*z,3)-(112.*(97743545586690977941666831119873.+189463292388600804291605866927808.*x-534599264249120709692835475330432.*z)*(801790542801929135637671.+732048260009923946735424.*x-56975701334774517040256.*y+187552638032246240630656.*z))/pow(-3075770275504817.+198931044892562752.*x+14199788245258112.*y-1122852841901814912.*z,3)-(2560.*(2304705299858575630109.*x-256.*(204828849006588248100.+19508530860149228990861.*y-2445924471668591306496.*z))*(-29205293090710790323990469408790736.+212589517464418508578145671300087.*x+1750806894610755007047140949242022912.*z))/pow(5042560366642267.*x-256.*(2446745837411900.+4901398098088043.*y-144207654645973248.*z),3)-(160.*(3266813047619306699872.+716026618045942942760.*x-243780804476456624597.*y+718216181537563796776.*z)*(52529278437993151034132605337909.*x-4*(8646336391489439377118003754263.+39602745269819371968458588313429.*z)))/pow(50159316775994592.+36243094308305160.*x-4827156544231217.*y-52318895858217464.*z,3)))/125.;
value(2)=(128.*((-24576.*(3839508863935892182987929073642496.+36103009879073133562313702394913733.*x-87732961555209684260488911369472.*y)*(24610976415716501050652227.*x-256.*(-10153609683556422184100.+374519398571124540883.*y-4145573659500944095488.*z)))/pow(5042560366642267.*x-256.*(2446745837411900.+4901398098088043.*y-144207654645973248.*z),3)-(30720.*(65108728870058843312625047943313.*x-256.*(4791937744017588738333042319232.+569924119339438478856491194414721.*y))*(2304705299858575630109.*x-256.*(204828849006588248100.+19508530860149228990861.*y-2445924471668591306496.*z)))/pow(5042560366642267.*x-256.*(2446745837411900.+4901398098088043.*y-144207654645973248.*z),3)+(256.*(650985307933227267490679218098413.+935767027021514282821089562931792.*x+12859172907478119575029190058251392.*y)*(9439334964924689507817.+17499514376929345709248.*x+187907876794815451253888.*y-21704870055089718153088.*z))/pow(-3075770275504817.+198931044892562752.*x+14199788245258112.*y-1122852841901814912.*z,3)+(1280.*(114748411888321695540849692963124.+110442377985916695620550654636800.*x+775672512286952418453853865599205.*y)*(4157117722725769078952.+4534359335248895646832.*x+26193979470458655189977.*y-2382852476120229696128.*z))/pow(45070329471431608.+130124049256651728.*x-5583613021604317.*y-387630670566282112.*z,3)+(1600.*(100744894915663705876272277122960.+74302925512671884052557401907120.*x+343788061485767567210745697763531.*y)*(1717566388539311579248.*x+7025931019459451548321.*y+48.*(46537098413809906919.-8301700878138964680.*z)))/pow(85141430232132048.+97951351741329392.*x-8855616621991191.*y-199920422688690560.*z,3)+(16.*(72249495731635781189477972681776.+39691308285862330678445510678381.*x+125252403980353077736842003056195.*y)*(22670037111266004087968.+12461845278544574559640.*x+39219302812923818032157.*y-46563087562792926056.*z))/pow(50159316775994592.+36243094308305160.*x-4827156544231217.*y-52318895858217464.*z,3)+(640.*(505227745581172894057712966825000.+155010006988462124695347547225138.*x-39602745269819371968458588313429.*y)*(3266813047619306699872.+716026618045942942760.*x-243780804476456624597.*y+718216181537563796776.*z))/pow(50159316775994592.+36243094308305160.*x-4827156544231217.*y-52318895858217464.*z,3)+(2*(356681541401645116923690413208956.+126814067043212099223976834718490.*x+191427609122898840477329914007915.*y)*(9101665097092871812176.+3063507166600182944940.*x+6945927557350563805665.*y+1052001549322007294950.*z))/pow(46366672189358032.+18896234711237580.*x-3927118781169095.*y-14705346416259850.*z,3)+(8*(301993014170585471859024964195112.+134962043561465977901954677856080.*x+309197308873592242001670976702725.*y)*(39553725461800043367392.+17203831108841472538824.*x+45483386678520344593037.*y+2703260049547565568088.*z))/pow(92856945980914656.+51329763147513032.*x-8586501277743859.*y-56199770659759016.*z,3)+(128.*(4874430224431350455160317539284048.+1942615285518540483044478359410032.*x-372364031472286149332017066304111.*y)*(45619694076424722199344.+14936846773318822792976.*x-3365788117861218576473.*y+10130491989577935272320.*z))/pow(85141430232132048.+97951351741329392.*x-8855616621991191.*y-199920422688690560.*z,3)+((1486971442137244004077030949061728.+322769103831727073598968320899320.*x-117921178154991189983038750880755.*y)*(61468981380127448102256.+5328427636421850183140.*x-4647710007810227520885.*y+13344414478836548348450.*z))/pow(46366672189358032.+18896234711237580.*x-3927118781169095.*y-14705346416259850.*z,3)+(512.*(3005184872892536482128059816733656.+1654842388128247497540371661628560.*x-221674333970538545014500438709313.*y)*(61889933231497708820968.+30294916915069669525488.*x-4484037822343607626207.*y+13934625423713945278848.*z))/pow(45070329471431608.+130124049256651728.*x-5583613021604317.*y-387630670566282112.*z,3)+(192.*(137644881571986015841084811827840.+35619205657210451197984743698883.*x-10947203161441300431632175319262.*y)*(88457226224862447127008.+13504083955712971035976.*x-6622138801690554356387.*y+19322683651036147287512.*z))/pow(92856945980914656.+51329763147513032.*x-8586501277743859.*y-56199770659759016.*z,3)+(64.*(13728575451141247570683309821008705.+13111763174706011627610159037098688.*x-935548712435961241962462081828256.*y)*(801790542801929135637671.+732048260009923946735424.*x-56975701334774517040256.*y+187552638032246240630656.*z))/pow(-3075770275504817.+198931044892562752.*x+14199788245258112.*y-1122852841901814912.*z,3)))/125.;
// This will work: all long interger being written into a string ( but there are precisiion loss)
//value(0)=(256*((256*("-24610976415716501050652227"*x+256*("-10153609683556422184100"+"374519398571124540883"*y-"4145573659500944095488"*z))*("29427736469514379027531261659072347"+"58899562724319710108573382000184640"*y-"1732944474195510410991057714955859184"*z))/pow("5042560366642267"*x-256*("2446745837411900"+"4901398098088043"*y-"144207654645973248"*z),3)-(256*("-308518681989548429992935348850261"+"41445095210006425938788783390458"*y-"1638970396838251453451269879637336"*z)*("-801790542801929135637671"-"732048260009923946735424"*x+"56975701334774517040256"*y-"187552638032246240630656"*z))/pow("-3075770275504817"+"198931044892562752"*x+"14199788245258112"*y-"1122852841901814912"*z,3)+(5*("-89303793175477833893354121208000"+"6533090911353242906294143748495"*y-"32276910383172707359896832089932"*z)*("-61468981380127448102256"-"5328427636421850183140"*x+"4647710007810227520885"*y-"13344414478836548348450"*z))/pow("-46366672189358032"-"18896234711237580"*x+"3927118781169095"*y+"14705346416259850"*z,3)-(3*("9101665097092871812176"+"3063507166600182944940"*x+"6945927557350563805665"*y+"1052001549322007294950"*z)*("19493858980629008651267653094056"+"93282964805436900100617577630195"*y+"42271355681070699741325611572830"*z))/pow("46366672189358032"+"18896234711237580"*x-"3927118781169095"*y-"14705346416259850"*z,3)-(4*("39553725461800043367392"+"17203831108841472538824"*x+"45483386678520344593037"*y+"2703260049547565568088"*z)*("52830583937680669669892057655944"+"303023948138837354463602341532495"*y+"134962043561465977901954677856080"*z))/pow("92856945980914656"+"51329763147513032"*x-"8586501277743859"*y-"56199770659759016"*z,3)-(("22670037111266004087968"+"12461845278544574559640"*x+"39219302812923818032157"*y-"46563087562792926056"*z)*("95973949246309465842551069546976"+"723429769797021053206211106031819"*y+"317530466286898645427564085427048"*z))/pow("50159316775994592"+"36243094308305160"*x-"4827156544231217"*y-"52318895858217464"*z,3)-(80*("4157117722725769078952"+"4534359335248895646832"*x+"26193979470458655189977"*y-"2382852476120229696128"*z)*("205429639975670471114284923188348"+"2095815907391732802212116237430935"*y+"883539023887333564964405237094400"*z))/pow("45070329471431608"+"130124049256651728"*x-"5583613021604317"*y-"387630670566282112"*z,3)-(16*("9439334964924689507817"+"17499514376929345709248"*x+"187907876794815451253888"*y-"21704870055089718153088"*z)*("943164674716649969807523653958385"+"18130967224506023673179633045358720"*y+"7486136216172114262568716503454336"*z))/pow("-3075770275504817"+"198931044892562752"*x+"14199788245258112"*y-"1122852841901814912"*z,3)+(80*("2304705299858575630109"*x-256*("204828849006588248100"+"19508530860149228990861"*y-"2445924471668591306496"*z))*("-179928369646271075844345534739549"+"3401432279430696137250330740801392"*y+"12500875943051297916024009205116096"*z))/pow("5042560366642267"*x-256*("2446745837411900"+"4901398098088043"*y-"144207654645973248"*z),3)+(80*("-805507884940017483975376678503744"+"52529278437993151034132605337909"*y-"620040027953848498781390188900552"*z)*("-716026618045942942760"*x+"243780804476456624597"*y-8*("408351630952413337484"+"89777022692195474597"*z)))/pow("-50159316775994592"-"36243094308305160"*x+"4827156544231217"*y+"52318895858217464"*z,3)+(768*("61889933231497708820968"+"30294916915069669525488"*x-"4484037822343607626207"*y+"13934625423713945278848"*z)*("16858970779944867265671037333379"*y-176*("1546216290476124632111328928258"+"3134171189636832381705249359145"*z)))/pow("45070329471431608"+"130124049256651728"*x-"5583613021604317"*y-"387630670566282112"*z,3)-(40*("1717566388539311579248"*x+"7025931019459451548321"*y+48*("46537098413809906919"-"8301700878138964680"*z))*("3434616943638241443585000648954199"*y+320*("1107265969195848092307625165761"+"4643932844541992753284837619195"*z)))/pow("85141430232132048"+"97951351741329392"*x-"8855616621991191"*y-"199920422688690560"*z,3)+(12*("88457226224862447127008"+"13504083955712971035976"*x-"6622138801690554356387"*y+"19322683651036147287512"*z)*("36451820000039413375829754767131"*y-8*("66864837166560711793644210325852"+"35619205657210451197984743698883"*z)))/pow("92856945980914656"+"51329763147513032"*x-"8586501277743859"*y-"56199770659759016"*z,3)+(512*("45619694076424722199344"+"14936846773318822792976"*x-"3365788117861218576473"*y+"10130491989577935272320"*z)*("12048859085295019197936041733505"*y-6*("32519187452933223586671104614156"+"40471151781636260063426632487709"*z)))/pow("85141430232132048"+"97951351741329392"*x-"8855616621991191"*y-"199920422688690560"*z,3)))/125;
//value(1)=(128*((32768*("24610976415716501050652227"*x-256*("-10153609683556422184100"+"374519398571124540883"*y-"4145573659500944095488"*z))*("98990697209366584150952278657452"+"920305667567495470446459093752885"*x-"65799721166407263195366683527104"*z))/pow("5042560366642267"*x-256*("2446745837411900"+"4901398098088043"*y-"144207654645973248"*z),3)+(1024*("-10864227594859409007678067839115"+"566592725765813239786863532667460"*x-"3214793226869529893757297514562848"*z)*("9439334964924689507817"+"17499514376929345709248"*x+"187907876794815451253888"*y-"21704870055089718153088"*z))/pow("-3075770275504817"+"198931044892562752"*x+"14199788245258112"*y-"1122852841901814912"*z,3)+(40*("2938923392457131154149055759247753"+"8383263629566931208848464949723740"*x-"24821520393182477390523323699174560"*z)*("4157117722725769078952"+"4534359335248895646832"*x+"26193979470458655189977"*y-"2382852476120229696128"*z))/pow("45070329471431608"+"130124049256651728"*x-"5583613021604317"*y-"387630670566282112"*z,3)+(80*("1717566388539311579248"*x+"7025931019459451548321"*y+48*("46537098413809906919"-"8301700878138964680"*z))*("3017477155357435955713408172820441"+"3434616943638241443585000648954199"*x-"6875761229715351344214913955270620"*z))/pow("85141430232132048"+"97951351741329392"*x-"8855616621991191"*y-"199920422688690560"*z,3)+(2*("1013986939222028224203834326214704"+"723429769797021053206211106031819"*x-"1002019231842824621894736024449560"*z)*("22670037111266004087968"+"12461845278544574559640"*x+"39219302812923818032157"*y-"46563087562792926056"*z))/pow("50159316775994592+36243094308305160"*x-"4827156544231217"*y-"52318895858217464"*z,3)+(2*("698833722744934775627393528218146"+"279848894416310700301852732890585"*x-"191427609122898840477329914007915"*z)*("9101665097092871812176"+"3063507166600182944940"*x+"6945927557350563805665"*y+"1052001549322007294950"*z))/pow("46366672189358032"+"18896234711237580"*x-"3927118781169095"*y-"14705346416259850"*z,3)+(8*("557016173590538671691101855964863"+"303023948138837354463602341532495"*x-"309197308873592242001670976702725"*z)*("39553725461800043367392"+"17203831108841472538824"*x+"45483386678520344593037"*y+"2703260049547565568088"*z))/pow("92856945980914656"+"51329763147513032"*x-"8586501277743859"*y-"56199770659759016"*z,3)-(128*("-57335208466953058729715954197164"+"96390872682360153583488333868040"*x-"372364031472286149332017066304111"*z)*("45619694076424722199344"+"14936846773318822792976"*x-"3365788117861218576473"*y+"10130491989577935272320"*z))/pow("85141430232132048"+"97951351741329392"*x-"8855616621991191"*y-"199920422688690560"*z,3)-(5*("-5058036108182894712997605343704"+"13066181822706485812588287496990"*x-"23584235630998237996607750176151"*z)*("61468981380127448102256"+"5328427636421850183140"*x-"4647710007810227520885"*y+"13344414478836548348450"*z))/pow("46366672189358032"+"18896234711237580"*x-"3927118781169095"*y-"14705346416259850"*z,3)-(256*("-35027435322808897803896166913833"+"101153824679669203594026224000274"*x-"443348667941077090029000877418626"*z)*("61889933231497708820968"+"30294916915069669525488"*x-"4484037822343607626207"*y+"13934625423713945278848"*z))/pow("45070329471431608"+"130124049256651728"*x-"5583613021604317"*y-"387630670566282112"*z,3)-(24*("-23539469566855513950637813409344"+"36451820000039413375829754767131"*x-"87577625291530403453057402554096"*z)*("88457226224862447127008"+"13504083955712971035976"*x-"6622138801690554356387"*y+"19322683651036147287512"*z))/pow("92856945980914656"+"51329763147513032"*x-"8586501277743859"*y-"56199770659759016"*z,3)-(112*("97743545586690977941666831119873"+"189463292388600804291605866927808"*x-"534599264249120709692835475330432"*z)*("801790542801929135637671"+"732048260009923946735424"*x-"56975701334774517040256"*y+"187552638032246240630656"*z))/pow("-3075770275504817"+"198931044892562752"*x+"14199788245258112"*y-"1122852841901814912"*z,3)-(2560*("2304705299858575630109"*x-256*("204828849006588248100"+"19508530860149228990861"*y-"2445924471668591306496"*z))*("-29205293090710790323990469408790736"+"212589517464418508578145671300087"*x+"1750806894610755007047140949242022912"*z))/pow("5042560366642267"*x-256*("2446745837411900"+"4901398098088043"*y-"144207654645973248"*z),3)-(160*("3266813047619306699872"+"716026618045942942760"*x-"243780804476456624597"*y+"718216181537563796776"*z)*("52529278437993151034132605337909"*x-4*("8646336391489439377118003754263"+"39602745269819371968458588313429"*z)))/pow(50159316775994592+"36243094308305160"*x-"4827156544231217"*y-"52318895858217464"*z,3)))/125;
//value(2)=(128*((-24576*("3839508863935892182987929073642496"+"36103009879073133562313702394913733"*x-"87732961555209684260488911369472"*y)*("24610976415716501050652227"*x-256*("-10153609683556422184100"+"374519398571124540883"*y-"4145573659500944095488"*z)))/pow("5042560366642267"*x-256*("2446745837411900"+"4901398098088043"*y-"144207654645973248"*z),3)-(30720*("65108728870058843312625047943313"*x-256*("4791937744017588738333042319232"+"569924119339438478856491194414721"*y))*("2304705299858575630109"*x-256*("204828849006588248100"+"19508530860149228990861"*y-"2445924471668591306496"*z)))/pow("5042560366642267"*x-256*("2446745837411900"+"4901398098088043"*y-"144207654645973248"*z),3)+(256*("650985307933227267490679218098413"+"935767027021514282821089562931792"*x+"12859172907478119575029190058251392"*y)*("9439334964924689507817"+"17499514376929345709248"*x+"187907876794815451253888"*y-"21704870055089718153088"*z))/pow("-3075770275504817"+"198931044892562752"*x+"14199788245258112"*y-"1122852841901814912"*z,3)+(1280*("114748411888321695540849692963124"+"110442377985916695620550654636800"*x+"775672512286952418453853865599205"*y)*("4157117722725769078952"+"4534359335248895646832"*x+"26193979470458655189977"*y-"2382852476120229696128"*z))/pow(45070329471431608+"130124049256651728"*x-"5583613021604317"*y-"387630670566282112"*z,3)+(1600*("100744894915663705876272277122960"+"74302925512671884052557401907120"*x+"343788061485767567210745697763531"*y)*("1717566388539311579248"*x+"7025931019459451548321"*y+48*("46537098413809906919"-"8301700878138964680"*z)))/pow("85141430232132048"+"97951351741329392"*x-"8855616621991191"*y-"199920422688690560"*z,3)+(16*("72249495731635781189477972681776"+"39691308285862330678445510678381"*x+"125252403980353077736842003056195"*y)*("22670037111266004087968"+"12461845278544574559640"*x+"39219302812923818032157"*y-"46563087562792926056"*z))/pow("50159316775994592"+"36243094308305160"*x-"4827156544231217"*y-"52318895858217464"*z,3)+(640*("505227745581172894057712966825000"+"155010006988462124695347547225138"*x-"39602745269819371968458588313429"*y)*("3266813047619306699872"+"716026618045942942760"*x-"243780804476456624597"*y+"718216181537563796776"*z))/pow("50159316775994592"+"36243094308305160"*x-"4827156544231217"*y-"52318895858217464"*z,3)+(2*("356681541401645116923690413208956"+"126814067043212099223976834718490"*x+"191427609122898840477329914007915"*y)*("9101665097092871812176"+"3063507166600182944940"*x+"6945927557350563805665"*y+"1052001549322007294950"*z))/pow("46366672189358032"+"18896234711237580"*x-"3927118781169095"*y-"14705346416259850"*z,3)+(8*("301993014170585471859024964195112"+"134962043561465977901954677856080"*x+"309197308873592242001670976702725"*y)*("39553725461800043367392"+"17203831108841472538824"*x+"45483386678520344593037"*y+"2703260049547565568088"*z))/pow("92856945980914656"+"51329763147513032"*x-"8586501277743859"*y-"56199770659759016"*z,3)+(128*("4874430224431350455160317539284048"+"1942615285518540483044478359410032"*x-"372364031472286149332017066304111"*y)*("45619694076424722199344"+"14936846773318822792976"*x-"3365788117861218576473"*y+"10130491989577935272320"*z))/pow("85141430232132048"+"97951351741329392"*x-"8855616621991191"*y-"199920422688690560"*z,3)+(("1486971442137244004077030949061728"+"322769103831727073598968320899320"*x-"117921178154991189983038750880755"*y)*("61468981380127448102256"+"5328427636421850183140"*x-"4647710007810227520885"*y+"13344414478836548348450"*z))/pow("46366672189358032"+"18896234711237580"*x-"3927118781169095"*y-"14705346416259850"*z,3)+(512*("3005184872892536482128059816733656"+"1654842388128247497540371661628560"*x-"221674333970538545014500438709313"*y)*("61889933231497708820968"+"30294916915069669525488"*x-"4484037822343607626207"*y+"13934625423713945278848"*z))/pow("45070329471431608"+"130124049256651728"*x-"5583613021604317"*y-"387630670566282112"*z,3)+(192*("137644881571986015841084811827840"+"35619205657210451197984743698883"*x-"10947203161441300431632175319262"*y)*("88457226224862447127008"+"13504083955712971035976"*x-"6622138801690554356387"*y+"19322683651036147287512"*z))/pow("92856945980914656"+"51329763147513032"*x-"8586501277743859"*y-"56199770659759016"*z,3)+(64*("13728575451141247570683309821008705"+"13111763174706011627610159037098688"*x-"935548712435961241962462081828256"*y)*("801790542801929135637671"+"732048260009923946735424"*x-"56975701334774517040256"*y+"187552638032246240630656"*z))/pow("-3075770275504817"+"198931044892562752"*x+"14199788245258112"*y-"1122852841901814912"*z,3)))/125;
return value;
}
回答1:
when using mpreal
, all the numbers with higher than standard precision should be converted into mpreal
. A most convenient way is to add quote mark on both sides
来源:https://stackoverflow.com/questions/20255722/precision-loss-when-solving-nonlinear-equations-with-long-integer-parameters-by