Last active
August 29, 2015 14:16
-
-
Save evilactually/9cea3cb8ef08e34746a4 to your computer and use it in GitHub Desktop.
Polynomial fitter for PWTIR table and the resulting polynomial in separate file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Data.List | |
import Data.Array | |
import Data.Ratio | |
-- Uncertainty | |
-- (130, 62, 486/488) | |
-- row 70, may contain errors | |
-- | Input data | |
pwtir :: [(Ratio Integer, Ratio Integer, Ratio Integer)] | |
pwtir = [(120, 55, 123), (121, 55, 546), (122, 55, 844), (123, 55, 765), (124, 55, 645), (125, 55, 645), (126, 55, 324), (127, 55, 435), (128, 55, 545), (129, 55, 535), (130, 55, 768), (131, 55, 932), (132, 55, 434), | |
(120, 56, 345), (121, 56, 432), (122, 56, 345), (123, 56, 532), (124, 56, 534), (125, 56, 675), (126, 56, 785), (127, 56, 875), (128, 56, 876), (129, 56, 634), (130, 56, 543), (131, 56, 876), (132, 56, 986), | |
(120, 57, 432), (121, 57, 567), (122, 57, 789), (123, 57, 874), (124, 57, 546), (125, 57, 876), (126, 57, 096), (127, 57, 087), (128, 57, 023), (129, 57, 053), (130, 57, 921), (131, 57, 109), (132, 57, 012), | |
(120, 58, 213), (121, 58, 132), (122, 58, 345), (123, 58, 243), (124, 58, 234), (125, 58, 569), (126, 58, 927), (127, 58, 019), (128, 58, 893), (129, 58, 423), (130, 58, 656), (131, 58, 746), (132, 58, 737), | |
(120, 59, 536), (121, 59, 488), (122, 59, 985), (123, 59, 748), (124, 59, 847), (125, 59, 899), (126, 59, 000), (127, 59, 001), (128, 59, 002), (129, 59, 928), (130, 59, 764), (131, 59, 830), (132, 59, 100), | |
(120, 60, 011), (121, 60, 022), (122, 60, 033), (123, 60, 044), (124, 60, 055), (125, 60, 012), (126, 60, 011), (127, 60, 033), (128, 60, 122), (129, 60, 111), (130, 60, 133), (131, 60, 333), (132, 60, 444), | |
(120, 61, 456), (121, 61, 767), (122, 61, 874), (123, 61, 988), (124, 61, 774), (125, 61, 874), (126, 61, 847), (127, 61, 746), (128, 61, 928), (129, 61, 626), (130, 61, 887), (131, 61, 736), (132, 61, 111), | |
(120, 62, 122), (121, 62, 345), (122, 62, 546), (123, 62, 756), (124, 62, 444), (125, 62, 335), (126, 62, 647), (127, 62, 737), (128, 62, 987), (129, 62, 635), (130, 62, 486), (131, 62, 045), (132, 62, 395), | |
(120, 63, 391), (121, 63, 305), (122, 63, 793), (123, 63, 539), (124, 63, 026), (125, 63, 729), (126, 63, 593), (127, 63, 719), (128, 63, 291), (129, 63, 374), (130, 63, 532), (131, 63, 115), (132, 63, 732), | |
(120, 64, 229), (121, 64, 394), (122, 64, 836), (123, 64, 811), (124, 64, 437), (125, 64, 801), (126, 64, 729), (127, 64, 964), (128, 64, 692), (129, 64, 401), (130, 64, 329), (131, 64, 495), (132, 64, 012), | |
(120, 65, 301), (121, 65, 903), (122, 65, 406), (123, 65, 593), (124, 65, 602), (125, 65, 167), (126, 65, 876), (127, 65, 027), (128, 65, 923), (129, 65, 024), (130, 65, 674), (131, 65, 934), (132, 65, 023), | |
(120, 66, 930), (121, 66, 304), (122, 66, 555), (123, 66, 223), (124, 66, 945), (125, 66, 730), (126, 66, 821), (127, 66, 556), (128, 66, 038), (129, 66, 120), (130, 66, 543), (131, 66, 736), (132, 66, 736), | |
(120, 67, 125), (121, 67, 873), (122, 67, 747), (123, 67, 435), (124, 67, 827), (125, 67, 873), (126, 67, 123), (127, 67, 837), (128, 67, 983), (129, 67, 833), (130, 67, 837), (131, 67, 928), (132, 67, 826), | |
(120, 68, 937), (121, 68, 837), (122, 68, 837), (123, 68, 826), (124, 68, 927), (125, 68, 726), (126, 68, 927), (127, 68, 277), (128, 68, 928), (129, 68, 289), (130, 68, 726), (131, 68, 625), (132, 68, 872), | |
(120, 69, 123), (121, 69, 762), (122, 69, 781), (123, 69, 871), (124, 69, 871), (125, 69, 871), (126, 69, 122), (127, 69, 124), (128, 69, 827), (129, 69, 762), (130, 69, 872), (131, 69, 872), (132, 69, 812), | |
(120, 70, 123), (121, 70, 776), (122, 70, 827), (123, 70, 019), (124, 70, 928), (125, 70, 190), (126, 70, 827), (127, 70, 982), (128, 70, 982), (129, 70, 921), (130, 70, 123), (131, 70, 368), (132, 70, 000), | |
(120, 71, 001), (121, 71, 002), (122, 71, 003), (123, 71, 123), (124, 71, 123), (125, 71, 432), (126, 71, 523), (127, 71, 543), (128, 71, 522), (129, 71, 245), (130, 71, 255), (131, 71, 235), (132, 71, 234), | |
(120, 72, 678), (121, 72, 478), (122, 72, 879), (123, 72, 984), (124, 72, 743), (125, 72, 383), (126, 72, 838), (127, 72, 333), (128, 72, 777), (129, 72, 322), (130, 72, 873), (131, 72, 823), (132, 72, 209), | |
(120, 73, 489), (121, 73, 029), (122, 73, 432), (123, 73, 237), (124, 73, 238), (125, 73, 238), (126, 73, 387), (127, 73, 287), (128, 73, 328), (129, 73, 287), (130, 73, 274), (131, 73, 234), (132, 73, 222), | |
(120, 74, 001), (121, 74, 002), (122, 74, 111), (123, 74, 223), (124, 74, 442), (125, 74, 433), (126, 74, 663), (127, 74, 666), (128, 74, 222), (129, 74, 298), (130, 74, 238), (131, 74, 273), (132, 74, 287), | |
(120, 75, 839), (121, 75, 236), (122, 75, 277), (123, 75, 231), (124, 75, 345), (125, 75, 784), (126, 75, 989), (127, 75, 908), (128, 75, 908), (129, 75, 349), (130, 75, 904), (131, 75, 349), (132, 75, 493), | |
(120, 76, 546), (121, 76, 356), (122, 76, 635), (123, 76, 632), (124, 76, 736), (125, 76, 267), (126, 76, 873), (127, 76, 872), (128, 76, 256), (129, 76, 738), (130, 76, 001), (131, 76, 732), (132, 76, 276), | |
(120, 77, 673), (121, 77, 736), (122, 77, 782), (123, 77, 728), (124, 77, 287), (125, 77, 269), (126, 77, 293), (127, 77, 938), (128, 77, 362), (129, 77, 287), (130, 77, 286), (131, 77, 286), (132, 77, 266), | |
(120, 78, 536), (121, 78, 242), (122, 78, 423), (123, 78, 672), (124, 78, 276), (125, 78, 632), (126, 78, 786), (127, 78, 786), (128, 78, 782), (129, 78, 123), (130, 78, 823), (131, 78, 673), (132, 78, 376), | |
(120, 79, 453), (121, 79, 534), (122, 79, 355), (123, 79, 256), (124, 79, 726), (125, 79, 728), (126, 79, 988), (127, 79, 837), (128, 79, 662), (129, 79, 255), (130, 79, 536), (131, 79, 767), (132, 79, 637), | |
(120, 80, 983), (121, 80, 938), (122, 80, 273), (123, 80, 267), (124, 80, 847), (125, 80, 462), (126, 80, 727), (127, 80, 267), (128, 80, 256), (129, 80, 894), (130, 80, 963), (131, 80, 927), (132, 80, 278), | |
(120, 81, 456), (121, 81, 526), (122, 81, 636), (123, 81, 672), (124, 81, 290), (125, 81, 873), (126, 81, 362), (127, 81, 827), (128, 81, 666), (129, 81, 237), (130, 81, 222), (131, 81, 088), (132, 81, 087), | |
(120, 82, 536), (121, 82, 367), (122, 82, 928), (123, 82, 273), (124, 82, 978), (125, 82, 773), (126, 82, 928), (127, 82, 233), (128, 82, 298), (129, 82, 298), (130, 82, 298), (131, 82, 111), (132, 82, 111), | |
(120, 83, 467), (121, 83, 732), (122, 83, 827), (123, 83, 352), (124, 83, 762), (125, 83, 287), (126, 83, 278), (127, 83, 289), (128, 83, 902), (129, 83, 092), (130, 83, 272), (131, 83, 222), (132, 83, 244), | |
(120, 84, 647), (121, 84, 764), (122, 84, 748), (123, 84, 373), (124, 84, 222), (125, 84, 477), (126, 84, 748), (127, 84, 837), (128, 84, 278), (129, 84, 873), (130, 84, 782), (131, 84, 356), (132, 84, 654), | |
(120, 85, 867), (121, 85, 958), (122, 85, 598), (123, 85, 938), (124, 85, 930), (125, 85, 276), (126, 85, 622), (127, 85, 626), (128, 85, 262), (129, 85, 747), (130, 85, 646), (131, 85, 545), (132, 85, 522), | |
(120, 86, 635), (121, 86, 526), (122, 86, 872), (123, 86, 928), (124, 86, 647), (125, 86, 545), (126, 86, 244), (127, 86, 222), (128, 86, 111), (129, 86, 111), (130, 86, 737), (131, 86, 526), (132, 86, 625), | |
(120, 87, 452), (121, 87, 564), (122, 87, 352), (123, 87, 762), (124, 87, 702), (125, 87, 888), (126, 87, 999), (127, 87, 933), (128, 87, 555), (129, 87, 333), (130, 87, 902), (131, 87, 737), (132, 87, 363), | |
(120, 88, 333), (121, 88, 892), (122, 88, 989), (123, 88, 090), (124, 88, 909), (125, 88, 383), (126, 88, 822), (127, 88, 121), (128, 88, 232), (129, 88, 299), (130, 88, 283), (131, 88, 828), (132, 88, 273), | |
(120, 89, 647), (121, 89, 637), (122, 89, 522), (123, 89, 536), (124, 89, 267), (125, 89, 366), (126, 89, 266), (127, 89, 726), (128, 89, 992), (129, 89, 833), (130, 89, 636), (131, 89, 993), (132, 89, 333), | |
(120, 90, 545), (121, 90, 535), (122, 90, 727), (123, 90, 222), (124, 90, 888), (125, 90, 575), (126, 90, 757), (127, 90, 444), (128, 90, 332), (129, 90, 282), (130, 90, 092), (131, 90, 881), (132, 90, 882)] | |
variable_names = [(0,"x"), (1, "y")] | |
-- | Ordered arrays of values | |
weights :: Array Int (Ratio Integer) | |
weights = | |
let | |
unique_weights = (nub.sort $ map (\(x,_,_) -> x) pwtir) | |
(_, indexed_weights) = mapAccumL (\i x -> (i+1,(i,x))) 0 unique_weights in array (0, length unique_weights - 1) indexed_weights | |
weights_count = b + 1 where (_,b) = bounds weights | |
mphs :: Array Int (Ratio Integer) | |
mphs = | |
let | |
unique_mphs = (nub.sort $ map (\(_,x,_) -> x) pwtir) | |
(_, indexed_mphs) = mapAccumL (\i x -> (i+1,(i,x))) 0 unique_mphs in array (0, length unique_mphs - 1) indexed_mphs | |
mphs_count = b + 1 where (_,b) = bounds mphs | |
-- | Arrays of base polynomials | |
weight_bases :: Array Int [(Ratio Integer, [(Integer, Integer)])] | |
weight_bases = array (bounds weights) $ map (\idx -> (idx, polySimplify $ basisPoly 0 (elems weights) idx)) (indices weights) | |
mphs_bases :: Array Int [(Ratio Integer, [(Integer, Integer)])] | |
mphs_bases = array (bounds mphs) $ map (\idx -> (idx, polySimplify $ basisPoly 1 (elems mphs) idx)) (indices mphs) | |
-- | Function value look-up array | |
pwtir_values :: Array (Int, Int) (Ratio Integer) | |
pwtir_values = | |
array ((0,0),(weights_count-1,mphs_count-1)) $ | |
map | |
(\(w,m,v) -> | |
let | |
(Just w_idx) = elemIndex w $ elems $ weights | |
(Just m_idx) = elemIndex m $ elems $ mphs | |
in ((w_idx,m_idx),v)) | |
pwtir | |
pwtirMap f = [ f w_idx m_idx | w_idx <- indices weights, m_idx <- indices mphs] | |
-- | The answer to life universe and everything | |
pwtir_polynomial :: [(Ratio Integer, [(Integer, Integer)])] | |
pwtir_polynomial = polyAddAll [ polyMultiplyAll [(weight_bases ! w_idx), (mphs_bases ! m_idx), numberToPoly (pwtir_values ! (w_idx, m_idx))] | w_idx <- indices weights, m_idx <- indices mphs] | |
-- | Compute basis polynomial | |
basisPoly :: Integral a => a -> [Ratio Integer] -> Int -> [(Ratio Integer, [(a,Integer)])] | |
basisPoly b ts i = | |
let | |
n = polyMultiplyAll $ map (\t -> [(1, [(b,1)]), (-t, [])] ) ts /!! i | |
d = foldl (\d t -> d*((ts !! i)-t)) 1 (ts /!! i) | |
in polyMultiply n [( (1/d),[])] | |
-- HELPTER FUNCTIONS | |
-- | Infix operator to delete element from a list | |
xs /!! n = ys ++ (tail zs) where (ys,zs) = splitAt n xs | |
-- Polynomial Display Functions | |
baseTokens ns [] = "" | |
baseTokens ns bs = | |
concat $ | |
intersperse "*" $ | |
map | |
(\(b,e) -> | |
let Just bn = lookup b ns in | |
bn ++ if e > 1 then "^" ++ (show e) else "") bs | |
polyTokens ns = | |
map | |
(\(k, bs) -> | |
--((if k < 0 then "-" else "+"), (show (abs k)),"*", baseTokens ns bs)) | |
((if k < 0 then "-" else "+"), "(" ++ (show (abs (k))) ++ ")","*", baseTokens ns bs)) | |
ruleNoLooseStars = | |
map | |
(\(s,k,m,bs) -> | |
if null bs || null k then | |
(s,k,"",bs) | |
else | |
(s,k,m,bs)) | |
ruleNoLeadingPlus (("+",k,m,bs):ms) = ("",k,m,bs) : ms | |
ruleNoLeadingPlus ms = ms | |
processTokens = ruleNoLooseStars . ruleNoLeadingPlus | |
concatTokens = concatMap (\(t1,t2,t3,t4) -> t1 ++ t2 ++ t3 ++ t4) | |
--showPoly ns = concatTokens . processTokens . polyTokens ns . polyFloatify | |
showPoly ns = concatTokens . processTokens . polyTokens ns | |
-- Functions for symbolic manipulations on polynomials | |
polyProductIdentity = [(1,[])] | |
--polyAdditionIdentity = [(0,[])] | |
membersAdd p1@(k1,bs) p2@(k2,_) | |
| (polyHash p1 == polyHash p2) = (k1+k2, bs) | |
membersAddAll a@((_,bs):_) = foldl membersAdd (0, bs) a | |
memberMultiply (k1,bs1) (k2,bs2) = memberSimplify (k1*k2, bs1 ++ bs2) | |
groupBases bs = groupBy (\(b1,_) (b2,_) -> b1 == b2) . sortBy (\(b1,_) (b2,_) -> compare b1 b2) $ bs | |
memberSimplify (k,bs) = (k, filter ((/=0).snd) . map (foldl (\(_,e1) (b,e2) -> (b, e1 + e2)) (0,0)) . groupBases $ bs) | |
hashBase = toInteger $ max mphs_count weights_count | |
polyHash (_,[]) = 0 | |
polyHash (_,bs) = foldl (\h (b,e) -> h + e*hashBase^b) 0 bs | |
polyGroupByHash p = | |
map (map fst) . | |
groupBy (\(_,h1) (_,h2) -> h1 == h2) . | |
sortBy (\(_,h1) (_,h2) -> compare h1 h2) . | |
map (\x -> (x, polyHash x)) $ p | |
polySimplify p = filter ((/=0).fst) . map membersAddAll . polyGroupByHash . map memberSimplify $ p | |
polyMultiply p1 p2 = [memberMultiply m1 m2 | m1 <- p1, m2 <- p2] | |
polyMultiplyAll ps = foldl (\acc p -> polySimplify $ polyMultiply acc p) polyProductIdentity ps | |
polyAddAll ps = concat ps | |
numberToPoly x = [(x,[])] | |
polyFloatify p = map (\(k,bs) -> ((fromRational k :: Double) , bs)) p | |
polyCompute vs = | |
sum . map (\(k,bs) -> | |
(k*).product.map (\(b,e) -> (vs !! (fromInteger b :: Int) )^e) $ bs) | |
pwtirTest = | |
and $ | |
pwtirMap (\w_idx m_idx -> | |
let | |
w = toRational $ weights ! w_idx | |
m = toRational $ mphs ! m_idx | |
in polyCompute [w, m] pwtir_polynomial == pwtir_values ! (w_idx, m_idx)) | |
main = do | |
putStrLn $ showPoly variable_names $ polySimplify $ pwtir_polynomial |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Data.Ratio | |
pwtir x y = -(2152178128125761793289982828071119159109613935591743069592 % 1)+(631385761950148339077463635446494874165335240134770323733873 % 3080)*x-(4961085170038969660477002288033232137238519507247934127388399 % 554400)*x^2+(4772341930227294895004569076935109540229645737322527999557 % 20160)*x^3-(159766710543670207959467351079105789059314300528987853431 % 37800)*x^4+(2596266970565166163511187927605918329908706227052007347 % 48384)*x^5-(3604812421770479651329062827112145351189862270285894983 % 7257600)*x^6+(9078823700978064102874009099351600369247040575081 % 2688)*x^7-(40510890307284967923893919467516735857239917669027 % 2419200)*x^8+(1586823679260395510396244190138751011214053807 % 26880)*x^9-(113270117376636025071018311153724333785401169 % 806400)*x^10+(134745123553372047174793730633675576085719 % 665280)*x^11-(10685179108588858950315452439390345693037 % 79833600)*x^12+(25536896079871415772901402204651044073834020625431468131318170499825293 % 24067258815600)*y-(9194446720997780020927863210353461524705485966436915977486282761896804559 % 90974238322968000)*x*y+(529796106012365877623549629846222862332096297673838811888697789285387945903 % 120085994586317760000)*x^2*y-(402347331485909795772093228998847034542452799521554768053738814432818157 % 3447444820659840000)*x^3*y+(4379430852982484200957684049576767273820725034077110756859908588977393 % 2101650853236480000)*x^4*y-(1386279929786569286333719785371610322077066006058518453762018186707497 % 52401161274029568000)*x^5*y+(192479326828086422637653214996610048289497330968669341460530552052143 % 786017419110443520000)*x^6*y-(15308353568252515710387818555183711380866063121545229519388476411 % 9193186188426240000)*x^7*y+(4326162880355724049175107332810643676905610150650582064057648029 % 524011612740295680000)*x^8*y-(762556619451261554346646527379214004021561482681262609357557 % 26200580637014784000)*x^9*y+(234623018437414603918294925225551421416735359403098056393 % 3388006116855360000)*x^10*y-(52325203950207431000704681917935393098612756890700718759 % 524011612740295680000)*x^11*y+(39347233502992331780538087191958831682285312208470841 % 596289076566543360000)*x^12*y-(24958783531442163815690087241239026932033425814379143342851835270334008229559 % 98292610383615648000)*y^2+(12356157650463250001054480457536196502849772665044972293733990638290057545734323 % 510875842468842330480000)*x*y^2-(9414582171970017707656788240609854143600914303843534714979267021739021404118119 % 8917105614001611586560000)*x^2*y^2+(93394123832393968654185800843025831534541608234674137332698380678374025371797 % 3343914605250604344960000)*x^3*y^2-(3163686242781763044553998950282059754904995887461513953466346364103830792059 % 6344185812333162393600000)*x^4*y^2+(169361787540711098780435823497757230341417905015315260319629236320510759343 % 26751316842004834759680000)*x^5*y^2-(9406074361575933857041551921580795996211445373473326217547056700061504747 % 160507901052029008558080000)*x^6*y^2+(32175823810928309952096132066395811684213707807969312325943379734969 % 80743457738554490880000)*x^7*y^2-(4228212840462746465741757588698976825290257732447784044320085054148843 % 2140105347360386780774400000)*x^8*y^2+(1490582076325905337402308486853176705558375452450338105842800747047 % 214010534736038678077440000)*x^9*y^2-(625883221398997435284306630563902098977398886265522685664463307 % 37766564953418590248960000)*x^10*y^2+(180014319604691694769207511838690387469539486024465316484983 % 7533170822708561468325888)*x^11*y^2-(101384789139713371788263967611765018459179114842256536609613 % 6420316042081160342323200000)*x^12*y^2+(5947935225331943567444201896525439026642734765993636767209885607719238806394627 % 151370619990768097920000)*y^3-(254413314135799687943998177417675787955931350071145827319386412885287528857094125529 % 67975096095534285124346880000)*x*y^3+(166586573687519269462183806591105643664475837557916409282053816707167075274095263667 % 1019626441433014276865203200000)*x^2*y^3-(97514389440048656460455415982136923831808909322119118998050233579131369766899653 % 22562266821309554347008000000)*x^3*y^3+(396165355825101425025726320458515850357199413598908934601425002443411395232630341 % 5133783481341050904496128000000)*x^4*y^3-(10829671606310794047589983074466702738218779674936271900007431926332998518457 % 11054109359409302154608640000)*x^5*y^3+(484176803029642663512068551828662245751794596145717913253326367485843737205581 % 53391348205946929406759731200000)*x^6*y^3-(1829117662361032063906146527917135052261184400683973809662152254558204892867 % 29661860114414960781533184000000)*x^7*y^3+(3400729572594628625408596815551686821037317021035981348480179140854702489 % 11123197542905610293074944000000)*x^8*y^3-(47954677229852236843280017177126321962294056628913371263926011109211 % 44492790171622441172299776000)*x^9*y^3+(136923227450106016437561808623465013963228899541262394077002650134177 % 53391348205946929406759731200000)*x^10*y^3-(517087171378845855203753829733173959295499857648078737771369573641 % 139834483396527672255799296000000)*x^11*y^3+(3587897655500638293204344219521070023914435037425846593974009301 % 1468262075663540558685892608000000)*x^12*y^3-(10199745199611770788048582414690588954895746578936818990438015744309881981376843 % 2307956747153358292992000)*y^4+(693069656020725610538980698731350180096932886548876798907501362899210916489243049 % 1646455614770726629309440000)*x*y^4-(59249818130095418559729238015401308625757736673241091575433826070806296156265099677 % 3224418675966991030839607296000)*x^2*y^4+(25299887650046171832057767280298916056974325428333537537620375440299201569408647 % 52047047326429994686848000000)*x^3*y^4-(11448446435435522873519449014738600597602755439251068885435002637151512864874656247 % 1319080367441041785343475712000000)*x^4*y^4+(807470134022314509407066651740959004632287633805322083531114975231069591130327 % 7328224263561343251908198400000)*x^5*y^4-(33634143527092425756872419701566096809255916425807075829056876468741251466769 % 32977009186026044633586892800000)*x^6*y^4+(451778268983648897329816477411287585371257009171737134924870648846802177431 % 65139771231656384461406208000000)*x^7*y^4-(60476704476111774929855162003263590800197756660503896085301041916254727823 % 1758773823254722380457967616000000)*x^8*y^4+(7106660582869490599977862964706915463010112629157681715247142538959289 % 58625794108490746015265587200000)*x^9*y^4-(4909204527533362172100081531046587191145217137690293541699337162781 % 17020391837948926262496460800000)*x^10*y^4+(2682045018606806793029002021516902615600933738908592624277135223693 % 6448837351933982061679214592000000)*x^11*y^4-(22372053667215707001564985242999111228850805800204828108218571 % 81401874007581821255417856000000)*x^12*y^4+(56768792440366324020737983993543749240287771178506581477794718201165693040413357 % 147465796217709505536000000)*y^5-(57473860226149133883943839143050097858748752938994109907015644479569336657811235133141 % 1567425745261731751102586880000000)*x*y^5+(14887826718549274570064188837945462439887674286865131374083070312852359810535937435109 % 9301207719135551050498867200000000)*x^2*y^5-(6516235083050148383413373328904470854906263527867276983149777044053429936954614897423 % 153892709534788208290072166400000000)*x^3*y^5+(937849523650115272930678551139571848817448232027102217469271409744934122928466181 % 1240514452138910769915494400000000)*x^4*y^5-(887796768055003982936981683086011224596292777779101954888268211242840417685837 % 92497496339466992210411520000000)*x^5*y^5+(70314891470094204790048705318017131699434542847258985290417703485723716586923527 % 791448220464625071206085427200000000)*x^6*y^5-(15495351396028483333586853086243612830556468474251229174640983759355754873069 % 25648784922464701381678694400000000)*x^7*y^5+(98774478103446323130185363828269832745469163546841317764744914843288410851 % 32977009186026044633586892800000000)*x^8*y^5-(1299990116844127947757113820620449093130683611784521340011725681555694339 % 123114167627830566632057733120000000)*x^9*y^5+(19884702045671409803175195530175547716943773263300197370120865233545139 % 791448220464625071206085427200000000)*x^10*y^5-(7214916016881416765748029190304144877165419077473444499663801582583 % 199155271162667093081269862400000000)*x^11*y^5+(13026307281324960505773879024963873832432943703708841097673315233 % 544120651569429736454183731200000000)*x^12*y^5-(193998828547980119435095769452088469993964584758619704194525272549800370763663 % 7178395641195018240000000)*y^6+(603688790847746193885731373076902688837105633321102269619281673317769921346909197 % 234518185597841245900800000000)*x*y^6-(79689903875351096279327880980796436791358266381329159049042309937940798688769632083 % 709182993247871927604019200000000)*x^2*y^6+(47911216145977619443702057772126330504847930873458060862871671777532931550911189 % 16117795301087998354636800000000)*x^3*y^6-(615916954928656612741815149032050810117683093124378549144323236086594991173344371 % 11604812616783358815338496000000000)*x^4*y^6+(130323575943659533094591678286771574048499548942766406173571772903012959794329 % 193413543613055980255641600000000)*x^5*y^6-(5790356155087172360139055540511518677914766784754024068884457582003182237151 % 928385009342668705227079680000000)*x^6*y^6+(6249918968441189042233471183702419754349088766908181118096378741321671127 % 147362699895661699242393600000000)*x^7*y^6-(3253586509902363101223117763524885094906443039751950880784574859741256639 % 15473083489044478420451328000000000)*x^8*y^6+(382330962576436508302277332818093905987903593921383828012839480785507 % 515769449634815947348377600000000)*x^9*y^6-(4093703401635530904453793150099969766281102097904833186035374674077 % 2320962523356671763067699200000000)*x^10*y^6+(3462984167279811311875688093514789967140433108929691925801791729 % 1361631347035914100999716864000000)*x^11*y^6-(858159931361451829318208777185390831091693969354515614727721639 % 510611755138467787874893824000000000)*x^12*y^6+(28708519795225133246783633113160717888842754230494801295632431849289265446836741 % 18274144332299317862400000000)*y^7-(106119884058071580023965182671001139545839633530415980610778689513187434137354881643 % 709182993247871927604019200000000)*x*y^7+(21380256058689003797941042523824869044356672651045097866136880067891768036617637861 % 3273152276528639665864704000000000)*x^2*y^7-(217963311429353457451925593927561213887983528894174875709911410414321118629493957 % 1261392675737321610362880000000000)*x^3*y^7+(537050077146427700695555277196664445689602307066348204234406605922736459313113617 % 174072189251750382230077440000000000)*x^4*y^7-(33057707712842855874849197912746996865738270965290492238260578286184856615767 % 843986372129698822933708800000000)*x^5*y^7+(201956368276668982056778328909033696583326110961939021922213571416164755353101 % 557031005605601223136247808000000000)*x^6*y^7-(4334927782583152737949303475951974748206049731406642641188212867059582537 % 1758304941936872547778560000000000)*x^7*y^7+(11347868380255244414043563464631074921438794235722102682390393399117512427 % 928385009342668705227079680000000000)*x^8*y^7-(400048349415192490033340100306281420984544934072305107711361001227473 % 9283850093426687052270796800000000)*x^9*y^7+(3359533897846263763970355619620320824335972084175920629512810573471 % 32766529741505954302132224000000000)*x^10*y^7-(188721743714439230885956888476230063837508916184708160570880216729 % 1276529387846169469687234560000000000)*x^11*y^7+(2993087860365127429722043521152944611169446133159338009879888817 % 30636705308308067272493629440000000000)*x^12*y^7-(544151769726759814629978308017629114178657402370625549639436560778478293789687 % 7057600569715598622720000000)*y^8+(71836938265893119315714444632638619725830044500285530516705750407546673774798519 % 9781834389625819691089920000000)*x*y^8-(11289075692224359994474453487986784277863868091396260207812335372052792283786419663 % 35214603802652950887923712000000000)*x^2*y^8+(5429776178896285508096692848688714578540615095384009269413294384046144236687829 % 640265523684599107053158400000000)*x^3*y^8-(17450447294820459548988639305392791195740063455379117542665224861813577757103783 % 115247794263227839269568512000000000)*x^4*y^8+(547020093549099618366698062322553346983155338845992966533336554522484838959 % 284562454970932936468070400000000)*x^5*y^8-(4101370550098984956283781286589793861592805103371981973790956784902938314953 % 230495588526455678539137024000000000)*x^6*y^8+(3414673474617090621132512582878615390801485995273863670192403606569107 % 28221069914472687914188800000000)*x^7*y^8-(92181844279918003887996419908539961928515909747187412475287340163232727 % 153663725684303785692758016000000000)*x^8*y^8+(10832336863597138918018559468069976863198265677910332439674820352513 % 5122124189476792856425267200000000)*x^9*y^8-(969767291978929458267895864423765118534778253676656316710220251 % 192722063985330834898944000000000)*x^10*y^8+(54507967493185726109305544689231852709663258765858052098240741 % 7512448811232629522757058560000000)*x^11*y^8-(24313633601192240035270735511021838592337686327463564222241607 % 5070902947582024927861014528000000000)*x^12*y^8+(305580540230153933290467735954543703965187874098123689896855944432741312169 % 94275925977648070656000000)*y^9-(501787644360344948263177469830436555909046288335040366761145414349773074774627759 % 1625289406276290040981094400000000)*x*y^9+(488151270544649864203123363960073834021929602216099555355764389726561138063905343 % 36220735339871606627578675200000000)*x^2*y^9-(246528479613979242500312776322058187892663111299343774587965684829205123911225901 % 691486765579367035617411072000000000)*x^3*y^9+(26410115987061208940837336588171350285182461287360789157908770986738538157820413 % 4148920593476202213704466432000000000)*x^4*y^9-(44705464726884320199237045314068608187336881732113587916940312937288545132929 % 553189412463493628493928857600000000)*x^5*y^9+(31035762235145011336843447885782752644993733042623021557336001144702704689 % 41489205934762022137044664320000000)*x^6*y^9-(2344925501408694652376509438889452134945172354310827570906473095834711267 % 460991177052911357078274048000000000)*x^7*y^9+(9965071392741077578171093030710174299929958342852658193834963102479853 % 395135294616781163209949184000000000)*x^8*y^9-(9836402481320740472717852334495072679807834267194459259300120916557 % 110637882492698725698785771520000000)*x^9*y^9+(175534068850344508770234654941076635183658903090766772522588589499 % 829784118695240442740893286400000000)*x^10*y^9-(580036148114113187489087803943631205566557234731176654837897199 % 1901588605343259347947880448000000000)*x^11*y^9+(18398491939096721474032983139402115890360171342035251029286221 % 91276253056476448701498261504000000000)*x^12*y^9-(68722660145319308461306207449661616716172174796896956966087083786795855037 % 582292483979591024640000000)*y^10+(12500962070742354638470433753944424194002370921557648201987095684861253122651791 % 1112040120083777396460748800000000)*x*y^10-(116642627767539638172896417930826387905107934515985828325202585040995566000203521 % 237698575667907418493485056000000000)*x^2*y^10+(1632066285220579794117289494499529827250654886344044793650621443837140363154991 % 125724866468975824657711104000000000)*x^3*y^10-(23359192255012514255734641967627958222564191573611752458267151022584554742783 % 100783496197802482923995136000000000)*x^4*y^10+(3255544634031901203379637523096548022974553607756651552803324312170752385359 % 1106378824926987256987857715200000000)*x^5*y^10-(2712105193182821257920366239385536639863393662870083460100433676496349941819 % 99574094243428853128907194368000000000)*x^6*y^10+(37947155872106488728245775663556725493048530232957027416113499903489671 % 204884967579071714257010688000000000)*x^7*y^10-(30478404345042277822434447331475848859659715377513253725841160335673289 % 33191364747809617709635731456000000000)*x^8*y^10+(3581530400118765045352296692595069389953570527304135813801206954977 % 1106378824926987256987857715200000000)*x^9*y^10-(45115515072883611873943088720677584768822166473244683803641016729 % 5857299661378167831112187904000000000)*x^10*y^10+(675829332294999412037282807411031771853656093077254210726382069 % 60850835370984299134332174336000000000)*x^11*y^10-(8038875345163893879958696414195131711035409166711259922681919 % 1095315036677717384417979138048000000000)*x^12*y^10+(128759792109820109366329533608442683184406851632836286052592578486216461620589 % 34299938768817809306419200000000)*y^11-(31730309313125640410154611709005480406038222234907851613450489574151907880093183 % 88740801582685436237567754240000000)*x*y^11+(89042294988518693733976558161890708112258883061506011530073280561675165558909441 % 5704765816029778043843641344000000000)*x^2*y^11-(43542511587125503449313087556188148171414484340084440195288482426768984955917 % 105455498018639852926402560000000000)*x^3*y^11+(393256094363100551245319077985930650793714934245435902383528933815865493283681 % 53343264773265457033343139840000000000)*x^4*y^11-(434910848820682158136119281368692262003297488514321020214860592482591651799 % 4646791064693346479349002403840000000)*x^5*y^11+(258794420888429273910376794125260359687461283006294643911742764731482129493 % 298722282730286559386721583104000000000)*x^6*y^11-(380204047799848224879892940857560280285783277483548560643095327466590097 % 64538764787407589990958366720000000000)*x^7*y^11+(14541535317497328352816721908851441350702948138951323870110769471510363 % 497870471217144265644535971840000000000)*x^8*y^11-(797431310079671085084672391111772215041241907696312194265981689303 % 7744651774488910798915004006400000000)*x^9*y^11+(73185074928264994234844237778524378289659607338107878752860244471 % 298722282730286559386721583104000000000)*x^10*y^11-(2257109272304156363548631884485221390066479356610832984083213001 % 6389337713953351409104878305280000000000)*x^11*y^11+(3835417311889986083011325312949766519404058777913499749099773 % 16429725550165760766269687070720000000000)*x^12*y^11-(12313624272316659671893933082627619854461681042862862449573655006551480101 % 117264747927582254039040000000)*y^12+(1393369201141539177110045167704007744565060415262266430964745664872472921199 % 139310520537967717798379520000000)*x*y^12-(255459991689529918594601483860724294856032850134945389565248557045112327366999 % 585104186259464414753193984000000000)*x^2*y^12+(38801043798933902645677174742360862588497433713121235763524206769127926133 % 3359449873260082764133171200000000)*x^3*y^12-(8584438274655352281768864380791995451382918769564311163910945990148885999 % 41627965820831460338171904000000000)*x^4*y^12+(2005306491665494572788552086388568830062440161484765228154891198726997459 % 765954571103298870222363033600000000)*x^5*y^12-(185618296011089879919885913704377324411227667158619081084773370663792563 % 7659545711032988702223630336000000000)*x^6*y^12+(707116846709341233858534510277226700777130081344566397689901192511 % 4291062022987668740741529600000000)*x^7*y^12-(1042979532839796325031619726390696472583177143541759828177771006063 % 1276590951838831450370605056000000000)*x^8*y^12+(10213406199879185208219595662772999173416788842006861048850061 % 3546085977330087362140569600000000)*x^9*y^12-(52491344078867285171800364000613050108866764348250181540137291 % 7659545711032988702223630336000000000)*x^10*y^12+(33302898293544249113364304283156399171818245447443258109833 % 3370200112854515028978397347840000000)*x^11*y^12-(34386458760904909893366640210463328904860774548261517751 % 5265937676335179732778745856000000000)*x^12*y^12+(181328690179900815132810113282210224108058403915469347110104810032219193 % 69829834856124169322496000000)*y^13-(318379499456920115093585782353623954121709413316656938436958796954159445852607 % 1287229209770821712457026764800000000)*x*y^13+(18530667329675510148419888282628440087285767769611667203851768159015628279117 % 1716305613027762283276035686400000000)*x^2*y^13-(12032268742442289083972992798593478079836931254593852465891356700623938805221 % 42127501410681437862229966848000000000)*x^3*y^13+(429663831773017273335596991586725020258552433239504770421465165915727385111 % 84255002821362875724459933696000000000)*x^4*y^13-(128348485803555193981264581902144830173488640894287605819099547480292977 % 1982470654620302958222586675200000000)*x^5*y^13+(776794552790710889373461815224323565933706018122715786988281053913699 % 1296230812636351934222460518400000000)*x^6*y^13-(114447608598390667069402274141989873320378817714157781453740431177357 % 28085000940454291908153311232000000000)*x^7*y^13+(1134838797314815037003126182179630895037111197515599505402330870487 % 56170001880908583816306622464000000000)*x^8*y^13-(480078839933168590515645950327674880043201935605362924036348917 % 6740400225709030057956794695680000000)*x^9*y^13+(109835412554091710659644078699413986512711193467468919782047 % 648115406318175967111230259200000000)*x^10*y^13-(113237405653842019766990721983650102862306066788572754203041 % 463402515517495816484529635328000000000)*x^11*y^13+(299319574570628322517495260211727720895008262594031947937 % 1853610062069983265938118541312000000000)*x^12*y^13-(99735826114208186223328864602656951453266456909826804821968226736486647 % 1749793977771575199399936000000)*y^14+(1316673063217757653526564007787914079209856865661735978170146460320822463669 % 242521445319140322636831129600000000)*x*y^14-(1724273934256236201363236521360992380933483185404348449045455651107251570957 % 7275643359574209679104933888000000000)*x^2*y^14+(43288353012440874720490276911447394164247162134456551713798353056254883 % 6904798158479221491499008000000000)*x^3*y^14-(10661354658853942681860639868669110584756687383181843844860141385092479267 % 95244785798062381253737316352000000000)*x^4*y^14+(54140603413634178942007612339527775561176419030987515076854797443303977 % 38097914319224952501494926540800000000)*x^5*y^14-(5011442675053023025930386034653505116540215414096322063189975843600341 % 380979143192249525014949265408000000000)*x^6*y^14+(5679626686833532695811035923378439454250409647553943859078880423799 % 63496523865374920835824877568000000000)*x^7*y^14-(56317979853227351089234073518884690571628296512521274756511100123 % 126993047730749841671649755136000000000)*x^8*y^14+(2205979771878376950656617680240526758269514334350702301193353 % 1411033863674998240796108390400000000)*x^9*y^14-(1417190633285519016148011098732686422561480183341885871518447 % 380979143192249525014949265408000000000)*x^10*y^14+(11239118958378235195126026456065820071112863790571177206689 % 2095385287557372387582220959744000000000)*x^11*y^14-(14854132776022251121914859860124424542213912187141929493 % 4190770575114744775164441919488000000000)*x^12*y^14+(41767501816625736646044078217392958918937423932409495462889720774763423 % 37495585237962325701427200000000)*y^15-(154391406603608039153258128270711845555922643560752370708473287388786385711 % 1455128671914841935820986777600000000)*x*y^15+(19255817762310878052801120926588274468271588496613986664367165892489205707 % 4157510491185262673774247936000000000)*x^2*y^15-(429028321186405638157351275854698482172792647498912149295959657834739499 % 3501646536693469899034460160000000000)*x^3*y^15+(1214195215063219839779635239045540336140417155180376854296205471668571 % 555039544277752804508958720000000000)*x^4*y^15-(48094304409838373104060364981892627932078471945111056555706140413199 % 1731723378146588750067951206400000000)*x^5*y^15+(10882115235393233572800357240765506440324951758470575545732215525467 % 42331015910249947223883251712000000000)*x^6*y^15-(554986838197105428267178012827664535978015129844763017504722578543 % 317482619326874604179124387840000000000)*x^7*y^15+(262053817193425432455143794000110522113514107949278591126495987 % 30236439935892819445630894080000000000)*x^8*y^15-(72750811678685852124340417188421854076910907617532195583801 % 2381119644951559531343432908800000000)*x^9*y^15+(543063301265182989282063718842296581878563327279396750231 % 7470179278279402451273515008000000000)*x^10*y^15-(1098232905271267148293605232457867685309474973949312056723 % 10476926437786861937911104798720000000000)*x^11*y^15+(17919433966965702701724452227349887892500069154155057 % 258689541673749677479286538240000000000)*x^12*y^15-(321033457536929853548719831720355785030818274021160985395438184661 % 16526979719212044386304000000)*y^16+(85878380870719162739147645658091359438455952777182450671295415855571 % 46415587620888100026187776000000)*x*y^16-(170944608378375079698254859060435815559600169750578147199092041322222751 % 2116550795512497361194162585600000000)*x^2*y^16+(123330033407167082195849204232826032348471216247558348616086670968627 % 57724112604886291668931706880000000)*x^3*y^16-(88080465825485688332648210096372610873963834798902635205378007207467 % 2308964504195451666757268275200000000)*x^4*y^16+(335468093931073406960478456897946085988404587758209188956664165129 % 692689351258635500027180482560000000)*x^5*y^16-(431278741728374776643625093347285217077098769650020399637520749 % 96206854341477152781552844800000000)*x^6*y^16+(2963559179967490155015432819520859837618935551390493624401229 % 97219558071387438600306032640000000)*x^7*y^16-(465278392334254270897498737761373689960700139788364586678723 % 3078619338927268889009691033600000000)*x^8*y^16+(164024792733009452650073324220774594393348769563490401971 % 307861933892726888900969103360000000)*x^9*y^16-(5854143776871816741340361316175891071210342853588264739 % 4617929008390903333514536550400000000)*x^10*y^16+(22284775281399900355341385796331225743187991159777843 % 12191332582151984800478376493056000000)*x^11*y^16-(40906322405878759588485337708257063595062330523181 % 33864812728199957779106601369600000000)*x^12*y^16+(924417531681980186300621473775748798563281518253571041554522624731 % 3054185852110385802588979200000)*y^17-(85426471171348497298629437178144490482935613836464144981593171075066031 % 2963171113717496305671827619840000000)*x*y^17+(37826443896292613472353854293501805487581778545683312729532629861203 % 30057526090118305721100533760000000)*x^2*y^17-(3228446019509808452906701800477273898707511319349809562548777338331353 % 96976509176208970003805267558400000000)*x^3*y^17+(2600421382575789956155594315664601365700470495868711511870767313813 % 4374880113212434737013771468800000000)*x^4*y^17-(53222051511403308692811124324454260316551601791978295517337144967 % 7052837030997016000276746731520000000)*x^5*y^17+(82944698355535042909816548021221527103767184975615095664548001 % 1187467459300518000046595112960000000)*x^6*y^17-(2791626207440346287972068699378107363385644406532110285309241 % 5877364192497513333563955609600000000)*x^7*y^17+(130496815995839554479488390476573043174837769301830345223549 % 55415148100690840002174438604800000000)*x^8*y^17-(128811424440877808196294823126546387672390414652193915353 % 15516241468193435200608842809344000000)*x^9*y^17+(328382538433950215541402684446022747204375312574536199 % 16624544430207252000652331581440000000)*x^10*y^17-(893616926289532437574803538226707962204124625072657 % 31374752968773490295348763033600000000)*x^11*y^17+(34418980948520965326736246336739694668645217724699 % 1828699887322797720071756473958400000000)*x^12*y^17-(237116459954892930876828425590174694530864588279350322915462631 % 56228242891354297860096000000)*y^18+(2414813003441973090382376086210457218296909363016182552636576360907 % 6011923729943601527201464320000000)*x*y^18-(11068255620023187578028863955197795030209532184322445417965829846669 % 631251991644078160356153753600000000)*x^2*y^18+(1277651064931794896584643439223116543901591917107858720606420457373 % 2754554145355977427008670924800000000)*x^3*y^18-(136871784215754469993760609095559958661098097364301998817236466947 % 16527324872135864562052025548800000000)*x^4*y^18+(695062625060024906860191827730733028443873504062166351626295397 % 6610929948854345824820810219520000000)*x^5*y^18-(64337312278110840193102380383389502821640364456504981778066849 % 66109299488543458248208102195200000000)*x^6*y^18+(135279027356998591063831474631671464362634586665651782899 % 20441960262382021721771212800000000)*x^7*y^18-(723012505975684036934361209015797191469616372508817822003 % 22036433162847819416069367398400000000)*x^8*y^18+(28320411433106312714367558850600258060317217141732633 % 244849257364975771289659637760000000)*x^9*y^18-(1070228894603359164648764027768408901785797606471979 % 3888782322855497544012241305600000000)*x^10*y^18+(144287554272043684276148203484029025142306820880851 % 363601147186989020365144562073600000000)*x^11*y^18-(190696703574115283419339324450512026027656890133 % 727202294373978040730289124147200000000)*x^12*y^18+(147605690034185995506528305553569676907902265821718119417841393 % 2809586552266047545671680000000)*y^19-(6001775262931098919722632580542923223734774161932147650460167566767 % 1199378784123748504676692131840000000)*x*y^19+(268708446451007753371603280559393178921137589627118947277003912471 % 1230132086280767697104299622400000000)*x^2*y^19-(826149525403347678716866429445485971472484715160138015262908033 % 142969938340275645000450048000000000)*x^3*y^19+(161990796549846446116471540320818379634426925358423944440497655147 % 1570095862852907133394942427136000000000)*x^4*y^19-(164524344896600136426539364489692623460066301841521619056850529 % 125607669028232570671595394170880000000)*x^5*y^19+(15228915363914812823092077908699578863257642922393169538774551 % 1256076690282325706715953941708800000000)*x^6*y^19-(4541941368381112153266412720803571874045493384320830042913 % 55091082907119548540173418496000000000)*x^7*y^19+(855699975973867376533243246859521471173210251726317271933 % 2093461150470542844526589902848000000000)*x^8*y^19-(36199189472193200657960438211882076017466276704089647 % 25121533805646514134319078834176000000)*x^9*y^19+(4306564369219477361643878007675197225117300429840917 % 1256076690282325706715953941708800000000)*x^10*y^19-(170767038190376428250499539027669993244759077147717 % 34542108982763956934688733396992000000000)*x^11*y^19+(225693046620375941643223467046944660015860027243 % 69084217965527913869377466793984000000000)*x^12*y^19-(11276472788055526666487264537862114332619512646696354544589 % 19281476339080718450688000000)*y^20+(770606680992596462074937669696454252365029168182646296933893 % 13833665330147041576432435200000)*x*y^20-(428893029392106888738703908757837560436801858350577077019562341 % 176379232959374780099513548800000000)*x^2*y^20+(450079299642687023263186953617718853141922776602850370950747 % 6996862133925611111385661440000000)*x^3*y^20-(2651875002237086860812254958939953779408058828176116367010759 % 2308964504195451666757268275200000000)*x^4*y^20+(13466747238452182546080682402261241396168453189749014900149 % 923585801678180666702907310080000000)*x^5*y^20-(1246525985572013129970748596573276091358294096373858433393 % 9235858016781806667029073100800000000)*x^6*y^20+(14870778406509390553753903028542394849788685253137953 % 16203259678564573100051005440000000)*x^7*y^20-(14008238440971771919105840162904086862811604168538071 % 3078619338927268889009691033600000000)*x^8*y^20+(548702474235665425755916877674127387551733911853 % 34206881543636320988996567040000000)*x^9*y^20-(27115601544110085019601296202609133158931163327 % 710450616675523589771467161600000000)*x^10*y^20+(111821549482549406924993129768563922879508649 % 2031888763691997466746396082176000000)*x^11*y^20-(3694702434012267563899054740990956364281161 % 101594438184599873337319804108800000000)*x^12*y^20+(2484901253546589414652666929279290316841432792709428529 % 427757122144311737057280000)*y^21-(1501441172624751323204136390038173931749635852180419527838501 % 2713526660913458155377131520000000)*x*y^21+(97375450939212334639850632018177295388827990356141130764921 % 4031525324785709259417452544000000)*x^2*y^21-(92206465559117228903182156038624121290376666621908039206593 % 144310281512215729172329267200000000)*x^3*y^21+(4390156521915758472756852085488478393006641396865481915749 % 384827417365908611126211379200000000)*x^4*y^21-(66882229837149528915178812184567486822403402730791269513 % 461792900839090333351453655040000000)*x^5*y^21+(825444603756542005234898167785570104874827556631297243 % 615723867785453777801938206720000000)*x^6*y^21-(14032497916049973747511231848923769354088173277932271 % 1539309669463634444504845516800000000)*x^7*y^21+(6625852021713198601854415099527943477618054209301 % 146600920901298518524271001600000000)*x^8*y^21-(1839450134195432152328738495473325015403375049 % 11544822520977258333786341376000000)*x^9*y^21+(233425598351160299291369480121420457658779397 % 615723867785453777801938206720000000)*x^10*y^21-(1633403782566156241539573589862437878206963 % 2988071711311760980509406003200000000)*x^11*y^21+(12233056867168068016333196812054614742757 % 33864812728199957779106601369600000000)*x^12*y^21-(3113251217434160157317554415065365573724571242321385719 % 60598925637110829416448000000)*y^22+(57539701410403605328676335888180495501646666786299140583433 % 11758615530624985339967569920000000)*x*y^22-(12558659860134671252489289672152507729070147159478770081833 % 58793077653124926699837849600000000)*x^2*y^22+(621296495416900658258922247530763793539276857439986279359 % 109950690675973888893203251200000000)*x^3*y^22-(35838891244798419737594015845927670289538403665768175123 % 355225308337761794885733580800000000)*x^4*y^22+(2365959073061440633035138092181478534193376586512775009 % 1847171603356361333405814620160000000)*x^5*y^22-(219000700695883448483703115931656661012395720697115469 % 18471716033563613334058146201600000000)*x^6*y^22+(22563602345265762402358990017349003905744660591071 % 279874485357024444455426457600000000)*x^7*y^22-(2461087108480795980284277342672675029216709380071 % 6157238677854537778019382067200000000)*x^8*y^22+(41314569950015528496444562065126111554809129 % 29320184180259703704854200320000000)*x^9*y^22-(61930607510291786212159182922405582474074463 % 18471716033563613334058146201600000000)*x^10*y^22+(491142931868207338753903536261251045913311 % 101594438184599873337319804108800000000)*x^11*y^22-(649114765270715189768909572539823288801 % 203188876369199746674639608217600000000)*x^12*y^22+(644075107070834679303285736059416902046095655664994951 % 1597034186061358316912640000000)*y^23-(149989316439041113767829822376754563165380567833261540895523 % 3904595269638159194452981186560000000)*x*y^23+(732998267606117584487973299573708408654988853511740219771 % 437132531644621903985406640128000000)*x^2*y^23-(906941569378790025881202360763361518524036794501391498261419 % 20445880684650724509135610576896000000000)*x^3*y^23+(13879763559089983558157173282431942245575127723857779648199 % 17525040586843478150687666208768000000000)*x^4*y^23-(32892583383980791930085813582780700624893397269038402993 % 3271340909544115921461697692303360000000)*x^5*y^23+(260969224761134572060446926716512590087279493921035747 % 2804006493894956504110026593402880000000)*x^6*y^23-(17252877180143889462548856476533611461937564138905431 % 27261174246200966012180814102528000000000)*x^7*y^23+(73317969816916395183693421167703806222423376441661 % 23366720782457970867583554945024000000000)*x^8*y^23-(36185437969994801716853400504175178823422261443 % 3271340909544115921461697692303360000000)*x^9*y^23+(4341097070773992442233318428680846235144473 % 164941558464409206124119211376640000000)*x^10*y^23-(34140320204228674294430679571849084292381641 % 899618750124631878401966865383424000000000)*x^11*y^23+(19337673037381817291176821034872419413931 % 771101785821113038630257313185792000000000)*x^12*y^23-(962730561614664187266656366807351065755086334469241 % 343976593920907945181184000000)*y^24+(871511286090246144641570034108241074230411157763792009 % 3269153548624309111001972736000000)*x*y^24-(79890963033168654514905625307402856996736295763303797611 % 6865222452111049133104142745600000000)*x^2*y^24+(41918624230196789021085115281256160716594252298661581 % 136169701529475354706197872640000000)*x^3*y^24-(10738472271654224695248314794947116733177172342299929 % 1953739195857689871871534694400000000)*x^4*y^24+(1254236099395058666960932574095126932926253784108627 % 17974400601890746821218119188480000000)*x^5*y^24-(116095990533865657202917251557637781001483812115039 % 179744006018907468212181191884800000000)*x^6*y^24+(1879638992064944900033389545733674718487594779 % 427961919092636829076621885440000000)*x^7*y^24-(1304661940026289022407119122406265649517261023 % 59914668672969156070727063961600000000)*x^8*y^24+(51103503133408446088039949824501767854009 % 665718540810768400785856266240000000)*x^9*y^24-(32830358943043083608609833866213884276873 % 179744006018907468212181191884800000000)*x^10*y^24+(260362137217818042617450290326252299 % 988592033103991075166996555366400000)*x^11*y^24-(344105056339704427237750282094934293 % 1977184066207982150333993110732800000000)*x^12*y^24+(120873736139158142454524621953422399512017391047609 % 7076089932087249158012928000000)*y^25-(2234008752538615519247566242672778644138991141110653489 % 1373044490422209826620828549120000000)*x*y^25+(650127871633078027381344613035378844194773422667833819 % 9153629936148065510805523660800000000)*x^2*y^25-(16885470842775062293865557895792570012399049019307137 % 8987200300945373410609059594240000000)*x^3*y^25+(274075169584806270168529110505154539896885716679313 % 8170182091768521282371872358400000000)*x^4*y^25-(2420530905571845160765126912139247914228773409 % 5683604933404188718171737292800000)*x^5*y^25+(708563725439673001204401897591923200162059257927 % 179744006018907468212181191884800000000)*x^6*y^25-(20075853188214942196226518352898953267664701 % 748933358412114450884088299520000000)*x^7*y^25+(1990670316737204718320488439883419242244219 % 14978667168242289017681765990400000000)*x^8*y^25-(16842462597958044581810577261197637479753 % 35948801203781493642436238376960000000)*x^9*y^25+(200371805226400793750748725266332876059 % 179744006018907468212181191884800000000)*x^10*y^25-(317810778807216243189350171825319757 % 197718406620798215033399311073280000000)*x^11*y^25+(525039140354230806666617125008449 % 494296016551995537583498277683200000000)*x^12*y^25-(47517271098529035400748885757156538619958382157 % 521734065645713558077440000000)*y^26+(23461069754077670576520979732017289778172778823866751 % 2704481572043746628192541081600000000)*x*y^26-(614474779979729267613126098270775859209397311453739 % 1622688943226247976915524648960000000)*x^2*y^26+(354654737779132215221723567420131800166129743801187 % 35404122397663592223611446886400000000)*x^3*y^26-(189966074235285203680369934893408369691620055691793 % 1062123671929907766708343406592000000000)*x^4*y^26+(964683072641322608703190795189515471962273185543 % 424849468771963106683337362636800000000)*x^5*y^26-(17858798052058970650616281254390734027657859487 % 849698937543926213366674725273600000000)*x^6*y^26+(20239842866187868187066811159908238456582191 % 141616489590654368894445787545600000000)*x^7*y^26-(1003465145656045224062006898202460682024737 % 1416164895906543688944457875456000000000)*x^8*y^26+(39305616550913552263565238900837488227 % 15735165510072707654938420838400000000)*x^9*y^26-(297071019377996137640097283977386069 % 49982290443760365492157336780800000000)*x^10*y^26+(40050785935092545368738229843598973 % 4673344156491594173516710989004800000000)*x^11*y^26-(11507104944628176120588018012769 % 2031888763691997466746396082176000000000)*x^12*y^26+(897229417312101221928477531987859653602457217 % 2133329524979922055987200000000)*y^27-(162510775063607129914531163579970985428639206822989 % 4056722358065619942288811622400000000)*x*y^27+(40536751461988426452260951394840207174422351193923 % 23181270617517828241650352128000000000)*x^2*y^27-(7225382686831623911057911389816947364844450295539 % 156194657636751142162991677440000000000)*x^3*y^27+(337400150378295625277014486160813409871173334999 % 408509104588426064118593617920000000000)*x^4*y^27-(404980739916795712733320784211496186776915203 % 38622678979269373334848851148800000000)*x^5*y^27+(412348530386734613432747084651496196779915679 % 4248494687719631066833373626368000000000)*x^6*y^27-(212420537424049457010273352764206262606017 % 321855658160578111123740426240000000000)*x^7*y^27+(1378554567975516060626601551555356499 % 421302105047463464313815040000000000)*x^8*y^27-(4900721953587170053949970838953421147 % 424849468771963106683337362636800000000)*x^9*y^27+(116605951751914791106611975428543053 % 4248494687719631066833373626368000000000)*x^10*y^27-(4623729047988725793959007979929757 % 116833603912289854337917774725120000000000)*x^11*y^27+(6110898313649272516388395923203 % 233667207824579708675835549450240000000000)*x^12*y^27-(5796992973362640667598469909794676600464849 % 3484438224133872691445760000000)*y^28+(125310963572669320198931219684165596901928119 % 790784085392908370816532480000000)*x*y^28-(420922703008941537971727240617174049821667993041 % 60850835370984299134332174336000000000)*x^2*y^28+(1619617453018539155052627344286306091314085949 % 8851030599415898055902861721600000000)*x^3*y^28-(2795464330911812281554600240767098541604779 % 855631314658894548905754624000000000)*x^4*y^28+(629350528204700205062356600191975739709119 % 15173195313284396667262048665600000000)*x^5*y^28-(1223345463646395749079432315464140650108943 % 3186371015789723300125030219776000000000)*x^6*y^28+(494277459781266524867736614822814377 % 189326857741516535955141427200000000)*x^7*y^28-(13747649993407374793717643407517339281 % 1062123671929907766708343406592000000000)*x^8*y^28+(1615480365103592561568490505866289 % 35404122397663592223611446886400000000)*x^9*y^28-(49420442317022317868566846083643 % 455195859398531900017861459968000000000)*x^10*y^28+(5225728440839175234749327303 % 33381029689225672667976507064320000000)*x^11*y^28-(3625923520626238267120604671 % 35050081173686956301375332417536000000000)*x^12*y^28+(1286262564625195479589300139684469616744093 % 231493404927003105718960128000000)*y^29-(435836204426932956269333770008663312379166200273 % 823514638687320848284628759347200000000)*x*y^29+(7526427746952948681359084433076813814001892477 % 325786010909269786134578410291200000000)*x^2*y^29-(358065434543245340918898072142955477266909289 % 585899742939595860439656824832000000000)*x^3*y^29+(189052841221572256398547988987796210538423547 % 17325892398356620444429851820032000000000)*x^4*y^29-(4880399710085943622896198348266558178223 % 35230572778067202065652567244800000000)*x^5*y^29+(14218321147616625341318636668443915459349 % 11088571134948237084435105164820480000000)*x^6*y^29-(313327300560114131761679923863289610221 % 35935184233628546106965618589696000000000)*x^7*y^29+(3994545049211824075169060688403256917 % 92404759457901975703625876373504000000000)*x^8*y^29-(328577939083074330536593793447819 % 2156111054017712766417937115381760000000)*x^9*y^29+(99032358715372256437093101757 % 273117515639119140010716875980800000000)*x^10*y^29-(68890205162841934610918843869 % 131762342189971335725540601495552000000000)*x^11*y^29+(741417266018215050923327 % 2145923337164507528655632596992000000000)*x^12*y^29-(1976228047993951133213835710270343841597 % 128607447181668392066088960000000)*y^30+(24598407179407440677870457774408696291423379 % 16806421197700425475196505292800000000)*x*y^30-(112745858380960570420766950662456053684036351 % 1764674225758544674895633055744000000000)*x^2*y^30+(62270924970888891025454775836982259075013 % 36844002973645125878638706688000000000)*x^3*y^30-(1394219598200041678047386912312178530422619 % 46202379728950987851812938186752000000000)*x^4*y^30+(7080095115564041621349095791091250644189 % 18480951891580395140725175274700800000000)*x^5*y^30-(655354007714777360772217989161671137241 % 184809518915803951407251752747008000000000)*x^6*y^30+(106104088978353297548407690196647127 % 4400226640852475033505994113024000000000)*x^7*y^30-(7364692178816426517545720416758091 % 61603172971934650469083917582336000000000)*x^8*y^30+(288473685705164374708676898721 % 684479699688162782989821306470400000000)*x^9*y^30-(8057535839088125460711902549 % 8035196474600171800315293597696000000000)*x^10*y^30+(1469708454491453347710678019 % 1016452354036921732739884640108544000000000)*x^11*y^30-(1942420830897532963389661 % 2032904708073843465479769280217088000000000)*x^12*y^30+(63525787926601399449397211532280821539 % 1854775636280734470163660800000000)*y^31-(892309565909053207738778953406879329399003 % 273524504992574424608823123640320000000)*x*y^31+(798996852745741038746938690690000522214129 % 5610759076770757427873294843904000000000)*x^2*y^31-(27360552073864038632201639133317534824303 % 7263051580108928110579113000960000000000)*x^3*y^31+(481670364784803180744770154782021347976371 % 7161368857987403117031005418946560000000000)*x^4*y^31-(19568054413971357607960075889619030017 % 22916380345559689974499217340628992000000)*x^5*y^31+(45281869339953058336772384520334788619 % 5729095086389922493624804335157248000000000)*x^6*y^31-(256595109898140253473993623560933871 % 4774245905324935411354003612631040000000000)*x^7*y^31+(2544325296260651539024028571855569 % 9548491810649870822708007225262080000000000)*x^8*y^31-(538167937742363521509012250619 % 572909508638992249362480433515724800000000)*x^9*y^31+(753232123250068647914291729 % 337005593317054264330870843244544000000000)*x^10*y^31-(507748545872585467324824881 % 157550114875722868574682119216824320000000000)*x^11*y^31+(671058900016114432097399 % 315100229751445737149364238433648640000000000)*x^12*y^31-(7778930154622603150261048665586625383 % 131565418466846765083609006080000000)*y^32+(2053872863262590948350339062707291873503 % 364699339990099232811764164853760000000)*x*y^32-(53793372763514046389491624165912778660639 % 218819603994059539687058498912256000000000)*x^2*y^32+(8170447453418319253568974932205004413 % 1256380501401298792461579898060800000000)*x^3*y^32-(41575615039827140924540286324734574497 % 358068442899370155851550270947328000000000)*x^4*y^32+(422256395928194462311549608675481699 % 286454754319496124681240216757862400000000)*x^5*y^32-(39085237159536837887920927727546243 % 2864547543194961246812402167578624000000000)*x^6*y^32+(571564037839333613200233612979 % 6160317297193465046908391758233600000000)*x^7*y^32-(219614334990252427038006511693 % 477424590532493541135400361263104000000000)*x^8*y^32+(4301123714860363545074017 % 2652358836291630784085557562572800000000)*x^9*y^32-(65400149248973051524379 % 16949985462692078383505338269696000000000)*x^10*y^32+(7012230434089408977853 % 1260400919005782948597456953734594560000000)*x^11*y^32-(28961294591941209419 % 7877505743786143428734105960841216000000000)*x^12*y^32+(74666553868714580310870741102179 % 1006469732693351086122074112000000)*y^33-(261668371974195268835242071420276927479 % 37031009906686999023963745969766400000000)*x*y^33+(84851657686075235203203655807930513013 % 275087502163960564178016398632550400000000)*x^2*y^33-(128555342234568927874129954048599861281 % 15755011487572286857468211921682432000000000)*x^3*y^33+(52765332474274715807190015597378533 % 362184172128098548447545101647872000000000)*x^4*y^33-(23311773494391089575673307550576349 % 12604009190057829485974569537345945600000000)*x^5*y^33+(3995930201123184432900601580261 % 233407577593663508999529065506406400000000)*x^6*y^33-(1222743399794443802080582326377 % 10503340991714857904978807947788288000000000)*x^7*y^33+(577351018719041215210462567 % 1000318189687129324283695995027456000000000)*x^8*y^33-(5129015991185134265568577 % 2520801838011565897194913907469189120000000)*x^9*y^33+(5084899635416075665187 % 1050334099171485790497880794778828800000000)*x^10*y^33-(1209773890575248139301 % 173305126363295155432150331138506752000000000)*x^11*y^33+(355306605683851373 % 77024500605908957969844591617114112000000000)*x^12*y^33-(169247698952387826478870197215749 % 2811740943234325150929701044224000000)*y^34+(823171941199202148233420701475955397 % 143576371743470645338526102795059200000000)*x*y^34-(1462988800888146370730050175092480801 % 5845609420984161988782848470941696000000000)*x^2*y^34+(107467381913631688555577775820862669 % 16232436078104780398603612282945536000000000)*x^3*y^34-(47060283546619433021713605776539 % 398119948403907657490835529793536000000000)*x^4*y^34+(643095462392130560538517932140519 % 428536312461966202523135364269762150400000000)*x^5*y^34-(19842224230207753169117869608169 % 1428454374873220675077117880899207168000000000)*x^6*y^34+(3550679717135763988326395417 % 37590904601926859870450470549979136000000000)*x^7*y^34-(31854407490804161554655261 % 68021636898724794051291327661867008000000000)*x^8*y^34+(78606954076082651882473 % 47615145829107355835903929363306905600000000)*x^9*y^34-(1183010208308062261 % 301171067862791624515521374846976000000000)*x^10*y^34+(133494464587708654753 % 23569497185408141138772445034836918272000000000)*x^11*y^34-(1897106515411747 % 506870907213078304059622473867460608000000000)*x^12*y^34+(17497927531482066947166797700073 % 738081997599010352119046524108800000000)*y^35-(64679673726563721640169312079251141 % 28643486162822393745035957507614310400000000)*x*y^35+(48401015928232041687448746757032787 % 491031191362669607057759271559102464000000000)*x^2*y^35-(2875701132460459184667812531885309 % 1102850804130060080022774834517770240000000000)*x^3*y^35+(3579703471853962177491323309657 % 76890486685759486098648689761320960000000000)*x^4*y^35-(161181230791833877520254902877 % 272704926112160310696540686353485004800000000)*x^5*y^35+(70334167957879067670672408253 % 12856089373858986075694060928092864512000000000)*x^6*y^35-(929964690308324327208958397 % 24997951560281361813849562915736125440000000000)*x^7*y^35+(564566600339620122013001 % 3060973660442615732308109744784015360000000000)*x^8*y^35-(1950448444956151715669 % 2999754187233763417661947549888335052800000000)*x^9*y^35+(19889181184276115431 % 12856089373858986075694060928092864512000000000)*x^10*y^35-(1840195223431037867 % 824932401489284939857035576219292139520000000000)*x^11*y^35+(1042313441109497 % 707084915562244234163173351045107548160000000000)*x^12*y^35 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment