Google

Go to the first, previous, next, last section, table of contents.


ecm_add_ff, ecm_sub_ff, ecm_chsgn_ff

ecm_add_ff(p1,p2,ec)
ecm_sub_ff(p1,p2,ec)
ecm_chsgn_ff(p1)
:: Âʱ߶ÊÀþ¾å¤ÎÅÀ¤Î²Ã»», ¸º»», µÕ¸µ
return
¥Ù¥¯¥È¥ë¤Þ¤¿¤Ï 0
p1,p2
Ťµ 3 ¤Î¥Ù¥¯¥È¥ë¤Þ¤¿¤Ï 0
ec
Ťµ 2 ¤Î¥Ù¥¯¥È¥ë
  • ¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ëÍ­¸ÂÂξå¤Ç, ec ¤ÇÄêµÁ¤µ¤ì¤ëÂʱ߶ÊÀþ¾å¤Î ÅÀ p1, p2 ¤ÎÏ p1+p2, º¹ p1-p2, µÕ¸µ -p1 ¤òÊÖ¤¹.
  • ec ¤Ï, ÀßÄꤵ¤ì¤Æ¤¤¤ëÍ­¸ÂÂΤ¬´ñɸ¿ôÁÇÂΤξì¹ç, y^2=x^3+ec[0]x+ec[1], ɸ¿ô 2 ¤Î¾ì¹ç y^2+xy=x^3+ec[0]x^2+ec[1] ¤òɽ¤¹.
  • °ú¿ô, ·ë²Ì¤È¤â¤Ë, ̵¸Â±óÅÀ¤Ï 0 ¤Çɽ¤µ¤ì¤ë.
  • p1, p2 ¤¬Ä¹¤µ 3 ¤Î¥Ù¥¯¥È¥ë¤Î¾ì¹ç, ÀƼ¡ºÂɸ¤Ë¤è¤ë¶ÊÀþ¾å¤Î ÅÀ¤òɽ¤¹. ¤³¤Î¾ì¹ç, Âè 3 ºÂɸ¤Ï 0 ¤Ç¤¢¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤.
  • ·ë²Ì¤¬Ä¹¤µ 3 ¤Î¥Ù¥¯¥È¥ë¤Î¾ì¹ç, Âè 3 ºÂɸ¤Ï 0 ¤Ç¤Ê¤¤¤¬, 1 ¤È¤Ï¸Â¤é¤Ê¤¤. ¥¢¥Õ¥£¥óºÂɸ¤Ë¤è¤ë·ë²Ì¤òÆÀ¤ë¤¿¤á¤Ë¤Ï, Âè 1 ºÂɸ, Âè 2 ºÂɸ¤òÂè 3 ºÂɸ ¤Ç³ä¤ëɬÍפ¬¤¢¤ë.
  • p1, p2 ¤¬Âʱ߶ÊÀþ¾å¤ÎÅÀ¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤Ï¤·¤Ê¤¤.
[0] setmod_ff(1125899906842679)$
[1] EC=newvect(2,[ptolmp(1),ptolmp(1)])$
[2] Pt1=newvect(3,[1,-412127497938252,1])$
[3] Pt2=newvect(3,[6,-252647084363045,1])$
[4] Pt3=ecm_add_ff(Pt1,Pt2,EC);
[ 560137044461222 184453736165476 125 ]
[5] F=y^2-(x^3+EC[0]*x+EC[1])$
[6] subst(F,x,Pt3[0]/Pt3[2],y,Pt3[1]/Pt3[2]);
0
[7] ecm_add_ff(Pt3,ecm_chsgn_ff(Pt3),EC);
0
[8] D=ecm_sub_ff(Pt3,Pt2,EC);
[ 886545905133065 119584559149586 886545905133065 ]
[9] D[0]/D[2]==Pt1[0]/Pt1[2];
1
[10] D[1]/D[2]==Pt1[1]/Pt1[2];
1
»²¾È
section setmod_ff


Go to the first, previous, next, last section, table of contents.