@@ -394,9 +394,15 @@ function GetCharpols(ker_basis, pts, basept, uni, p)
394
394
395
395
divs_p_red : = [Reduction(d , basept_div ) : d in divs_p ];
396
396
decomps : = [Decomposition(d ) : d in divs_p_red ];
397
- assert forall{d : d in decomps | #d eq 1 and d[1,2] eq 1} ;
398
- dpts : = [* RepresentativePoint(d [1 ,1 ]) : d in decomps *];
399
- charpols : = [MinimalPolynomial(Evaluate(uni ,pt )) : pt in dpts ];
397
+
398
+ // assert forall{d : d in decomps | #d eq 1 and d [1 ,2 ] eq 1 };
399
+ minpols : = [[MinimalPolynomial(Evaluate(uni ,RepresentativePoint(dec [i ,1 ]))) :
400
+ i in [1 ..#dec ]] : dec in decomps ];
401
+
402
+ charpols : = [&*[minpols [j ][i ]^(decomps [j ][i ,2 ]*Degree(decomps [j ][i ,1 ]) div Degree(minpols [j ][i ])) :
403
+ i in [1 ..#decomps [j ]]] : j in [1 ..#decomps ]];
404
+ // dpts : = [* RepresentativePoint(d [1 ,1 ]) : d in decomps *];
405
+ // charpols : = [MinimalPolynomial(Evaluate(uni ,pt )) : pt in dpts ];
400
406
for charpol in charpols do
401
407
coeffs_charpol : = Coefficients(charpol );
402
408
try
@@ -593,9 +599,9 @@ function ChooseGoodBasept(pts, p)
593
599
pts_seq : = [[pt [i ]*d where d : = LCM([Denominator(pt [j ]) : j in [1 ..dim+ 1 ]]): i in [1 ..dim+ 1 ]] : pt in pts ];
594
600
pts_seq : = [ChangeUniverse(pt , Integers()) : pt in pts_seq ];
595
601
for pt in pts_seq do
596
- // if not IsWeierstrassPlace(Place(Cp !pt )) then
602
+ if not IsWeierstrassPlace(Place(Cp !pt )) then
597
603
return C ! pt ;
598
- // end if ;
604
+ end if ;
599
605
end for ;
600
606
601
607
error "There are no good base points to choose from :(" ;
0 commit comments