\\ Modular polynomial

print("==========================================================")
print("modular_polynomial_02: Start", "\n");

debug		= 0;
int case 	= -1;
int			= -1;

cases = [ [2], [3],[5] ];

for (case = 1, matsize(cases)[2], \
{
	if (debug, print("test_modular_polynomial: case = ", case));
	
	param 	= cases[case];	

	N 		= param[1];	
	Phi		= polmodular(N,,,);
	Phi		= subst(Phi,y,j);
	F		= subst(Phi,x,X);
	Phi		= subst(F,X,j);
	/*
	print("Modular polynomial F_", N, " : ", F);
	*/
	print("Polynomial Phi_", N, " : ", Phi);

	factors 		= factor(Phi);	
	for (i = 1, matsize(factors)[1], print("factor ", i, " = " factors[i,]) );
	if (debug, print("Factorized: ", factors)); 
	print("----------------------------------------------"); 
});

print("modular_polynomial_02: End");

print("==========================================================")


