有限域上的超椭圆曲线 #
圣人: K(K) < 一 > = GF公司 ( 9 , “a” )
圣人: x个 = 一夫多妻制 ( K(K) )
圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - x个 ^ 5 - 2 , x个 ^ 2 + 一 )
圣人: C类 . _点_fast_sqrt ()
[(0:1:0),(a+1:a:1),(a+1:a+1:1),(2:a+1:1),
(2*a:2*a+2:1),(2*a:2*a:1)(1:a+1:1)]
David Kohel(2006) 罗伯特·布拉德肖(2007) Alyson Deines,Marina Gresham,Gagan Sekhon,(2010) 丹尼尔·克伦(2011) Jean-Pierre Flori,Jan Tuitman(2013) Kiran Kedlaya(2016) Dean Bisogno(2017):固定Hasse-Witt计算
-
班 sage.schemes.hyperelliptic_curves.hyperelliptic_inite_field。 超椭圆Curve_finite_field ( 聚丙烯 , (f) , 小时 = 无 , 姓名 = 无 , 属 = 无 ) # 基础: 超椭圆曲线_generic , 投影平面Curve_finite_field -
卡提尔矩阵 ( ) # 输入: E类 :形式的超椭圆曲线 \(y^2=f(x)\) 在有限域上, \(\GF{q}\)
输出: M(M) :矩阵 \(M=(c_{pi-j})\) ,其中 \(c_i\) 是的系数 \(f(x)^{(p-1)/2}=\sum c_i x ^i\)
参考文献: 是的。 特征域上超椭圆曲线的Jacobian簇 \(p>2) .
示例: 圣人: K(K) < x个 > = GF公司 ( 9 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - 1 , 0 ) 圣人: C类 . 卡提尔矩阵 () [0 0 2] [0 0 0] [0 1 0] 圣人: K(K) < x个 > = GF公司 ( 49 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 5 + 1 , 0 ) 圣人: C类 . 卡提尔矩阵 () [0 3] [0 0] 圣人: 对 < x个 > = GF公司 ( 9 , “a” )[] 圣人: E类 = 超椭圆曲线 ( x个 ^ 29 + 1 , 0 ) 圣人: E类 . 卡提尔矩阵 () [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 1 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 1 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [1 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 1 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0]
-
哈塞·威特 ( ) # 输入: E类 :形式的超椭圆曲线 \(y^2=f(x)\) 在有限域上, \(\GF{q}\)
输出: N个 :矩阵 \(N=M M^p\点M^{p^{g-1}}\) 哪里 \(M=c_{pi-j}\) 、和 \(f(x)^{(p-1)/2}=\sum c_i x ^i\)
参考编号:Yui。 特征域上超椭圆曲线的Jacobian簇 \(p>2) . 示例: 圣人: K(K) < x个 > = GF公司 ( 9 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - 1 , 0 ) 圣人: C类 . 哈塞·威特 () [0 0 0] [0 0 0] [0 0 0] 圣人: K(K) < x个 > = GF公司 ( 49 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 5 + 1 , 0 ) 圣人: C类 . 哈塞·威特 () [0 0] [0 0] 圣人: 对 < x个 > = GF公司 ( 9 , “a” )[] 圣人: E类 = 超椭圆曲线 ( x个 ^ 29 + 1 , 0 ) 圣人: E类 . 哈塞·威特 () [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0]
-
a_数字 ( ) # 输入: E类 :形式的超椭圆曲线 \(y^2=f(x)\) 在有限域上, \(\GF{q}\)
输出: 一 :a数字
示例: 圣人: K(K) < x个 > = GF公司 ( 49 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 5 + 1 , 0 ) 圣人: C类 . a_数字 () 1 圣人: K(K) < x个 > = GF公司 ( 9 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - 1 , 0 ) 圣人: C类 . a_数字 () 1 圣人: 对 < x个 > = GF公司 ( 9 , “a” )[] 圣人: E类 = 超椭圆曲线 ( x个 ^ 29 + 1 , 0 ) 圣人: E类 . a_数字 () 5
-
基数 ( 扩展_同意 = 1 ) # 计算基础字段的单个扩展上的点数。 示例: 圣人: K(K) = GF公司 ( 101 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . 基数 () 106 圣人: H(H) . 基数 ( 15 ) 1160968955369992567076405831000 圣人: H(H) . 基数 ( 100 ) 270481382942152609326719471080753083367793838278100277689020104911710151430673927943945601434674459120495370826289654897190781715493352266982697064575800553229661690000887425442240414673923744999504000 圣人: K(K) = GF公司 ( 37 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . 基数 () 40 圣人: H(H) . 基数 ( 2 ) 1408 圣人: H(H) . 基数 ( 三 ) 50116 以下示例显示 github问题#20391 已解决: 圣人: F类 = GF公司 ( 23 ) 圣人: x个 = 一夫多妻制 ( F类 ) 圣人: C类 = 超椭圆曲线 ( x个 ^ 8 + 1 ) 圣人: C类 . 基数 () 24
-
基数_穷尽 ( 扩展_同意 = 1 , 算法 = 无 ) # 基本字段的单个扩展上的计数点 通过枚举x并求解结果的二次方 y的方程式。 示例: 圣人: K(K) < 一 > = GF公司 ( 9 , “a” ) 圣人: x个 = 一夫多妻制 ( K(K) ) 圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - 1 , x个 ^ 2 + 一 ) 圣人: C类 . 基数_穷尽 () 7 圣人: K(K) = GF公司 ( 下一个前缀 ( 1 << 10 )) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 7 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . 基数_穷尽 () 1025 圣人: 对 < x个 > = 多项式环 ( GF公司 ( 9 , “a” )) 圣人: H(H) = 超椭圆曲线 ( x个 ^ 5 + x个 ^ 2 + 1 ) 圣人: H(H) . 计数点 ( 5 ) [18, 78, 738, 6366, 60018] 圣人: F类 < 一 > = GF公司 ( 4 ); 对 < x个 > = F类 [] 圣人: H(H) = 超椭圆曲线 ( x个 ^ 5 + 一 * x个 ^ 2 + 1 , x个 + 一 + 1 ) 圣人: H(H) . count_points(计数点) ( 6 ) [2, 24, 74, 256, 1082, 4272]
-
基数_hypellfrob ( 扩展_同意 = 1 , 算法 = 无 ) # 基本字段的单个扩展上的计数点 使用 菌丝体 程序。 示例: 圣人: K(K) = GF公司 ( 下一个前缀 ( 1 << 10 )) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 7 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . 基数_hypellfrob () 1025 圣人: K(K) = GF公司 ( 49999 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 7 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . 基数_hypellfrob () 50162 圣人: H(H) . 基数_hypellfrob ( 三 ) 124992471088310
-
count_points(计数点) ( n个 = 1 ) # 计算有限字段上的点数。 输入: n个 –整数。
输出: 一个整数。 超过的点数 \(\GF{q},\ldot, \GF{q^n}\) 有限域上的超椭圆曲线 \(\GF{q}\) . 警告 这是目前使用的超椭圆曲线的穷举搜索 在非犯罪领域,这可能是非常缓慢的。 示例: 圣人: 对 < x个 > = 多项式环 ( GF公司 ( 三 )) 圣人: C类 = 超椭圆曲线 ( x个 ^ 三 + x个 ^ 2 + 1 ) 圣人: C类 . count_points(计数点) ( 4 ) [6, 12, 18, 96] 圣人: C类 . 基本扩展(_E) ( GF公司 ( 9 , “a” )) . count_points(计数点) ( 2 ) [12, 96] 圣人: K(K) = GF公司 ( 2 ** 31 - 1 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + 三 * t吨 + 5 ) 圣人: H(H) . count_points(计数点) () #Corei7长时间2.4秒 【2147464821】 圣人: H(H) . count_points(计数点) ( n个 = 2 ) #很长时间,在Corei7上30秒 [2147464821, 4611686018988310237] 圣人: K(K) = GF公司 ( 2 ** 7 - 1 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 13 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . count_points(计数点) ( n个 = 6 ) [11216360、2045356、260199160、33038302802、4195868633548] 圣人: 对 < x个 > = 多项式环 ( GF公司 ( 三 )) 圣人: H(H) = 超椭圆曲线 ( x个 ^ 三 + x个 ^ 2 + 1 ) 圣人: C1类 = H(H) . count_points(计数点) ( 4 ); C1类 [6, 12, 18, 96] 圣人: 指挥与控制 = 圣人 . 计划 . 通用的 . 方案 . 方案 . count_points(计数点) ( H(H) , 4 ); 指挥与控制 #长时间,Corei7上2秒 [6, 12, 18, 96] 圣人: C1类 == 指挥与控制 #很长时间,因为我们需要定义C2 真的 圣人: 对 < x个 > = 多项式环 ( GF公司 ( 9 , “a” )) 圣人: H(H) = 超椭圆曲线 ( x个 ^ 5 + x个 ^ 2 + 1 ) 圣人: H(H) . count_points(计数点) ( 5 ) [18, 78, 738, 6366, 60018] 圣人: F类 < 一 > = GF公司 ( 4 ); 对 < x个 > = F类 [] 圣人: H(H) = 超椭圆曲线 ( x个 ^ 5 + 一 * x个 ^ 2 + 1 , x个 + 一 + 1 ) 圣人: H(H) . count_points(计数点) ( 6 ) [2, 24, 74, 256, 1082, 4272] 这个例子表明 github问题#20391 已解决: 圣人: x个 = 一夫多妻制 ( GF公司 ( 4099 )) 圣人: H(H) = 超椭圆曲线 ( x个 ^ 6 + x个 + 1 ) 圣人: H(H) . count_points(计数点) ( 1 ) [4106]
-
count_points_external(计数点_详尽) ( n个 = 1 , 天真 = False(错误) ) # 计算第一条曲线上的点数 \(n\) 扩展 如果 \(n\) 如果小于 \(克\) , 曲线的亏格,并通过计算frobenius多项式 在对第一个 \(克\) 扩展,如果 \(n>g) (除非 天真 == 真的 ). 示例: 圣人: K(K) = GF公司 ( 5 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 ^ 三 + 1 ) 圣人: H(H) . count_points_external(计数点_详尽) ( n个 = 5 ) [9, 27, 108, 675, 3069] 什么时候? \(n>g \) ,frobenius多项式由以下数字计算得出 第一条曲线上的点 \(克\) 扩展,以便计算 度扩张的点数 \(n>g \) 不多了 比…贵 \(n==g) : 圣人: H(H) . count_points_external(计数点_详尽) ( n个 = 15 ) [9, 27, 108, 675, 3069, 16302, 78633, 389475, 1954044, 9768627, 48814533, 244072650, 1220693769, 6103414827, 30517927308] 可以通过传递 naive=真 : 圣人: H(H) . count_points_external(计数点_详尽) ( n个 = 6 , 天真 = 真的 ) #长时间,在Corei7上7秒 [9, 27, 108, 675, 3069, 16302]
-
count_points_frobenius_多项式 ( n个 = 1 , (f) = 无 ) # 计算第一条曲线上的点数 \(n\) 扩展 通过计算frobenius多项式来计算基场。 示例: 圣人: K(K) = GF公司 ( 49999 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 19 + t吨 + 1 ) 以下计算需要很长时间才能完成 计算frobenius的特征多项式: 圣人: H(H) . 计数点frobenius多项式 ( 三 ) #长时间,Corei7上20秒(当然是在以下测试之前计算的) [49491, 2500024375, 124992509154249] 当多项式被缓存时,进一步计算点数 速度非常快: 圣人: H(H) . 计数点frobenius多项式 ( 19 ) #很长时间,因为之前的测试 [49491, 2500024375, 124992509154249, 6249500007135192947, 312468751250758776051811, 15623125093747382662737313867, 781140631562281338861289572576257, 39056250437482500417107992413002794587, 1952773465623687539373429411200893147181079, 97636720507718753281169963459063147221761552935, 4881738388665429945305281187129778704058864736771824, 244082037694882831835318764490138139735446240036293092851, 12203857802706446708934102903106811520015567632046432103159713, 610180686277519628999996211052002771035439565767719719151141201339, 30508424133189703930370810556389262704405225546438978173388673620145499, 1525390698235352006814610157008906752699329454643826047826098161898351623931, 76268009521069364988723693240288328729528917832735078791261015331201838856825193, 3813324208043947180071195938321176148147244128062172555558715783649006587868272993991, 190662397077989315056379725720120486231213267083935859751911720230901597698389839098903847]
-
count_points_hypellfrob计数点 ( n个 = 1 , N个 = 无 , 算法 = 无 ) # 计算第一条曲线上的点数 \(n\) 扩展 使用 菌丝体 程序。 这只支持具有足够大特征的素数字段。 示例: 圣人: K(K) = GF公司 ( 49999 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 21 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . count_points_hypellfrob计数点 () [49804] 圣人: H(H) . count_points_hypellfrob计数点 ( 2 ) [49804, 2499799038] 圣人: K(K) = GF公司 ( 2 ** 7 - 1 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 11 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . count_points_hypellfrob计数点 () [127] 圣人: H(H) . count_points_hypellfrob计数点 ( n个 = 5 ) [127, 16335, 2045701, 260134299, 33038098487] 圣人: K(K) = GF公司 ( 2 ** 7 - 1 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 13 + 三 * t吨 ^ 5 + 5 ) 圣人: H(H) . count_points(计数点) ( n个 = 6 ) [112, 16360, 2045356, 260199160, 33038302802, 4195868633548] 基本字段应该是素数: 圣人: K(K) < z(z) > = GF公司 ( 19 ** 10 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + ( z(z) + 1 ) * t吨 ^ 5 + 1 ) 圣人: H(H) . count_points_hypellfrob计数点 () 回溯(最近一次调用): ... ValueError:hypellfrob不支持非prime字段 特征应足够大: 圣人: K(K) = GF公司 ( 7 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 ^ 三 + 1 ) 圣人: H(H) . count_points_hypellfrob计数点 () 回溯(最近一次调用): ... 数值错误:p=7应大于(2*g+1)(2*N-1)=27
-
计数点矩阵跟踪 ( n个 = 1 , M(M) = 无 , N个 = 无 ) # 计算第一条曲线上的点数 \(n\) 扩展 通过计算frobenius幂的迹来计算基场 矩阵。 这需要更少 \(p\) -adic精度比charpoly计算精度高 当 \(n<g) 哪里 \(克\) 是曲线的属。 示例: 圣人: K(K) = GF公司 ( 49999 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 19 + t吨 + 1 ) 圣人: H(H) . 计数点矩阵跟踪 ( 三 ) [49491, 2500024375, 124992509154249]
-
frobenius_矩阵 ( N个 = 无 , 算法 = “hypellfrob” ) # 计算 \(p\) -精确的adic frobenius矩阵 \(p^N\) . 如果 \(N \) 未提供,则选择默认值,即 明确回收煤焦所需的最小值。 注意 目前仅使用实现 菌丝体 , 这意味着它只在质数域上起作用 \(GF(p)\) , 并且需要 \(p>(2g+1)(2N-1)\) . 示例: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . frobenius矩阵 () [1258+O(37^2)925+O(37 ^2)132+O(370^2)587+O(37.2)] [1147+O(37^2)814+O(37 ^2)241+O(37.2)1011+O [1258+O(37^2)1184+O(37 ^2)1105+O(370^2)482+O(37.^2)] [1073+O(37^2)999+O(37*2)772+O(37.*2)929+O(37*2)] 这个 海绵体 程序不支持非主字段: 圣人: K(K) < z(z) > = GF公司 ( 37 ** 三 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + z(z) * t吨 ^ 三 + 1 ) 圣人: H(H) . frobenius_矩阵 ( 算法 = “hypellfrob” ) 回溯(最近一次调用): ... 未实现错误:仅实现了Frobenius矩阵的计算 定义在素域上的超椭圆曲线。 也不能太小: 圣人: K(K) = GF公司 ( 7 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 ^ 三 + 1 ) 圣人: H(H) . frobenius_矩阵 ( 算法 = “hypellfrob” ) 回溯(最近一次调用): ... ValueError:在当前实现中,p必须大于(2g+1)(2N-1)=81
-
frobenius_矩阵_hypellfrob ( N个 = 无 ) # 计算 \(p\) -精确的adic frobenius矩阵 \(p^N\) . 如果 \(否) 未提供,则选择默认值,即 明确回收煤焦所需的最小值。 注意 使用实现 菌丝体 ,这意味着它只起作用 在素域上 \(GF(p)\) 、和需要 \(p>(2g+1)(2N-1)\) . 示例: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . 蛙类 () [1258+O(37^2)925+O(37 ^2)132+O(370^2)587+O(37.2)] [1147+O(37^2)814+O(37 ^2)241+O(37.2)1011+O [1258+O(37^2)1184+O(37 ^2)1105+O(37.^2)482+O(370^2)] [1073+O(37^2)999+O(37*2)772+O(37.*2)929+O(37*2)] 这个 菌丝体 程序不支持非主字段: 圣人: K(K) < z(z) > = GF公司 ( 37 ** 三 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + z(z) * t吨 ^ 三 + 1 ) 圣人: H(H) . frobenius_矩阵_hypellfrob () 回溯(最近一次调用): ... 未实现错误:仅实现了Frobenius矩阵的计算 对于在素域上定义的超椭圆曲线。 也不能太小: 圣人: K(K) = GF公司 ( 7 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 ^ 三 + 1 ) 圣人: H(H) . frobenius_矩阵_hypellfrob () 回溯(最近一次调用): ... ValueError:在当前实现中,p必须大于(2g+1)(2N-1)=81
-
frobenius多项式 ( ) # 计算frobenius的charpoly,作为 \(\ZZ[x]\) . 示例: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . frobenius多项式 () x^4+x^3-52*x^2+37*x+1369 二次扭转: 圣人: H(H) = 超椭圆曲线 ( 2 * t吨 ^ 5 + 2 * t吨 + 4 ) 圣人: H(H) . frobenius多项式 () x^4-x^3-52*x^2-37*x+1369 稍大的示例: 圣人: K(K) = GF公司 ( 2003 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 7 + 487 * t吨 ^ 5 + 9 * t吨 + 1 ) 圣人: H(H) . frobenius多项式 () x ^6-14*x ^5+1512*x ^4-66290*x ^3+3028536*x ^2-56168126*x+8036054027 在具有奇数特征的非素数场上定义的曲线, 或者一个与属相比太小的奇素域, 通过PARI支持: 圣人: K(K) < z(z) > = GF公司 ( 23 ** 三 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 三 + z(z) * t吨 + 4 ) 圣人: H(H) . frobenius多项式 () x ^2-15*x+12167 圣人: K(K) < z(z) > = GF公司 ( 三 ** 三 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + z(z) * t吨 + z(z) ** 三 ) 圣人: H(H) . frobenius多项式 () x^4-3*x^3+10*x^2-81*x+729 在奇数特征的素数域上, \(小时) 可能为非零: 圣人: K(K) = GF公司 ( 101 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + 27 * t吨 + 三 , t吨 ) 圣人: H(H) . frobenius多项式 () x^4+2*x^3-58*x^2+202*x+10201 在奇数特征的素数域上, \(f) 可能具有均匀度: 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 6 + 27 * t吨 + 三 ) 圣人: H(H) . 弗罗贝尼乌斯多项式 () x^4+25*x^3+322*x^2+2525*x+10201 在均匀特性中,朴素算法可以覆盖所有情况 因为我们可以很容易地检查商环的平方 有限域上的多项式环 不支持迭代: 圣人: K(K) < z(z) > = GF公司 ( 2 ** 5 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + z(z) * t吨 + z(z) ** 三 , t吨 ) 圣人: H(H) . frobenius多项式 () x^4-x^3+16*x^2-32*x+1024
-
frobenius多项式基数 ( 一 = 无 ) # 计算frobenius的charpoly,作为 \(\ZZ[x]\) , 通过计算曲线上的点数 \(克\) 扩展 基本字段的 \(克\) 是曲线的属。 警告 当基场或 曲线很大。 示例: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . frobenius多项式基数 () x^4+x^3-52*x^2+37*x+1369 二次扭转: 圣人: H(H) = 超椭圆曲线 ( 2 * t吨 ^ 5 + 2 * t吨 + 4 ) 圣人: H(H) . frobenius多项式基数 () x^4-x^3-52*x^2-37*x+1369 非原质场地上的曲线: 圣人: K(K) < z(z) > = GF公司 ( 7 ** 2 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + z(z) * t吨 + z(z) ^ 2 ) 圣人: H(H) . frobenius多项式基数 () x^4+8*x^3+70*x^2+392*x+2401 当 菌丝体 不工作: 圣人: K(K) = GF公司 ( 7 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 ^ 三 + 1 ) 圣人: H(H) . frobenius多项式矩阵 ( 算法 = “hypellfrob” ) 回溯(最近一次调用): ... ValueError:在当前实现中,p必须大于(2g+1)(2N-1)=81 圣人: H(H) . frobenius多项式基数 () x^8-5*x^7+7*x^6+36*x^5-180*x^4+252*x^3+343*x^2-1715*x+2401
-
frobenius多项式矩阵 ( M(M) = 无 , 算法 = “hypellfrob” ) # 计算frobenius的charpoly,作为 \(\ZZ[x]\) , 通过计算frobenius矩阵的charpoly。 当前仅当基字段为prime时才支持此功能 并且足够大,使用 菌丝体 库。 示例: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . frobenius多项式矩阵 () x^4+x^3-52*x^2+37*x+1369 二次扭转: 圣人: H(H) = 超椭圆曲线 ( 2 * t吨 ^ 5 + 2 * t吨 + 4 ) 圣人: H(H) . frobenius多项式矩阵 () x^4-x^3-52*x^2-37*x+1369 在较大素数域上定义的曲线: 圣人: K(K) = GF公司 ( 49999 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 ^ 5 + 1 ) 圣人: H(H) . frobenius多项式矩阵 () x^8+281*x^7+55939*x^6+14144175*x^5+3156455369*x^4+707194605825*x^3 +139841906155939*x^2+35122892542149719*x+62495001499980001 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 15 + t吨 ^ 5 + 1 ) 圣人: H(H) . frobenius多项式矩阵 () #很长时间,Corei7上8秒 x^14-76*x^13+220846*x^12-12984372*x^11+24374326657*x^10-1203243210304*x^9 +1770558798515792*x^8-74401511415210496*x^7+88526136991084208*x^6 -3007987702642212810304*x^5+3046608028331197124223343*x^4 -81145833008762983138584372*x^3+69007473838551978905211279154*x^2 -1187357507124810002849977200076*传真+78114063156228125437497500349999 这个 菌丝体 程序不支持非主字段: 圣人: K(K) < z(z) > = GF公司 ( 37 ** 三 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + z(z) * t吨 ^ 三 + 1 ) 圣人: H(H) . frobenius多项式矩阵 ( 算法 = “hypellfrob” ) 回溯(最近一次调用): ... 未实现错误:仅实现了Frobenius矩阵的计算 定义在素域上的超椭圆曲线。
-
frobenius_多项式_pari ( ) # 计算frobenius的charpoly,作为 \(\ZZ[x]\) , 通过调用PARI函数 超纤维素聚合物 . 示例: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . frobenius_多项式_pari () x^4+x^3-52*x^2+37*x+1369 二次扭转: 圣人: H(H) = 超椭圆曲线 ( 2 * t吨 ^ 5 + 2 * t吨 + 4 ) 圣人: H(H) . frobenius_多项式_pari () x^4-x^3-52*x^2-37*x+1369 稍大的示例: 圣人: K(K) = GF公司 ( 2003 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 7 + 487 * t吨 ^ 5 + 9 * t吨 + 1 ) 圣人: H(H) . frobenius_多项式_pari () x ^6-14*x ^5+1512*x ^4-66290*x ^3+3028536*x ^2-56168126*x+8036054027 也支持在非素域上定义的曲线: 圣人: K(K) < 一 > = GF公司 ( 7 ^ 2 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + 一 * t吨 + 1 ) 圣人: H(H) . frobenius_多项式_pari () x^4+4*x^3+84*x^2+196*x+2401 圣人: K(K) < z(z) > = GF公司 ( 23 ** 三 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 三 + z(z) * t吨 + 4 ) 圣人: H(H) . frobenius_多项式_pari () x ^2-15*x+12167 在奇数特征的素数域上, \(小时) 可能为非零: 圣人: K(K) = GF公司 ( 101 ) 圣人: R(右) < t吨 > = 多项式环 ( K(K) ) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + 27 * t吨 + 三 , t吨 ) 圣人: H(H) . frobenius_多项式_pari () x^4+2*x^3-58*x^2+202*x+10201
-
_等级 ( ) # 输入: E类 :形式的超椭圆曲线 \(y^2=f(x)\) 在有限域上, \(\GF{q}\)
输出: 公共关系 :p秩
示例: 圣人: K(K) < x个 > = GF公司 ( 49 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 5 + 1 , 0 ) 圣人: C类 . p_等级 () 0 圣人: K(K) < x个 > = GF公司 ( 9 , “x” )[] 圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - 1 , 0 ) 圣人: C类 . p_等级 () 0 圣人: 对 < x个 > = GF公司 ( 9 , “a” )[] 圣人: E类 = 超椭圆曲线 ( x个 ^ 29 + 1 , 0 ) 圣人: E类 . p_等级 () 0
-
点 ( ) # 这个超椭圆曲线上的所有点。 示例: 圣人: x个 = 一夫多妻制 ( GF公司 ( 7 )) 圣人: C类 = 超椭圆曲线 ( x个 ^ 7 - x个 ^ 2 - 1 ) 圣人: C类 . 点 () [(0 : 1 : 0), (2 : 5 : 1), (2 : 2 : 1), (3 : 0 : 1), (4 : 6 : 1), (4 : 1 : 1), (5 : 0 : 1), (6 : 5 : 1), (6 : 2 : 1)] 圣人: x个 = 一夫多妻制 ( GF公司 ( 121 , “a” )) 圣人: C类 = 超椭圆曲线 ( x个 ^ 5 + x个 - 1 , x个 ^ 2 + 2 ) 圣人: 伦恩 ( C类 . 点 ()) 122 允许圆锥曲线(问题报告于 github问题#11800 已解决): 圣人: R(右) < x个 > = GF公司 ( 7 )[] 圣人: H(H) = 超椭圆曲线 ( 三 * x个 ^ 2 + 5 * x个 + 1 ) 圣人: H(H) . 点 () [(0 : 6 : 1), (0 : 1 : 1), (1 : 4 : 1), (1 : 3 : 1), (2 : 4 : 1), (2 : 3 : 1), (3 : 6 : 1), (3 : 1 : 1)] 该方法目前列出了平面投影模型上的点,即 闭包在吗 \(\mathbb{P}^2\) 由定义的曲线 \(y^2+hy=f\) . 这意味着有一点 \((0:1:0)\) 如果 曲线度数至少为4且 \(度(f)>度(h)+1) .这一点 是平面模型的奇点。 以后的实施可能 考虑一个平滑的模型,因为它更相关 对象。 那么,对于唯一奇异点位于 \((0:1:0)\) ,的 无穷远处的点将被一系列有理点所取代 平滑模型。 我们用一个属2的例子来说明这一点 超椭圆曲线: 圣人: R(右) < x个 >= GF公司 ( 11 )[] 圣人: H(H) = 超椭圆曲线 ( x个 * ( x个 + 1 ) * ( x个 + 2 ) * ( x个 + 三 ) * ( x个 + 4 ) * ( x个 + 5 )) 圣人: H(H) . 点 () [(0 : 1 : 0), (0 : 0 : 1), (1 : 7 : 1), (1 : 4 : 1), (5 : 7 : 1), (5 : 4 : 1), (6 : 0 : 1), (7 : 0 : 1), (8 : 0 : 1), (9 : 0 : 1), (10 : 0 : 1)] 上例中亏格2超椭圆曲线的平面模型 曲线是 \(\mathbb{P}^2\) 由定义 \(y^2z^4=g(x,z)\) 哪里 \(g(x,z)=x(x+z)(x+2z)(x+3z)(x+4z)(x+5z)。\) 此模型有一个点位于 无穷 \((0:1:0)\) 这也是平面的唯一奇点 模型。 相反,超椭圆曲线是光滑的,并通过 方程式 \(y^2=g(x,z)\) 到加权投影空间 \(\mathbb{P}(1,3,1)\) 后一个模型在无穷远处有两个点: \((1:1:0)\) 和 \((1:-1:0)\) .
-
齐塔函数 ( ) # 计算超椭圆曲线的zeta函数。 示例: 圣人: F类 = GF公司 ( 2 ); R(右) < t吨 > = F类 [] 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 9 + t吨 , t吨 ^ 4 ) 圣人: H(H) . 齐塔函数 () (16*x^8+8*x^7+8*x^6+4*x^5+6*x^4+2*x^3+2*x^2+x+1)/(2*x*2-3*x+1) 圣人: F类 < 一 > = GF公司 ( 4 ); R(右) < t吨 > = F类 [] 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 ^ 三 + t吨 ^ 2 + t吨 + 1 , t吨 ^ 2 + t吨 + 1 ) 圣人: H(H) . ζ函数 () (16*x^4+8*x^3+x^2+2*x+1)/(4*x^2-5*x+1) 圣人: F类 < 一 > = GF公司 ( 9 ); R(右) < t吨 > = F类 [] 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + 一 * t吨 ) 圣人: H(H) . 齐塔函数 () (81*x^4+72*x^3+32*x^2+8*x+1)/(9*x^2-10*x+1) 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( t吨 ^ 5 + t吨 + 2 ) 圣人: H(H) . 齐塔函数 () (1369*x^4+37*x^3-52*x^2+x+1)/(37*x^2-38*x+1) 二次扭转: 圣人: R(右) < t吨 > = 多项式环 ( GF公司 ( 37 )) 圣人: H(H) = 超椭圆曲线 ( 2 * t吨 ^ 5 + 2 * t吨 + 4 ) 圣人: H(H) . 齐塔函数 () (1369*x^4-37*x^3-52*x^2-x+1)/(37*x*2-38*x+1)
-