In [1]:
def polgen(n):
L=[[1]]+[[-1,1] for k in [1..n]]
CP=cartesian_product(L)
plist=[sum(k[t]*x^(n-t) for t in [0..n]) for k in CP]
return plist
@parallel(ncpus=128)
def LW1(f):
F=pari(f)
return (F,F.hyperellratpoints([100,1]))
In [2]:
%%time
for X,Y in list(LW1(polgen(7))):
if len(Y[1])>0:
if max([abs(r[0]) for r in Y[1]])>2:
print(Y)
(x^7 - x^6 - x^5 - x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [1, 0], [3, 34], [3, -34]]) (x^7 - x^6 + x^5 - x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [1, 0], [1, 0], [3, 40], [3, -40], [8, 1365], [8, -1365], [15, 12656], [15, -12656], [24, 66355], [24, -66355], [35, 250104], [35, -250104], [48, 758345], [48, -758345], [63, 1969120], [63, -1969120], [80, 4551111], [80, -4551111], [99, 9605960], [99, -9605960]]) (x^7 + x^6 - x^5 - x^4 - x^3 - x^2 + x + 1, [[-1, 0], [-1, 0], [0, 1], [0, -1], [1, 0], [1, 0], [7, 960], [7, -960]]) (x^7 + x^6 + x^5 + x^4 - x^3 - x^2 - x - 1, [[-1, 0], [1, 0], [2, 15], [2, -15], [5, 312], [5, -312], [10, 3333], [10, -3333], [17, 20880], [17, -20880], [26, 91395], [26, -91395], [37, 312360], [37, -312360], [50, 892857], [50, -892857], [65, 2231328], [65, -2231328], [82, 5023575], [82, -5023575]]) CPU times: user 57.7 ms, sys: 473 ms, total: 531 ms Wall time: 529 ms
In [3]:
%%time
for X,Y in list(LW1(polgen(9))):
if len(Y[1])>0:
if max([abs(r[0]) for r in Y[1]])>2:
print(Y)
(x^9 - x^8 + x^7 - x^6 + x^5 + x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 122], [3, -122], [8, 10923], [8, -10923], [15, 189844], [15, -189844], [24, 1592525], [24, -1592525], [35, 8753646], [35, -8753646], [48, 36400567], [48, -36400567], [63, 124054568], [63, -124054568], [80, 364088889], [80, -364088889], [99, 950990050], [99, -950990050]]) (x^9 - x^8 + x^7 + x^6 + x^5 + x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [3, 128], [3, -128]]) (x^9 + x^8 - x^7 + x^6 + x^5 - x^4 + x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 158], [3, -158]]) (x^9 + x^8 + x^7 - x^6 - x^5 + x^4 + x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 166], [3, -166]]) (x^9 + x^8 + x^7 + x^6 + x^5 - x^4 - x^3 - x^2 - x - 1, [[1, 0], [2, 31], [2, -31], [5, 1562], [5, -1562], [10, 33333], [10, -33333], [17, 354964], [17, -354964], [26, 2376275], [26, -2376275], [37, 11557326], [37, -11557326], [50, 44642857], [50, -44642857], [65, 145036328], [65, -145036328], [82, 411933159], [82, -411933159]]) CPU times: user 324 ms, sys: 1.88 s, total: 2.21 s Wall time: 2.19 s
In [4]:
%%time
for X,Y in list(LW1(polgen(11))):
if len(Y[1])>0:
if max([abs(r[0]) for r in Y[1]])>2:
print(Y)
(x^11 - x^10 - x^9 + x^8 - x^7 - x^6 + x^5 + x^4 + x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [1, 0], [3, 320], [3, -320]]) (x^11 - x^10 - x^9 + x^8 + x^7 + x^6 - x^5 - x^4 + x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [1, 0], [3, 328], [3, -328]]) (x^11 - x^10 + x^9 - x^8 - x^7 - x^6 - x^5 + x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [1, 0], [3, 358], [3, -358]]) (x^11 - x^10 + x^9 - x^8 + x^7 - x^6 - x^5 + x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [1, 0], [1, 0], [3, 364], [3, -364], [8, 87381], [8, -87381], [15, 2847656], [15, -2847656], [24, 38220595], [24, -38220595], [35, 306377604], [35, -306377604], [48, 1747227209], [48, -1747227209], [63, 7815437776], [63, -7815437776], [80, 29127111111], [80, -29127111111], [99, 94148014940], [99, -94148014940]]) (x^11 - x^10 + x^9 + x^8 + x^7 - x^6 + x^5 - x^4 - x^3 - x^2 - x + 1, [[0, 1], [0, -1], [1, 0], [3, 382], [3, -382]]) (x^11 + x^10 - x^9 - x^8 + x^7 + x^6 + x^5 + x^4 - x^3 - x^2 + x + 1, [[-1, 0], [0, 1], [0, -1], [1, 2], [1, -2], [7, 47060], [7, -47060]]) (x^11 + x^10 + x^9 + x^8 + x^7 + x^6 - x^5 - x^4 - x^3 - x^2 - x - 1, [[-1, 0], [1, 0], [2, 63], [2, -63], [5, 7812], [5, -7812], [10, 333333], [10, -333333], [17, 6034392], [17, -6034392], [26, 61783155], [26, -61783155], [37, 427621068], [37, -427621068], [50, 2232142857], [50, -2232142857], [65, 9427361328], [65, -9427361328], [82, 33778519047], [82, -33778519047]]) CPU times: user 1.3 s, sys: 8.34 s, total: 9.65 s Wall time: 9.55 s
In [5]:
%%time
for X,Y in list(LW1(polgen(13))):
if len(Y[1])>0:
if max([abs(r[0]) for r in Y[1]])>2:
print(Y)
(x^13 - x^12 - x^11 + x^10 + x^9 + x^8 + x^7 - x^6 - x^5 - x^4 + x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 986], [3, -986]]) (x^13 - x^12 + x^11 - x^10 - x^9 - x^8 + x^7 + x^6 + x^5 - x^4 - x^3 - x^2 - x + 1, [[0, 1], [0, -1], [3, 1076], [3, -1076]]) (x^13 - x^12 + x^11 - x^10 + x^9 - x^8 + x^7 + x^6 - x^5 + x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 1094], [3, -1094], [8, 699051], [8, -699051], [15, 42714844], [15, -42714844], [24, 917294285], [24, -917294285], [35, 10723216146], [35, -10723216146], [48, 83866906039], [48, -83866906039], [63, 492372579896], [63, -492372579896], [80, 2330168888889], [80, -2330168888889], [99, 9320653479070], [99, -9320653479070]]) (x^13 - x^12 + x^11 - x^10 + x^9 + x^8 + x^7 + x^6 - x^5 + x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [3, 1100], [3, -1100]]) (x^13 + x^12 - x^11 - x^10 - x^9 - x^8 + x^7 + x^6 - x^5 - x^4 + x^3 + x^2 + x + 1, [[-1, 0], [0, 1], [0, -1], [3, 1366], [3, -1366]]) (x^13 + x^12 + x^11 + x^10 - x^9 + x^8 - x^7 + x^6 - x^5 - x^4 - x^3 - x^2 + x + 1, [[-1, 2], [-1, -2], [0, 1], [0, -1], [3, 1532], [3, -1532]]) (x^13 + x^12 + x^11 + x^10 + x^9 + x^8 + x^7 - x^6 - x^5 - x^4 - x^3 - x^2 - x - 1, [[1, 0], [2, 127], [2, -127], [5, 39062], [5, -39062], [10, 3333333], [10, -3333333], [17, 102584668], [17, -102584668], [26, 1606362035], [26, -1606362035], [37, 15821979522], [37, -15821979522], [50, 111607142857], [50, -111607142857], [65, 612778486328], [65, -612778486328], [82, 2769838561863], [82, -2769838561863]]) CPU times: user 5.39 s, sys: 36.9 s, total: 42.3 s Wall time: 41.9 s
In [6]:
%%time
for X,Y in list(LW1(polgen(15))):
if len(Y[1])>0:
if max([abs(r[0]) for r in Y[1]])>2:
print(Y)
(x^15 - x^14 + x^13 - x^12 - x^11 - x^10 + x^9 - x^8 + x^7 - x^6 - x^5 + x^4 + x^3 + x^2 - x + 1, [[0, 1], [0, -1], [1, 0], [3, 3226], [3, -3226]]) (x^15 - x^14 + x^13 - x^12 + x^11 - x^10 - x^9 - x^8 - x^7 + x^6 - x^5 + x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [1, 0], [3, 3274], [3, -3274]]) (x^15 - x^14 + x^13 - x^12 + x^11 - x^10 + x^9 - x^8 - x^7 + x^6 - x^5 + x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [1, 0], [1, 0], [3, 3280], [3, -3280], [8, 5592405], [8, -5592405], [15, 640722656], [15, -640722656], [24, 22015062835], [24, -22015062835], [35, 375312565104], [35, -375312565104], [48, 4025611489865], [48, -4025611489865], [63, 31019472533440], [63, -31019472533440], [80, 186413511111111], [80, -186413511111111], [99, 922744694427920], [99, -922744694427920]]) (x^15 - x^14 + x^13 - x^12 + x^11 + x^10 + x^9 - x^8 - x^7 + x^6 + x^5 - x^4 - x^3 - x^2 - x + 1, [[0, 1], [0, -1], [1, 0], [3, 3298], [3, -3298]]) (x^15 - x^14 + x^13 + x^12 - x^11 - x^10 + x^9 + x^8 - x^7 - x^6 - x^5 - x^4 + x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [1, 0], [3, 3388], [3, -3388]]) (x^15 + x^14 - x^13 - x^12 + x^11 + x^10 - x^9 - x^8 - x^7 - x^6 + x^5 + x^4 - x^3 - x^2 + x + 1, [[-1, 0], [-1, 0], [0, 1], [0, -1], [1, 0], [1, 0], [7, 2305920], [7, -2305920]]) (x^15 + x^14 + x^13 + x^12 + x^11 + x^10 + x^9 + x^8 - x^7 - x^6 - x^5 - x^4 - x^3 - x^2 - x - 1, [[-1, 0], [1, 0], [2, 255], [2, -255], [5, 195312], [5, -195312], [10, 33333333], [10, -33333333], [17, 1743939360], [17, -1743939360], [26, 41765412915], [26, -41765412915], [37, 585413242320], [37, -585413242320], [50, 5580357142857], [50, -5580357142857], [65, 39830601611328], [65, -39830601611328], [82, 227126762072775], [82, -227126762072775]]) CPU times: user 23.2 s, sys: 3min 10s, total: 3min 33s Wall time: 3min 32s
In [7]:
%%time
for X,Y in list(LW1(polgen(17))):
if len(Y[1])>0:
if max([abs(r[0]) for r in Y[1]])>2:
print(Y)
(x^17 - x^16 - x^15 - x^14 + x^13 + x^12 - x^11 - x^10 - x^9 - x^8 - x^7 + x^6 + x^5 - x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [3, 8296], [3, -8296]]) (x^17 - x^16 - x^15 + x^14 - x^13 + x^12 - x^11 - x^10 + x^9 - x^8 - x^7 - x^6 - x^5 - x^4 - x^3 - x^2 + x + 1, [[-1, 0], [0, 1], [0, -1], [3, 8674], [3, -8674]]) (x^17 - x^16 - x^15 + x^14 + x^13 + x^12 + x^11 - x^10 + x^9 - x^8 - x^7 + x^6 + x^5 + x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [3, 8876], [3, -8876]]) (x^17 - x^16 + x^15 - x^14 + x^13 - x^12 - x^11 - x^10 + x^9 + x^8 - x^7 + x^6 + x^5 - x^4 - x^3 - x^2 - x + 1, [[0, 1], [0, -1], [3, 9824], [3, -9824]]) (x^17 - x^16 + x^15 - x^14 + x^13 - x^12 + x^11 - x^10 + x^9 + x^8 - x^7 + x^6 - x^5 + x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 9842], [3, -9842], [8, 44739243], [8, -44739243], [15, 9610839844], [15, -9610839844], [24, 528361508045], [24, -528361508045], [35, 13135939778646], [35, -13135939778646], [48, 193229351513527], [48, -193229351513527], [63, 1954226769606728], [63, -1954226769606728], [80, 14913080888888889], [80, -14913080888888889], [99, 91351724748364090], [99, -91351724748364090]]) (x^17 - x^16 + x^15 - x^14 + x^13 - x^12 + x^11 + x^10 + x^9 + x^8 - x^7 + x^6 - x^5 + x^4 + x^3 - x^2 + x + 1, [[0, 1], [0, -1], [3, 9848], [3, -9848]]) (x^17 - x^16 + x^15 - x^14 + x^13 + x^12 + x^11 - x^10 + x^9 + x^8 + x^7 - x^6 - x^5 + x^4 + x^3 + x^2 - x + 1, [[0, 1], [0, -1], [3, 9896], [3, -9896]]) (x^17 - x^16 + x^15 + x^14 - x^13 - x^12 + x^11 + x^10 + x^9 - x^8 - x^7 + x^6 + x^5 - x^4 - x^3 + x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 10166], [3, -10166]]) (x^17 + x^16 - x^15 + x^14 + x^13 - x^12 + x^11 + x^10 - x^9 - x^8 - x^7 - x^6 + x^5 + x^4 + x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 12802], [3, -12802]]) (x^17 + x^16 + x^15 - x^14 - x^13 - x^12 + x^11 - x^10 + x^9 + x^8 + x^7 + x^6 + x^5 - x^4 - x^3 + x^2 + x + 1, [[0, 1], [0, -1], [3, 13408], [3, -13408]]) (x^17 + x^16 + x^15 - x^14 - x^13 + x^12 + x^11 + x^10 - x^9 - x^8 + x^7 + x^6 - x^5 - x^4 + x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 13450], [3, -13450]]) (x^17 + x^16 + x^15 + x^14 + x^13 - x^12 + x^11 - x^10 - x^9 + x^8 + x^7 - x^6 - x^5 + x^4 - x^3 - x^2 - x + 1, [[-1, 0], [0, 1], [0, -1], [3, 13874], [3, -13874]]) (x^17 + x^16 + x^15 + x^14 + x^13 + x^12 + x^11 + x^10 + x^9 - x^8 - x^7 - x^6 - x^5 - x^4 - x^3 - x^2 - x - 1, [[1, 0], [2, 511], [2, -511], [5, 976562], [5, -976562], [10, 333333333], [10, -333333333], [17, 29646969124], [17, -29646969124], [26, 1085900735795], [26, -1085900735795], [37, 21660289965846], [37, -21660289965846], [50, 279017857142857], [50, -279017857142857], [65, 2588989104736328], [65, -2588989104736328], [82, 18624394489967559], [82, -18624394489967559]]) CPU times: user 1min 40s, sys: 22min 37s, total: 24min 17s Wall time: 24min 11s
In [ ]: