espp make_espp(const polynom& form, const affine_change& var) {
	espp e;
	multi_affine tmp(form.get_n());
	vector<vector<bool>> poly = form.get_poly(), matrix = var.get_matrix();
	
	//cout<<tmp<<endl;
	
	for (int i = 0; i < poly.size(); ++i) {
		for (int j = 0; j < poly[i].size(); ++j) {
			if (poly[i][j]) {
				tmp *= matrix[j];
			}
		}
		
		e += tmp;
		
		//cout<<"tmp = "<<tmp<<endl;
		
		tmp.set_one();
	}
	
	//cout<<"e = "<<e<<"\n\n";
		
	return e;	
}
equal_functions::equal_functions(const polynom& p) : n(p.get_n()) {
	members.insert(pair<int,int>(vec_to_int(p), -1));
}