25namespace layer1_foundations {
29#include "DATA/quartic_curves_q9.cpp"
30#include "DATA/quartic_curves_q13.cpp"
31#include "DATA/quartic_curves_q17.cpp"
32#include "DATA/quartic_curves_q19.cpp"
33#include "DATA/quartic_curves_q23.cpp"
34#include "DATA/quartic_curves_q25.cpp"
35#include "DATA/quartic_curves_q27.cpp"
36#include "DATA/quartic_curves_q29.cpp"
37#include "DATA/quartic_curves_q31.cpp"
39#include "DATA/data_hyperovals.cpp"
41#include "DATA/surface_4.cpp"
42#include "DATA/surface_7.cpp"
43#include "DATA/surface_8.cpp"
44#include "DATA/surface_9.cpp"
45#include "DATA/surface_11.cpp"
46#include "DATA/surface_13.cpp"
47#include "DATA/surface_16.cpp"
48#include "DATA/surface_17.cpp"
49#include "DATA/surface_19.cpp"
50#include "DATA/surface_23.cpp"
51#include "DATA/surface_25.cpp"
52#include "DATA/surface_27.cpp"
53#include "DATA/surface_29.cpp"
54#include "DATA/surface_31.cpp"
55#include "DATA/surface_32.cpp"
56#include "DATA/surface_37.cpp"
57#include "DATA/surface_41.cpp"
58#include "DATA/surface_43.cpp"
59#include "DATA/surface_47.cpp"
60#include "DATA/surface_49.cpp"
61#include "DATA/surface_53.cpp"
62#include "DATA/surface_59.cpp"
63#include "DATA/surface_61.cpp"
64#include "DATA/surface_64.cpp"
65#include "DATA/surface_67.cpp"
66#include "DATA/surface_71.cpp"
67#include "DATA/surface_73.cpp"
68#include "DATA/surface_79.cpp"
69#include "DATA/surface_81.cpp"
70#include "DATA/surface_83.cpp"
71#include "DATA/surface_89.cpp"
72#include "DATA/surface_97.cpp"
73#include "DATA/surface_101.cpp"
74#include "DATA/surface_103.cpp"
75#include "DATA/surface_107.cpp"
76#include "DATA/surface_109.cpp"
77#include "DATA/surface_113.cpp"
78#include "DATA/surface_121.cpp"
79#include "DATA/surface_127.cpp"
80#include "DATA/surface_128.cpp"
82#include "DATA/data_DH.cpp"
84#include "DATA/data_spreads.cpp"
86#include "DATA/data_tensor.cpp"
88#include "DATA/data_BLT.cpp"
90#include "DATA/planes_16.cpp"
115 nb = quartic_curves_q9_nb_reps;
118 nb = quartic_curves_q13_nb_reps;
121 nb = quartic_curves_q17_nb_reps;
124 nb = quartic_curves_q19_nb_reps;
127 nb = quartic_curves_q23_nb_reps;
130 nb = quartic_curves_q25_nb_reps;
133 nb = quartic_curves_q27_nb_reps;
136 nb = quartic_curves_q29_nb_reps;
139 nb = quartic_curves_q31_nb_reps;
142 cout <<
"knowledge_base::quartic_curves_nb_reps q=" << q
143 <<
" I don't have information for this case" << endl;
155 p = quartic_curves_q9_reps;
156 nb = quartic_curves_q9_nb_reps;
157 sz = quartic_curves_q9_size;
160 p = quartic_curves_q13_reps;
161 nb = quartic_curves_q13_nb_reps;
162 sz = quartic_curves_q13_size;
165 p = quartic_curves_q17_reps;
166 nb = quartic_curves_q17_nb_reps;
167 sz = quartic_curves_q17_size;
170 p = quartic_curves_q19_reps;
171 nb = quartic_curves_q19_nb_reps;
172 sz = quartic_curves_q19_size;
175 p = quartic_curves_q23_reps;
176 nb = quartic_curves_q23_nb_reps;
177 sz = quartic_curves_q23_size;
180 p = quartic_curves_q25_reps;
181 nb = quartic_curves_q25_nb_reps;
182 sz = quartic_curves_q25_size;
185 p = quartic_curves_q27_reps;
186 nb = quartic_curves_q27_nb_reps;
187 sz = quartic_curves_q27_size;
190 p = quartic_curves_q29_reps;
191 nb = quartic_curves_q29_nb_reps;
192 sz = quartic_curves_q29_size;
195 p = quartic_curves_q31_reps;
196 nb = quartic_curves_q31_nb_reps;
197 sz = quartic_curves_q31_size;
200 cout <<
"knowledge_base::quartic_curves_representative q=" << q
201 <<
" I don't have information for this case" << endl;
205 cout <<
"knowledge_base::quartic_curves_representative q=" << q <<
" i=" << i
206 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
210 cout <<
"knowledge_base::quartic_curves_representative q=" << q <<
" i=" << i
211 <<
" but I have only " << nb <<
" representatives" << endl;
225 p = quartic_curves_q9_Bitangents;
226 nb = quartic_curves_q9_nb_reps;
229 p = quartic_curves_q13_Bitangents;
230 nb = quartic_curves_q13_nb_reps;
233 p = quartic_curves_q17_Bitangents;
234 nb = quartic_curves_q17_nb_reps;
237 p = quartic_curves_q19_Bitangents;
238 nb = quartic_curves_q19_nb_reps;
241 p = quartic_curves_q23_Bitangents;
242 nb = quartic_curves_q23_nb_reps;
245 p = quartic_curves_q25_Bitangents;
246 nb = quartic_curves_q25_nb_reps;
249 p = quartic_curves_q27_Bitangents;
250 nb = quartic_curves_q27_nb_reps;
253 p = quartic_curves_q29_Bitangents;
254 nb = quartic_curves_q29_nb_reps;
257 p = quartic_curves_q31_Bitangents;
258 nb = quartic_curves_q31_nb_reps;
261 cout <<
"knowledge_base::quartic_curves_bitangents q=" << q
262 <<
" I don't have information for this case" << endl;
266 cout <<
"knowledge_base::quartic_curves_bitangents q=" << q <<
" i=" << i
267 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
271 cout <<
"knowledge_base::quartic_curves_bitangents q=" << q <<
" i=" << i
272 <<
" but I have only " << nb <<
" representatives" << endl;
280 int *&data,
int &nb_gens,
int &data_size, std::string &stab_order_str)
283 int nb, make_element_size;
285 const char *stab_order;
288 Reps = quartic_curves_q9_stab_gens;
289 nb = quartic_curves_q9_nb_reps;
290 make_element_size = quartic_curves_q9_make_element_size;
291 f = quartic_curves_q9_stab_gens_fst[i];
292 l = quartic_curves_q9_stab_gens_len[i];
293 stab_order = quartic_curves_q9_stab_order[i];
296 Reps = quartic_curves_q13_stab_gens;
297 nb = quartic_curves_q13_nb_reps;
298 make_element_size = quartic_curves_q13_make_element_size;
299 f = quartic_curves_q13_stab_gens_fst[i];
300 l = quartic_curves_q13_stab_gens_len[i];
301 stab_order = quartic_curves_q13_stab_order[i];
304 Reps = quartic_curves_q17_stab_gens;
305 nb = quartic_curves_q17_nb_reps;
306 make_element_size = quartic_curves_q17_make_element_size;
307 f = quartic_curves_q17_stab_gens_fst[i];
308 l = quartic_curves_q17_stab_gens_len[i];
309 stab_order = quartic_curves_q17_stab_order[i];
312 Reps = quartic_curves_q19_stab_gens;
313 nb = quartic_curves_q19_nb_reps;
314 make_element_size = quartic_curves_q19_make_element_size;
315 f = quartic_curves_q19_stab_gens_fst[i];
316 l = quartic_curves_q19_stab_gens_len[i];
317 stab_order = quartic_curves_q19_stab_order[i];
320 Reps = quartic_curves_q23_stab_gens;
321 nb = quartic_curves_q23_nb_reps;
322 make_element_size = quartic_curves_q23_make_element_size;
323 f = quartic_curves_q23_stab_gens_fst[i];
324 l = quartic_curves_q23_stab_gens_len[i];
325 stab_order = quartic_curves_q23_stab_order[i];
328 Reps = quartic_curves_q25_stab_gens;
329 nb = quartic_curves_q25_nb_reps;
330 make_element_size = quartic_curves_q25_make_element_size;
331 f = quartic_curves_q25_stab_gens_fst[i];
332 l = quartic_curves_q25_stab_gens_len[i];
333 stab_order = quartic_curves_q25_stab_order[i];
336 Reps = quartic_curves_q27_stab_gens;
337 nb = quartic_curves_q27_nb_reps;
338 make_element_size = quartic_curves_q27_make_element_size;
339 f = quartic_curves_q27_stab_gens_fst[i];
340 l = quartic_curves_q27_stab_gens_len[i];
341 stab_order = quartic_curves_q27_stab_order[i];
344 Reps = quartic_curves_q29_stab_gens;
345 nb = quartic_curves_q29_nb_reps;
346 make_element_size = quartic_curves_q29_make_element_size;
347 f = quartic_curves_q29_stab_gens_fst[i];
348 l = quartic_curves_q29_stab_gens_len[i];
349 stab_order = quartic_curves_q29_stab_order[i];
352 Reps = quartic_curves_q31_stab_gens;
353 nb = quartic_curves_q31_nb_reps;
354 make_element_size = quartic_curves_q31_make_element_size;
355 f = quartic_curves_q31_stab_gens_fst[i];
356 l = quartic_curves_q31_stab_gens_len[i];
357 stab_order = quartic_curves_q31_stab_order[i];
360 cout <<
"knowledge_base::quartic_curves_stab_gens q=" << q
361 <<
" I don't have information for this field order" << endl;
365 cout <<
"knowledge_base::quartic_curves_stab_gens q=" << q <<
" i=" << i
366 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
370 cout <<
"knowledge_base::quartic_curves_stab_gens q=" << q <<
" i=" << i
371 <<
" but I have only " << nb <<
" representatives" << endl;
375 data_size = make_element_size;
376 data = Reps + f * make_element_size;
392 nb = surface_4_nb_reps;
395 nb = surface_7_nb_reps;
398 nb = surface_8_nb_reps;
401 nb = surface_9_nb_reps;
404 nb = surface_11_nb_reps;
407 nb = surface_13_nb_reps;
410 nb = surface_16_nb_reps;
413 nb = surface_17_nb_reps;
416 nb = surface_19_nb_reps;
419 nb = surface_23_nb_reps;
422 nb = surface_25_nb_reps;
425 nb = surface_27_nb_reps;
428 nb = surface_29_nb_reps;
431 nb = surface_31_nb_reps;
434 nb = surface_32_nb_reps;
437 nb = surface_37_nb_reps;
440 nb = surface_41_nb_reps;
443 nb = surface_43_nb_reps;
446 nb = surface_47_nb_reps;
449 nb = surface_49_nb_reps;
452 nb = surface_53_nb_reps;
455 nb = surface_59_nb_reps;
458 nb = surface_61_nb_reps;
461 nb = surface_64_nb_reps;
464 nb = surface_67_nb_reps;
467 nb = surface_71_nb_reps;
470 nb = surface_73_nb_reps;
473 nb = surface_79_nb_reps;
476 nb = surface_81_nb_reps;
479 nb = surface_83_nb_reps;
482 nb = surface_89_nb_reps;
485 nb = surface_97_nb_reps;
488 nb = surface_101_nb_reps;
491 nb = surface_103_nb_reps;
494 nb = surface_107_nb_reps;
497 nb = surface_109_nb_reps;
500 nb = surface_113_nb_reps;
503 nb = surface_121_nb_reps;
506 nb = surface_128_nb_reps;
509 cout <<
"knowledge_base::cubic_surface_nb_reps q=" << q
510 <<
" I don't have information for this case" << endl;
522 nb = surface_4_nb_reps;
527 nb = surface_7_nb_reps;
532 nb = surface_8_nb_reps;
537 nb = surface_9_nb_reps;
542 nb = surface_11_nb_reps;
543 sz = surface_11_size;
547 nb = surface_13_nb_reps;
548 sz = surface_13_size;
552 nb = surface_16_nb_reps;
553 sz = surface_16_size;
557 nb = surface_17_nb_reps;
558 sz = surface_17_size;
562 nb = surface_19_nb_reps;
563 sz = surface_19_size;
567 nb = surface_23_nb_reps;
568 sz = surface_23_size;
572 nb = surface_25_nb_reps;
573 sz = surface_25_size;
577 nb = surface_27_nb_reps;
578 sz = surface_27_size;
582 nb = surface_29_nb_reps;
583 sz = surface_29_size;
587 nb = surface_31_nb_reps;
588 sz = surface_31_size;
592 nb = surface_32_nb_reps;
593 sz = surface_32_size;
597 nb = surface_37_nb_reps;
598 sz = surface_37_size;
602 nb = surface_41_nb_reps;
603 sz = surface_41_size;
607 nb = surface_43_nb_reps;
608 sz = surface_43_size;
612 nb = surface_47_nb_reps;
613 sz = surface_47_size;
617 nb = surface_49_nb_reps;
618 sz = surface_49_size;
622 nb = surface_53_nb_reps;
623 sz = surface_53_size;
627 nb = surface_59_nb_reps;
628 sz = surface_59_size;
632 nb = surface_61_nb_reps;
633 sz = surface_61_size;
637 nb = surface_64_nb_reps;
638 sz = surface_64_size;
642 nb = surface_67_nb_reps;
643 sz = surface_67_size;
647 nb = surface_71_nb_reps;
648 sz = surface_71_size;
652 nb = surface_73_nb_reps;
653 sz = surface_73_size;
657 nb = surface_79_nb_reps;
658 sz = surface_79_size;
662 nb = surface_81_nb_reps;
663 sz = surface_81_size;
667 nb = surface_83_nb_reps;
668 sz = surface_83_size;
672 nb = surface_89_nb_reps;
673 sz = surface_89_size;
677 nb = surface_97_nb_reps;
678 sz = surface_97_size;
681 p = surface_101_reps;
682 nb = surface_101_nb_reps;
683 sz = surface_101_size;
686 p = surface_103_reps;
687 nb = surface_103_nb_reps;
688 sz = surface_103_size;
691 p = surface_107_reps;
692 nb = surface_107_nb_reps;
693 sz = surface_107_size;
696 p = surface_109_reps;
697 nb = surface_109_nb_reps;
698 sz = surface_109_size;
701 p = surface_113_reps;
702 nb = surface_113_nb_reps;
703 sz = surface_113_size;
706 p = surface_121_reps;
707 nb = surface_121_nb_reps;
708 sz = surface_121_size;
711 p = surface_127_reps;
712 nb = surface_127_nb_reps;
713 sz = surface_127_size;
716 p = surface_128_reps;
717 nb = surface_128_nb_reps;
718 sz = surface_128_size;
721 cout <<
"knowledge_base::cubic_surface_representative q=" << q
722 <<
" I don't have information for this case" << endl;
726 cout <<
"knowledge_base::cubic_surface_representative q=" << q <<
" i=" << i
727 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
731 cout <<
"knowledge_base::cubic_surface_representative q=" << q <<
" i=" << i
732 <<
" but I have only " << nb <<
" representatives" << endl;
740 int *&data,
int &nb_gens,
int &data_size, std::string &stab_order_str)
743 int nb, make_element_size;
745 const char *stab_order;
748 Reps = surface_4_stab_gens;
749 nb = surface_4_nb_reps;
750 make_element_size = surface_4_make_element_size;
751 f = surface_4_stab_gens_fst[i];
752 l = surface_4_stab_gens_len[i];
753 stab_order = surface_4_stab_order[i];
756 Reps = surface_7_stab_gens;
757 nb = surface_7_nb_reps;
758 make_element_size = surface_7_make_element_size;
759 f = surface_7_stab_gens_fst[i];
760 l = surface_7_stab_gens_len[i];
761 stab_order = surface_7_stab_order[i];
764 Reps = surface_8_stab_gens;
765 nb = surface_8_nb_reps;
766 make_element_size = surface_8_make_element_size;
767 f = surface_8_stab_gens_fst[i];
768 l = surface_8_stab_gens_len[i];
769 stab_order = surface_8_stab_order[i];
772 Reps = surface_9_stab_gens;
773 nb = surface_9_nb_reps;
774 make_element_size = surface_9_make_element_size;
775 f = surface_9_stab_gens_fst[i];
776 l = surface_9_stab_gens_len[i];
777 stab_order = surface_9_stab_order[i];
780 Reps = surface_11_stab_gens;
781 nb = surface_11_nb_reps;
782 make_element_size = surface_11_make_element_size;
783 f = surface_11_stab_gens_fst[i];
784 l = surface_11_stab_gens_len[i];
785 stab_order = surface_11_stab_order[i];
788 Reps = surface_13_stab_gens;
789 nb = surface_13_nb_reps;
790 make_element_size = surface_13_make_element_size;
791 f = surface_13_stab_gens_fst[i];
792 l = surface_13_stab_gens_len[i];
793 stab_order = surface_13_stab_order[i];
796 Reps = surface_16_stab_gens;
797 nb = surface_16_nb_reps;
798 make_element_size = surface_16_make_element_size;
799 f = surface_16_stab_gens_fst[i];
800 l = surface_16_stab_gens_len[i];
801 stab_order = surface_16_stab_order[i];
804 Reps = surface_17_stab_gens;
805 nb = surface_17_nb_reps;
806 make_element_size = surface_17_make_element_size;
807 f = surface_17_stab_gens_fst[i];
808 l = surface_17_stab_gens_len[i];
809 stab_order = surface_17_stab_order[i];
812 Reps = surface_19_stab_gens;
813 nb = surface_19_nb_reps;
814 make_element_size = surface_19_make_element_size;
815 f = surface_19_stab_gens_fst[i];
816 l = surface_19_stab_gens_len[i];
817 stab_order = surface_19_stab_order[i];
820 Reps = surface_23_stab_gens;
821 nb = surface_23_nb_reps;
822 make_element_size = surface_23_make_element_size;
823 f = surface_23_stab_gens_fst[i];
824 l = surface_23_stab_gens_len[i];
825 stab_order = surface_23_stab_order[i];
828 Reps = surface_25_stab_gens;
829 nb = surface_25_nb_reps;
830 make_element_size = surface_25_make_element_size;
831 f = surface_25_stab_gens_fst[i];
832 l = surface_25_stab_gens_len[i];
833 stab_order = surface_25_stab_order[i];
836 Reps = surface_27_stab_gens;
837 nb = surface_27_nb_reps;
838 make_element_size = surface_27_make_element_size;
839 f = surface_27_stab_gens_fst[i];
840 l = surface_27_stab_gens_len[i];
841 stab_order = surface_27_stab_order[i];
844 Reps = surface_29_stab_gens;
845 nb = surface_29_nb_reps;
846 make_element_size = surface_29_make_element_size;
847 f = surface_29_stab_gens_fst[i];
848 l = surface_29_stab_gens_len[i];
849 stab_order = surface_29_stab_order[i];
852 Reps = surface_31_stab_gens;
853 nb = surface_31_nb_reps;
854 make_element_size = surface_31_make_element_size;
855 f = surface_31_stab_gens_fst[i];
856 l = surface_31_stab_gens_len[i];
857 stab_order = surface_31_stab_order[i];
860 Reps = surface_32_stab_gens;
861 nb = surface_32_nb_reps;
862 make_element_size = surface_32_make_element_size;
863 f = surface_32_stab_gens_fst[i];
864 l = surface_32_stab_gens_len[i];
865 stab_order = surface_32_stab_order[i];
868 Reps = surface_37_stab_gens;
869 nb = surface_37_nb_reps;
870 make_element_size = surface_37_make_element_size;
871 f = surface_37_stab_gens_fst[i];
872 l = surface_37_stab_gens_len[i];
873 stab_order = surface_37_stab_order[i];
876 Reps = surface_41_stab_gens;
877 nb = surface_41_nb_reps;
878 make_element_size = surface_41_make_element_size;
879 f = surface_41_stab_gens_fst[i];
880 l = surface_41_stab_gens_len[i];
881 stab_order = surface_41_stab_order[i];
884 Reps = surface_43_stab_gens;
885 nb = surface_43_nb_reps;
886 make_element_size = surface_43_make_element_size;
887 f = surface_43_stab_gens_fst[i];
888 l = surface_43_stab_gens_len[i];
889 stab_order = surface_43_stab_order[i];
892 Reps = surface_47_stab_gens;
893 nb = surface_47_nb_reps;
894 make_element_size = surface_47_make_element_size;
895 f = surface_47_stab_gens_fst[i];
896 l = surface_47_stab_gens_len[i];
897 stab_order = surface_47_stab_order[i];
900 Reps = surface_49_stab_gens;
901 nb = surface_49_nb_reps;
902 make_element_size = surface_49_make_element_size;
903 f = surface_49_stab_gens_fst[i];
904 l = surface_49_stab_gens_len[i];
905 stab_order = surface_49_stab_order[i];
908 Reps = surface_53_stab_gens;
909 nb = surface_53_nb_reps;
910 make_element_size = surface_53_make_element_size;
911 f = surface_53_stab_gens_fst[i];
912 l = surface_53_stab_gens_len[i];
913 stab_order = surface_53_stab_order[i];
916 Reps = surface_59_stab_gens;
917 nb = surface_59_nb_reps;
918 make_element_size = surface_59_make_element_size;
919 f = surface_59_stab_gens_fst[i];
920 l = surface_59_stab_gens_len[i];
921 stab_order = surface_59_stab_order[i];
924 Reps = surface_61_stab_gens;
925 nb = surface_61_nb_reps;
926 make_element_size = surface_61_make_element_size;
927 f = surface_61_stab_gens_fst[i];
928 l = surface_61_stab_gens_len[i];
929 stab_order = surface_61_stab_order[i];
932 Reps = surface_64_stab_gens;
933 nb = surface_64_nb_reps;
934 make_element_size = surface_64_make_element_size;
935 f = surface_64_stab_gens_fst[i];
936 l = surface_64_stab_gens_len[i];
937 stab_order = surface_64_stab_order[i];
940 Reps = surface_67_stab_gens;
941 nb = surface_67_nb_reps;
942 make_element_size = surface_67_make_element_size;
943 f = surface_67_stab_gens_fst[i];
944 l = surface_67_stab_gens_len[i];
945 stab_order = surface_67_stab_order[i];
948 Reps = surface_71_stab_gens;
949 nb = surface_71_nb_reps;
950 make_element_size = surface_71_make_element_size;
951 f = surface_71_stab_gens_fst[i];
952 l = surface_71_stab_gens_len[i];
953 stab_order = surface_71_stab_order[i];
956 Reps = surface_73_stab_gens;
957 nb = surface_73_nb_reps;
958 make_element_size = surface_73_make_element_size;
959 f = surface_73_stab_gens_fst[i];
960 l = surface_73_stab_gens_len[i];
961 stab_order = surface_73_stab_order[i];
964 Reps = surface_79_stab_gens;
965 nb = surface_79_nb_reps;
966 make_element_size = surface_79_make_element_size;
967 f = surface_79_stab_gens_fst[i];
968 l = surface_79_stab_gens_len[i];
969 stab_order = surface_79_stab_order[i];
972 Reps = surface_81_stab_gens;
973 nb = surface_81_nb_reps;
974 make_element_size = surface_81_make_element_size;
975 f = surface_81_stab_gens_fst[i];
976 l = surface_81_stab_gens_len[i];
977 stab_order = surface_81_stab_order[i];
980 Reps = surface_83_stab_gens;
981 nb = surface_83_nb_reps;
982 make_element_size = surface_83_make_element_size;
983 f = surface_83_stab_gens_fst[i];
984 l = surface_83_stab_gens_len[i];
985 stab_order = surface_83_stab_order[i];
988 Reps = surface_89_stab_gens;
989 nb = surface_89_nb_reps;
990 make_element_size = surface_89_make_element_size;
991 f = surface_89_stab_gens_fst[i];
992 l = surface_89_stab_gens_len[i];
993 stab_order = surface_89_stab_order[i];
996 Reps = surface_97_stab_gens;
997 nb = surface_97_nb_reps;
998 make_element_size = surface_97_make_element_size;
999 f = surface_97_stab_gens_fst[i];
1000 l = surface_97_stab_gens_len[i];
1001 stab_order = surface_97_stab_order[i];
1003 else if (q == 101) {
1004 Reps = surface_101_stab_gens;
1005 nb = surface_101_nb_reps;
1006 make_element_size = surface_101_make_element_size;
1007 f = surface_101_stab_gens_fst[i];
1008 l = surface_101_stab_gens_len[i];
1009 stab_order = surface_101_stab_order[i];
1011 else if (q == 103) {
1012 Reps = surface_103_stab_gens;
1013 nb = surface_103_nb_reps;
1014 make_element_size = surface_103_make_element_size;
1015 f = surface_103_stab_gens_fst[i];
1016 l = surface_103_stab_gens_len[i];
1017 stab_order = surface_103_stab_order[i];
1019 else if (q == 107) {
1020 Reps = surface_107_stab_gens;
1021 nb = surface_107_nb_reps;
1022 make_element_size = surface_107_make_element_size;
1023 f = surface_107_stab_gens_fst[i];
1024 l = surface_107_stab_gens_len[i];
1025 stab_order = surface_107_stab_order[i];
1027 else if (q == 109) {
1028 Reps = surface_109_stab_gens;
1029 nb = surface_109_nb_reps;
1030 make_element_size = surface_109_make_element_size;
1031 f = surface_109_stab_gens_fst[i];
1032 l = surface_109_stab_gens_len[i];
1033 stab_order = surface_109_stab_order[i];
1035 else if (q == 113) {
1036 Reps = surface_113_stab_gens;
1037 nb = surface_113_nb_reps;
1038 make_element_size = surface_113_make_element_size;
1039 f = surface_113_stab_gens_fst[i];
1040 l = surface_113_stab_gens_len[i];
1041 stab_order = surface_113_stab_order[i];
1043 else if (q == 121) {
1044 Reps = surface_121_stab_gens;
1045 nb = surface_121_nb_reps;
1046 make_element_size = surface_121_make_element_size;
1047 f = surface_121_stab_gens_fst[i];
1048 l = surface_121_stab_gens_len[i];
1049 stab_order = surface_121_stab_order[i];
1051 else if (q == 127) {
1052 Reps = surface_127_stab_gens;
1053 nb = surface_127_nb_reps;
1054 make_element_size = surface_127_make_element_size;
1055 f = surface_127_stab_gens_fst[i];
1056 l = surface_127_stab_gens_len[i];
1057 stab_order = surface_127_stab_order[i];
1059 else if (q == 128) {
1060 Reps = surface_128_stab_gens;
1061 nb = surface_128_nb_reps;
1062 make_element_size = surface_128_make_element_size;
1063 f = surface_128_stab_gens_fst[i];
1064 l = surface_128_stab_gens_len[i];
1065 stab_order = surface_128_stab_order[i];
1068 cout <<
"knowledge_base::cubic_surface_stab_gens q=" << q
1069 <<
" I don't have information for this field order" << endl;
1073 cout <<
"knowledge_base::cubic_surface_stab_gens q=" << q <<
" i=" << i
1074 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1078 cout <<
"knowledge_base::cubic_surface_stab_gens q=" << q <<
" i=" << i
1079 <<
" but I have only " << nb <<
" representatives" << endl;
1083 data_size = make_element_size;
1084 data = Reps + f * make_element_size;
1085 stab_order_str.assign(stab_order);
1094 nb = surface_4_nb_reps;
1099 nb = surface_7_nb_reps;
1104 nb = surface_8_nb_reps;
1109 nb = surface_9_nb_reps;
1113 p = surface_11_nb_E;
1114 nb = surface_11_nb_reps;
1118 p = surface_13_nb_E;
1119 nb = surface_13_nb_reps;
1123 p = surface_16_nb_E;
1124 nb = surface_16_nb_reps;
1128 p = surface_17_nb_E;
1129 nb = surface_17_nb_reps;
1133 p = surface_19_nb_E;
1134 nb = surface_19_nb_reps;
1138 p = surface_23_nb_E;
1139 nb = surface_23_nb_reps;
1143 p = surface_25_nb_E;
1144 nb = surface_25_nb_reps;
1148 p = surface_27_nb_E;
1149 nb = surface_27_nb_reps;
1153 p = surface_29_nb_E;
1154 nb = surface_29_nb_reps;
1158 p = surface_31_nb_E;
1159 nb = surface_31_nb_reps;
1163 p = surface_32_nb_E;
1164 nb = surface_32_nb_reps;
1168 p = surface_37_nb_E;
1169 nb = surface_37_nb_reps;
1173 p = surface_41_nb_E;
1174 nb = surface_41_nb_reps;
1178 p = surface_43_nb_E;
1179 nb = surface_43_nb_reps;
1183 p = surface_47_nb_E;
1184 nb = surface_47_nb_reps;
1188 p = surface_49_nb_E;
1189 nb = surface_49_nb_reps;
1193 p = surface_53_nb_E;
1194 nb = surface_53_nb_reps;
1198 p = surface_59_nb_E;
1199 nb = surface_59_nb_reps;
1203 p = surface_61_nb_E;
1204 nb = surface_61_nb_reps;
1208 p = surface_64_nb_E;
1209 nb = surface_64_nb_reps;
1213 p = surface_67_nb_E;
1214 nb = surface_67_nb_reps;
1218 p = surface_71_nb_E;
1219 nb = surface_71_nb_reps;
1223 p = surface_73_nb_E;
1224 nb = surface_73_nb_reps;
1228 p = surface_79_nb_E;
1229 nb = surface_79_nb_reps;
1233 p = surface_81_nb_E;
1234 nb = surface_81_nb_reps;
1238 p = surface_83_nb_E;
1239 nb = surface_83_nb_reps;
1243 p = surface_89_nb_E;
1244 nb = surface_89_nb_reps;
1248 p = surface_97_nb_E;
1249 nb = surface_97_nb_reps;
1252 else if (q == 101) {
1253 p = surface_101_nb_E;
1254 nb = surface_101_nb_reps;
1257 else if (q == 103) {
1258 p = surface_103_nb_E;
1259 nb = surface_103_nb_reps;
1262 else if (q == 107) {
1263 p = surface_107_nb_E;
1264 nb = surface_107_nb_reps;
1267 else if (q == 109) {
1268 p = surface_109_nb_E;
1269 nb = surface_109_nb_reps;
1272 else if (q == 113) {
1273 p = surface_113_nb_E;
1274 nb = surface_113_nb_reps;
1277 else if (q == 121) {
1278 p = surface_121_nb_E;
1279 nb = surface_121_nb_reps;
1282 else if (q == 127) {
1283 p = surface_127_nb_E;
1284 nb = surface_127_nb_reps;
1287 else if (q == 128) {
1288 p = surface_128_nb_E;
1289 nb = surface_128_nb_reps;
1293 cout <<
"knowledge_base::cubic_surface_nb_Eckardt_points q=" << q
1294 <<
" I don't have information for this case" << endl;
1298 cout <<
"knowledge_base::cubic_surface_nb_Eckardt_points q=" << q <<
" i=" << i
1299 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1303 cout <<
"knowledge_base::cubic_surface_nb_Eckardt_points q=" << q <<
" i=" << i
1304 <<
" but I have only " << nb <<
" representatives" << endl;
1316 p = surface_4_Lines;
1317 nb = surface_4_nb_reps;
1320 p = surface_7_Lines;
1321 nb = surface_7_nb_reps;
1324 p = surface_8_Lines;
1325 nb = surface_8_nb_reps;
1328 p = surface_9_Lines;
1329 nb = surface_9_nb_reps;
1332 p = surface_11_Lines;
1333 nb = surface_11_nb_reps;
1336 p = surface_13_Lines;
1337 nb = surface_13_nb_reps;
1340 p = surface_16_Lines;
1341 nb = surface_16_nb_reps;
1344 p = surface_17_Lines;
1345 nb = surface_17_nb_reps;
1348 p = surface_19_Lines;
1349 nb = surface_19_nb_reps;
1352 p = surface_23_Lines;
1353 nb = surface_23_nb_reps;
1356 p = surface_25_Lines;
1357 nb = surface_25_nb_reps;
1360 p = surface_27_Lines;
1361 nb = surface_27_nb_reps;
1364 p = surface_29_Lines;
1365 nb = surface_29_nb_reps;
1368 p = surface_31_Lines;
1369 nb = surface_31_nb_reps;
1372 p = surface_32_Lines;
1373 nb = surface_32_nb_reps;
1376 p = surface_37_Lines;
1377 nb = surface_37_nb_reps;
1380 p = surface_41_Lines;
1381 nb = surface_41_nb_reps;
1384 p = surface_43_Lines;
1385 nb = surface_43_nb_reps;
1388 p = surface_47_Lines;
1389 nb = surface_47_nb_reps;
1392 p = surface_49_Lines;
1393 nb = surface_49_nb_reps;
1396 p = surface_53_Lines;
1397 nb = surface_53_nb_reps;
1400 p = surface_59_Lines;
1401 nb = surface_59_nb_reps;
1404 p = surface_61_Lines;
1405 nb = surface_61_nb_reps;
1408 p = surface_64_Lines;
1409 nb = surface_64_nb_reps;
1412 p = surface_67_Lines;
1413 nb = surface_67_nb_reps;
1416 p = surface_71_Lines;
1417 nb = surface_71_nb_reps;
1420 p = surface_73_Lines;
1421 nb = surface_73_nb_reps;
1424 p = surface_79_Lines;
1425 nb = surface_79_nb_reps;
1428 p = surface_81_Lines;
1429 nb = surface_81_nb_reps;
1432 p = surface_83_Lines;
1433 nb = surface_83_nb_reps;
1436 p = surface_89_Lines;
1437 nb = surface_89_nb_reps;
1440 p = surface_97_Lines;
1441 nb = surface_97_nb_reps;
1443 else if (q == 101) {
1444 p = surface_101_Lines;
1445 nb = surface_101_nb_reps;
1447 else if (q == 103) {
1448 p = surface_103_Lines;
1449 nb = surface_103_nb_reps;
1451 else if (q == 107) {
1452 p = surface_107_Lines;
1453 nb = surface_107_nb_reps;
1455 else if (q == 109) {
1456 p = surface_109_Lines;
1457 nb = surface_109_nb_reps;
1459 else if (q == 113) {
1460 p = surface_113_Lines;
1461 nb = surface_113_nb_reps;
1463 else if (q == 121) {
1464 p = surface_121_Lines;
1465 nb = surface_121_nb_reps;
1467 else if (q == 127) {
1468 p = surface_127_Lines;
1469 nb = surface_127_nb_reps;
1471 else if (q == 128) {
1472 p = surface_128_Lines;
1473 nb = surface_128_nb_reps;
1476 cout <<
"knowledge_base::cubic_surface_Lines q=" << q
1477 <<
" I don't have information for this case" << endl;
1481 cout <<
"knowledge_base::cubic_surface_Lines q=" << q <<
" i=" << i
1482 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1486 cout <<
"knowledge_base::cubic_surface_Lines q=" << q <<
" i=" << i
1487 <<
" but I have only " << nb <<
" representatives" << endl;
1505 nb = arcs_8_10_nb_reps;
1508 nb = arcs_16_18_nb_reps;
1511 nb = arcs_32_34_nb_reps;
1514 cout <<
"knowledge_base::hyperoval_nb_reps q=" << q
1515 <<
" I don't have information for this case" << endl;
1527 nb = arcs_8_10_nb_reps;
1528 sz = arcs_8_10_size;
1531 p = arcs_16_18_reps;
1532 nb = arcs_16_18_nb_reps;
1533 sz = arcs_16_18_size;
1536 p = arcs_32_34_reps;
1537 nb = arcs_32_34_nb_reps;
1538 sz = arcs_32_34_size;
1541 cout <<
"knowledge_base::hyperovals_representative q=" << q
1542 <<
" I don't have information for this case" << endl;
1546 cout <<
"knowledge_base::hyperoval_representative q=" << q <<
" i=" << i
1547 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1551 cout <<
"knowledge_base::hyperoval_representative q=" << q <<
" i=" << i
1552 <<
" but I have only " << nb <<
" representatives" << endl;
1560 int *&data,
int &nb_gens,
int &data_size, std::string &stab_order_str)
1563 int nb, make_element_size;
1565 const char *stab_order;
1568 Reps = arcs_8_10_stab_gens;
1569 nb = arcs_8_10_nb_reps;
1570 make_element_size = arcs_8_10_make_element_size;
1571 f = arcs_8_10_stab_gens_fst[i];
1572 l = arcs_8_10_stab_gens_len[i];
1573 stab_order = arcs_8_10_stab_order[i];
1576 Reps = arcs_16_18_stab_gens;
1577 nb = arcs_16_18_nb_reps;
1578 make_element_size = arcs_16_18_make_element_size;
1579 f = arcs_16_18_stab_gens_fst[i];
1580 l = arcs_16_18_stab_gens_len[i];
1581 stab_order = arcs_16_18_stab_order[i];
1584 Reps = arcs_32_34_stab_gens;
1585 nb = arcs_32_34_nb_reps;
1586 make_element_size = arcs_32_34_make_element_size;
1587 f = arcs_32_34_stab_gens_fst[i];
1588 l = arcs_32_34_stab_gens_len[i];
1589 stab_order = arcs_32_34_stab_order[i];
1592 cout <<
"knowledge_base::hyperoval_representative q=" << q
1593 <<
" I don't have information for this field order" << endl;
1597 cout <<
"knowledge_base::hyperoval_representative q=" << q <<
" i=" << i
1598 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1602 cout <<
"knowledge_base::hyperoval_representative q=" << q <<
" i=" << i
1603 <<
" but I have only " << nb <<
" representatives" << endl;
1607 data_size = make_element_size;
1608 data = Reps + f * make_element_size;
1609 stab_order_str.assign(stab_order);
1626 if (k == 4 && n == 7) {
1627 nb = DH_4_7_nb_reps;
1629 else if (k == 4 && n == 8) {
1630 nb = DH_4_8_nb_reps;
1633 cout <<
"knowledge_base::DH_nb_reps k=" << k <<
" n=" << n
1634 <<
" I don't have information for this case" << endl;
1643 long int *p, nb, sz;
1644 if (k == 4 && n == 7) {
1646 nb = DH_4_7_nb_reps;
1649 else if (k == 4 && n == 8) {
1651 nb = DH_4_8_nb_reps;
1655 cout <<
"knowledge_base::DH_representative k=" << k <<
" n=" << n
1656 <<
" I don't have information for this case" << endl;
1660 cout <<
"knowledge_base::DH_representative k=" << k <<
" n=" << n <<
" i=" << i
1661 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1665 cout <<
"knowledge_base::DH_representative k=" << k <<
" n=" << n <<
" i=" << i
1666 <<
" but I have only " << nb <<
" representatives" << endl;
1674 int *&data,
int &nb_gens,
int &data_size, std::string &stab_order_str)
1677 int nb, make_element_size;
1679 const char *stab_order;
1681 if (k == 4 && n == 7) {
1682 Reps = DH_4_7_stab_gens;
1683 nb = DH_4_7_nb_reps;
1684 make_element_size = DH_4_7_make_element_size;
1685 f = DH_4_7_stab_gens_fst[i];
1686 l = DH_4_7_stab_gens_len[i];
1687 stab_order = DH_4_7_stab_order[i];
1689 else if (k == 4 && n == 8) {
1690 Reps = DH_4_8_stab_gens;
1691 nb = DH_4_8_nb_reps;
1692 make_element_size = DH_4_8_make_element_size;
1693 f = DH_4_8_stab_gens_fst[i];
1694 l = DH_4_8_stab_gens_len[i];
1695 stab_order = DH_4_8_stab_order[i];
1698 cout <<
"knowledge_base::DH_representative k=" << k <<
" n=" << n
1699 <<
" I don't have information for this field order" << endl;
1703 cout <<
"knowledge_base::DH_representative k=" << k <<
" n=" << n <<
" i=" << i
1704 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1708 cout <<
"knowledge_base::DH_representative k=" << k <<
" n=" << n <<
" i=" << i
1709 <<
" but I have only " << nb <<
" representatives" << endl;
1713 data_size = make_element_size;
1714 data = Reps + f * make_element_size;
1715 stab_order_str.assign(stab_order);
1733 if (q == 2 && k == 2) {
1734 nb = Spreads_2_2_nb_reps;
1736 else if (q == 3 && k == 2) {
1737 nb = Spreads_3_2_nb_reps;
1739 else if (q == 2 && k == 4) {
1740 nb = Spreads_2_4_nb_reps;
1742 else if (q == 4 && k == 2) {
1743 nb = Spreads_4_2_nb_reps;
1745 else if (q == 5 && k == 2) {
1746 nb = Spreads_5_2_nb_reps;
1748 else if (q == 3 && k == 3) {
1749 nb = Spreads_3_3_nb_reps;
1752 cout <<
"knowledge_base::Spread_nb_reps q=" << q <<
" k=" << k
1753 <<
" I don't have information for this case" << endl;
1765 if (q == 2 && k == 2) {
1766 p = Spreads_2_2_reps;
1767 nb = Spreads_2_2_nb_reps;
1768 sz = Spreads_2_2_size;
1770 else if (q == 3 && k == 2) {
1771 p = Spreads_3_2_reps;
1772 nb = Spreads_3_2_nb_reps;
1773 sz = Spreads_3_2_size;
1775 else if (q == 2 && k == 4) {
1776 p = Spreads_2_4_reps;
1777 nb = Spreads_2_4_nb_reps;
1778 sz = Spreads_2_4_size;
1780 else if (q == 4 && k == 2) {
1781 p = Spreads_4_2_reps;
1782 nb = Spreads_4_2_nb_reps;
1783 sz = Spreads_4_2_size;
1785 else if (q == 5 && k == 2) {
1786 p = Spreads_5_2_reps;
1787 nb = Spreads_5_2_nb_reps;
1788 sz = Spreads_5_2_size;
1790 else if (q == 3 && k == 3) {
1791 p = Spreads_3_3_reps;
1792 nb = Spreads_3_3_nb_reps;
1793 sz = Spreads_3_3_size;
1796 cout <<
"knowledge_base::Spread_representative q=" << q <<
" k=" << k
1797 <<
" I don't have information for this field order" << endl;
1801 cout <<
"knowledge_base::Spread_representative q=" << q <<
" k=" << k <<
" i=" << i
1802 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1806 cout <<
"knowledge_base::Spread_representative q=" << q <<
" k=" << k <<
" i=" << i
1807 <<
" but I have only " << nb <<
" representatives" << endl;
1815 int *&data,
int &nb_gens,
int &data_size, std::string &stab_order_str)
1818 int nb, make_element_size;
1820 const char *stab_order;
1822 if (q == 2 && k == 2) {
1823 Reps = Spreads_2_2_stab_gens;
1824 nb = Spreads_2_2_nb_reps;
1825 make_element_size = Spreads_2_2_make_element_size;
1826 f = Spreads_2_2_stab_gens_fst[i];
1827 l = Spreads_2_2_stab_gens_len[i];
1828 stab_order = Spreads_2_2_stab_order[i];
1830 else if (q == 3 && k == 2) {
1831 Reps = Spreads_3_2_stab_gens;
1832 nb = Spreads_3_2_nb_reps;
1833 make_element_size = Spreads_3_2_make_element_size;
1834 f = Spreads_3_2_stab_gens_fst[i];
1835 l = Spreads_3_2_stab_gens_len[i];
1836 stab_order = Spreads_3_2_stab_order[i];
1838 else if (q == 2 && k == 4) {
1839 Reps = Spreads_2_4_stab_gens;
1840 nb = Spreads_2_4_nb_reps;
1841 make_element_size = Spreads_2_4_make_element_size;
1842 f = Spreads_2_4_stab_gens_fst[i];
1843 l = Spreads_2_4_stab_gens_len[i];
1844 stab_order = Spreads_2_4_stab_order[i];
1846 else if (q == 4 && k == 2) {
1847 Reps = Spreads_4_2_stab_gens;
1848 nb = Spreads_4_2_nb_reps;
1849 make_element_size = Spreads_4_2_make_element_size;
1850 f = Spreads_4_2_stab_gens_fst[i];
1851 l = Spreads_4_2_stab_gens_len[i];
1852 stab_order = Spreads_4_2_stab_order[i];
1854 else if (q == 5 && k == 2) {
1855 Reps = Spreads_5_2_stab_gens;
1856 nb = Spreads_5_2_nb_reps;
1857 make_element_size = Spreads_5_2_make_element_size;
1858 f = Spreads_5_2_stab_gens_fst[i];
1859 l = Spreads_5_2_stab_gens_len[i];
1860 stab_order = Spreads_5_2_stab_order[i];
1862 else if (q == 3 && k == 3) {
1863 Reps = Spreads_3_3_stab_gens;
1864 nb = Spreads_3_3_nb_reps;
1865 make_element_size = Spreads_3_3_make_element_size;
1866 f = Spreads_3_3_stab_gens_fst[i];
1867 l = Spreads_3_3_stab_gens_len[i];
1868 stab_order = Spreads_3_3_stab_order[i];
1871 cout <<
"knowledge_base::Spread_representative q=" << q <<
" k=" << k
1872 <<
" I don't have information for this field order" << endl;
1876 cout <<
"knowledge_base::Spread_representative q=" << q <<
" k=" << k <<
" i=" << i
1877 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
1881 cout <<
"knowledge_base::Spread_representative q=" << q <<
" k=" << k <<
" i=" << i
1882 <<
" but I have only " << nb <<
" representatives" << endl;
1886 data_size = make_element_size;
1887 data = Reps + f * make_element_size;
1888 stab_order_str.assign(stab_order);
1916 nb = BLT_11_nb_reps;
1919 nb = BLT_13_nb_reps;
1922 nb = BLT_17_nb_reps;
1925 nb = BLT_19_nb_reps;
1928 nb = BLT_23_nb_reps;
1931 nb = BLT_25_nb_reps;
1934 nb = BLT_27_nb_reps;
1937 nb = BLT_29_nb_reps;
1940 nb = BLT_31_nb_reps;
1943 nb = BLT_37_nb_reps;
1946 nb = BLT_41_nb_reps;
1949 nb = BLT_43_nb_reps;
1952 nb = BLT_47_nb_reps;
1955 nb = BLT_49_nb_reps;
1958 nb = BLT_53_nb_reps;
1961 nb = BLT_59_nb_reps;
1964 nb = BLT_61_nb_reps;
1967 nb = BLT_67_nb_reps;
1970 nb = BLT_71_nb_reps;
1973 nb = BLT_73_nb_reps;
1976 cout <<
"knowledge_base::BLT_nb_reps q=" << q
1977 <<
" I don't have information for this order" << endl;
2011 nb = BLT_11_nb_reps;
2016 nb = BLT_13_nb_reps;
2021 nb = BLT_17_nb_reps;
2026 nb = BLT_19_nb_reps;
2031 nb = BLT_23_nb_reps;
2036 nb = BLT_25_nb_reps;
2041 nb = BLT_27_nb_reps;
2046 nb = BLT_29_nb_reps;
2051 nb = BLT_31_nb_reps;
2056 nb = BLT_37_nb_reps;
2061 nb = BLT_41_nb_reps;
2066 nb = BLT_43_nb_reps;
2071 nb = BLT_47_nb_reps;
2076 nb = BLT_49_nb_reps;
2081 nb = BLT_53_nb_reps;
2086 nb = BLT_59_nb_reps;
2091 nb = BLT_61_nb_reps;
2096 nb = BLT_67_nb_reps;
2101 nb = BLT_71_nb_reps;
2106 nb = BLT_73_nb_reps;
2110 cout <<
"knowledge_base::BLT_representative q=" << q
2111 <<
" I don't have information for this field order" << endl;
2115 cout <<
"knowledge_base::BLT_representative q=" << q <<
" no=" << no
2116 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
2120 cout <<
"knowledge_base::BLT_representative q=" << q <<
" no=" << no
2121 <<
" but I have only " << nb <<
" representatives" << endl;
2129 int *&data,
int &nb_gens,
int &data_size, std::string &stab_order_str)
2132 int nb, make_element_size;
2134 const char *stab_order;
2137 Reps = BLT_3_stab_gens;
2139 make_element_size = BLT_3_make_element_size;
2140 f = BLT_3_stab_gens_fst[no];
2141 l = BLT_3_stab_gens_len[no];
2142 stab_order = BLT_3_stab_order[no];
2145 Reps = BLT_5_stab_gens;
2147 make_element_size = BLT_5_make_element_size;
2148 f = BLT_5_stab_gens_fst[no];
2149 l = BLT_5_stab_gens_len[no];
2150 stab_order = BLT_5_stab_order[no];
2153 Reps = BLT_7_stab_gens;
2155 make_element_size = BLT_7_make_element_size;
2156 f = BLT_7_stab_gens_fst[no];
2157 l = BLT_7_stab_gens_len[no];
2158 stab_order = BLT_7_stab_order[no];
2161 Reps = BLT_9_stab_gens;
2163 make_element_size = BLT_9_make_element_size;
2164 f = BLT_9_stab_gens_fst[no];
2165 l = BLT_9_stab_gens_len[no];
2166 stab_order = BLT_9_stab_order[no];
2169 Reps = BLT_11_stab_gens;
2170 nb = BLT_11_nb_reps;
2171 make_element_size = BLT_11_make_element_size;
2172 f = BLT_11_stab_gens_fst[no];
2173 l = BLT_11_stab_gens_len[no];
2174 stab_order = BLT_11_stab_order[no];
2177 Reps = BLT_13_stab_gens;
2178 nb = BLT_13_nb_reps;
2179 make_element_size = BLT_13_make_element_size;
2180 f = BLT_13_stab_gens_fst[no];
2181 l = BLT_13_stab_gens_len[no];
2182 stab_order = BLT_13_stab_order[no];
2185 Reps = BLT_17_stab_gens;
2186 nb = BLT_17_nb_reps;
2187 make_element_size = BLT_17_make_element_size;
2188 f = BLT_17_stab_gens_fst[no];
2189 l = BLT_17_stab_gens_len[no];
2190 stab_order = BLT_17_stab_order[no];
2193 Reps = BLT_19_stab_gens;
2194 nb = BLT_19_nb_reps;
2195 make_element_size = BLT_19_make_element_size;
2196 f = BLT_19_stab_gens_fst[no];
2197 l = BLT_19_stab_gens_len[no];
2198 stab_order = BLT_19_stab_order[no];
2201 Reps = BLT_23_stab_gens;
2202 nb = BLT_23_nb_reps;
2203 make_element_size = BLT_23_make_element_size;
2204 f = BLT_23_stab_gens_fst[no];
2205 l = BLT_23_stab_gens_len[no];
2206 stab_order = BLT_23_stab_order[no];
2209 Reps = BLT_25_stab_gens;
2210 nb = BLT_25_nb_reps;
2211 make_element_size = BLT_25_make_element_size;
2212 f = BLT_25_stab_gens_fst[no];
2213 l = BLT_25_stab_gens_len[no];
2214 stab_order = BLT_25_stab_order[no];
2217 Reps = BLT_27_stab_gens;
2218 nb = BLT_27_nb_reps;
2219 make_element_size = BLT_27_make_element_size;
2220 f = BLT_27_stab_gens_fst[no];
2221 l = BLT_27_stab_gens_len[no];
2222 stab_order = BLT_27_stab_order[no];
2225 Reps = BLT_29_stab_gens;
2226 nb = BLT_29_nb_reps;
2227 make_element_size = BLT_29_make_element_size;
2228 f = BLT_29_stab_gens_fst[no];
2229 l = BLT_29_stab_gens_len[no];
2230 stab_order = BLT_29_stab_order[no];
2233 Reps = BLT_31_stab_gens;
2234 nb = BLT_31_nb_reps;
2235 make_element_size = BLT_31_make_element_size;
2236 f = BLT_31_stab_gens_fst[no];
2237 l = BLT_31_stab_gens_len[no];
2238 stab_order = BLT_31_stab_order[no];
2241 Reps = BLT_37_stab_gens;
2242 nb = BLT_37_nb_reps;
2243 make_element_size = BLT_37_make_element_size;
2244 f = BLT_37_stab_gens_fst[no];
2245 l = BLT_37_stab_gens_len[no];
2246 stab_order = BLT_37_stab_order[no];
2249 Reps = BLT_41_stab_gens;
2250 nb = BLT_41_nb_reps;
2251 make_element_size = BLT_41_make_element_size;
2252 f = BLT_41_stab_gens_fst[no];
2253 l = BLT_41_stab_gens_len[no];
2254 stab_order = BLT_41_stab_order[no];
2257 Reps = BLT_43_stab_gens;
2258 nb = BLT_43_nb_reps;
2259 make_element_size = BLT_43_make_element_size;
2260 f = BLT_43_stab_gens_fst[no];
2261 l = BLT_43_stab_gens_len[no];
2262 stab_order = BLT_43_stab_order[no];
2265 Reps = BLT_47_stab_gens;
2266 nb = BLT_47_nb_reps;
2267 make_element_size = BLT_47_make_element_size;
2268 f = BLT_47_stab_gens_fst[no];
2269 l = BLT_47_stab_gens_len[no];
2270 stab_order = BLT_47_stab_order[no];
2273 Reps = BLT_49_stab_gens;
2274 nb = BLT_49_nb_reps;
2275 make_element_size = BLT_49_make_element_size;
2276 f = BLT_49_stab_gens_fst[no];
2277 l = BLT_49_stab_gens_len[no];
2278 stab_order = BLT_49_stab_order[no];
2281 Reps = BLT_53_stab_gens;
2282 nb = BLT_53_nb_reps;
2283 make_element_size = BLT_53_make_element_size;
2284 f = BLT_53_stab_gens_fst[no];
2285 l = BLT_53_stab_gens_len[no];
2286 stab_order = BLT_53_stab_order[no];
2289 Reps = BLT_59_stab_gens;
2290 nb = BLT_59_nb_reps;
2291 make_element_size = BLT_59_make_element_size;
2292 f = BLT_59_stab_gens_fst[no];
2293 l = BLT_59_stab_gens_len[no];
2294 stab_order = BLT_59_stab_order[no];
2297 Reps = BLT_61_stab_gens;
2298 nb = BLT_61_nb_reps;
2299 make_element_size = BLT_61_make_element_size;
2300 f = BLT_61_stab_gens_fst[no];
2301 l = BLT_61_stab_gens_len[no];
2302 stab_order = BLT_61_stab_order[no];
2305 Reps = BLT_67_stab_gens;
2306 nb = BLT_67_nb_reps;
2307 make_element_size = BLT_67_make_element_size;
2308 f = BLT_67_stab_gens_fst[no];
2309 l = BLT_67_stab_gens_len[no];
2310 stab_order = BLT_67_stab_order[no];
2313 Reps = BLT_71_stab_gens;
2314 nb = BLT_71_nb_reps;
2315 make_element_size = BLT_71_make_element_size;
2316 f = BLT_71_stab_gens_fst[no];
2317 l = BLT_71_stab_gens_len[no];
2318 stab_order = BLT_71_stab_order[no];
2321 Reps = BLT_73_stab_gens;
2322 nb = BLT_73_nb_reps;
2323 make_element_size = BLT_73_make_element_size;
2324 f = BLT_73_stab_gens_fst[no];
2325 l = BLT_73_stab_gens_len[no];
2326 stab_order = BLT_73_stab_order[no];
2329 cout <<
"knowledge_base::BLT_representative q=" << q <<
" I don't have "
2330 "information for this field order" << endl;
2334 cout <<
"knowledge_base::BLT_representative q=" << q <<
" no=" << no
2335 <<
" but i must be at least 0 (numbering starts at 0)" << endl;
2339 cout <<
"knowledge_base::BLT_representative q=" << q <<
" no=" << no
2340 <<
" but I have only " << nb <<
" representatives" << endl;
2344 data_size = make_element_size;
2345 data = Reps + f * make_element_size;
2346 stab_order_str.assign(stab_order);
2354 const char *override_poly = NULL;
2359 cout <<
"knowledge_base::override_polynomial_subfield "
2360 "q is not a prime power" << endl;
2368 override_poly =
"13";
2371 override_poly =
"17";
2374 override_poly =
"47";
2377 override_poly =
"34";
2380 override_poly =
"94";
2383 override_poly =
"89";
2385 else if (q == 121) {
2386 override_poly =
"200";
2388 if (override_poly == NULL) {
2389 cout <<
"knowledge_base::override_polynomial_subfield, "
2390 "do not have a polynomial for q=" << q << endl;
2394 int verbose_level = 2;
2398 cout <<
"knowledge_base::override_polynomial_subfield initializing large field" << endl;
2399 F.finite_field_init(qq,
FALSE , verbose_level);
2400 cout <<
"knowledge_base::override_polynomial_subfield initializing small field" << endl;
2401 f.finite_field_init(q,
FALSE , verbose_level);
2403 F.finite_field_init(qq,
FALSE , 1);
2404 f.finite_field_init(q,
FALSE , 3);
2405 cout <<
"knowledge_base::override_polynomial_subfield need to choose the generator "
2406 "polynomial for the field" << endl;
2407 F.compute_subfields(verbose_level);
2413 poly.assign(override_poly);
2418 const char *override_poly = NULL;
2423 cout <<
"knowledge_base::override_polynomial_extension_field "
2424 "q is not a prime power" << endl;
2437 override_poly =
"110";
2440 override_poly =
"767";
2443 override_poly =
"974";
2446 override_poly =
"2754";
2449 override_poly =
"6590";
2451 else if (q == 121) {
2452 override_poly =
"15985";
2454 if (override_poly == NULL) {
2455 cout <<
"knowledge_base::override_polynomial_extension_field, "
2456 "do not have a polynomial for q=" << q << endl;
2459 poly.assign(override_poly);
2464 char *override_poly_Q =
"110";
2465 char *override_poly_q =
"17";
2473 F.init_override_polynomial(Q, override_poly_Q, verbose_level - 2);
2474 cout <<
"field of order " << Q <<
" initialized" << endl;
2475 f.init_override_polynomial(q, override_poly_q, verbose_level - 2);
2478 char *override_poly_Q =
"767";
2479 char *override_poly_q =
"47";
2485 F.init_override_polynomial(Q, override_poly_Q, verbose_level - 2);
2486 cout <<
"field of order " << Q <<
" initialized" << endl;
2487 f.init_override_polynomial(q, override_poly_q, verbose_level - 2);
2490 char *override_poly_Q =
"974";
2491 char *override_poly_q =
"34";
2502 F.init_override_polynomial(Q, override_poly_Q, verbose_level - 2);
2503 cout <<
"field of order " << Q <<
" initialized" << endl;
2504 f.init_override_polynomial(q, override_poly_q, verbose_level - 2);
2507 char *override_poly_Q =
"2754";
2508 char *override_poly_q =
"94";
2514 F.init_override_polynomial(Q, override_poly_Q, verbose_level - 2);
2515 cout <<
"field of order " << Q <<
" initialized" << endl;
2516 f.init_override_polynomial(q, override_poly_q, verbose_level - 2);
2519 char *override_poly_Q =
"6590";
2520 char *override_poly_q =
"89";
2528 F.init_override_polynomial(Q, override_poly_Q, verbose_level - 2);
2529 cout <<
"field of order " << Q <<
" initialized" << endl;
2530 f.init_override_polynomial(q, override_poly_q, verbose_level - 2);
2532 else if (q == 121) {
2533 char *override_poly_Q =
"15985";
2534 char *override_poly_q =
"200";
2540 F.init_override_polynomial(Q, override_poly_Q, verbose_level - 2);
2541 cout <<
"field of order " << Q <<
" initialized" << endl;
2542 f.init_override_polynomial(q, override_poly_q, verbose_level - 2);
2554 int *&list_of_lines,
2555 int &order,
int &nb_lines,
int &line_size,
2556 const char *label,
int verbose_level)
2558 int f_v = (verbose_level >= 1);
2562 cout <<
"knowledge_base::get_projective_plane_list_of_lines" << endl;
2564 if (strcmp(label,
"Mathon_16") == 0) {
2566 nb_lines = order * order + order + 1;
2567 line_size = order + 1;
2568 list_of_lines =
NEW_int(nb_lines * line_size);
2569 for (i = 0; i < nb_lines * line_size; i++) {
2570 list_of_lines[i] = plane_mathon[i] - 1;
2573 else if (strcmp(label,
"Semi4_16") == 0) {
2575 nb_lines = order * order + order + 1;
2576 line_size = order + 1;
2577 list_of_lines =
NEW_int(nb_lines * line_size);
2578 for (i = 0; i < nb_lines * line_size; i++) {
2579 list_of_lines[i] = plane_semi4[i] - 1;
2582 else if (strcmp(label,
"Semi2_16") == 0) {
2584 nb_lines = order * order + order + 1;
2585 line_size = order + 1;
2586 list_of_lines =
NEW_int(nb_lines * line_size);
2587 for (i = 0; i < nb_lines * line_size; i++) {
2588 list_of_lines[i] = plane_semi2[i] - 1;
2591 else if (strcmp(label,
"PG_2_16") == 0) {
2593 nb_lines = order * order + order + 1;
2594 line_size = order + 1;
2595 list_of_lines =
NEW_int(nb_lines * line_size);
2596 for (i = 0; i < nb_lines * line_size; i++) {
2597 list_of_lines[i] = plane_PG_2_16[i] - 1;
2600 else if (strcmp(label,
"Lmrh_16") == 0) {
2602 nb_lines = order * order + order + 1;
2603 line_size = order + 1;
2604 list_of_lines =
NEW_int(nb_lines * line_size);
2605 for (i = 0; i < nb_lines * line_size; i++) {
2606 list_of_lines[i] = plane_Lmrh[i] - 1;
2609 else if (strcmp(label,
"Jowk_16") == 0) {
2611 nb_lines = order * order + order + 1;
2612 line_size = order + 1;
2613 list_of_lines =
NEW_int(nb_lines * line_size);
2614 for (i = 0; i < nb_lines * line_size; i++) {
2615 list_of_lines[i] = plane_jowk[i] - 1;
2618 else if (strcmp(label,
"Jo_16") == 0) {
2620 nb_lines = order * order + order + 1;
2621 line_size = order + 1;
2622 list_of_lines =
NEW_int(nb_lines * line_size);
2623 for (i = 0; i < nb_lines * line_size; i++) {
2624 list_of_lines[i] = plane_johnson[i] - 1;
2627 else if (strcmp(label,
"Hall_16") == 0) {
2629 nb_lines = order * order + order + 1;
2630 line_size = order + 1;
2631 list_of_lines =
NEW_int(nb_lines * line_size);
2632 for (i = 0; i < nb_lines * line_size; i++) {
2633 list_of_lines[i] = plane_Hall[i] - 1;
2636 else if (strcmp(label,
"Dsfp_16") == 0) {
2638 nb_lines = order * order + order + 1;
2639 line_size = order + 1;
2640 list_of_lines =
NEW_int(nb_lines * line_size);
2641 for (i = 0; i < nb_lines * line_size; i++) {
2642 list_of_lines[i] = plane_dsfp[i] - 1;
2645 else if (strcmp(label,
"Demp_16") == 0) {
2647 nb_lines = order * order + order + 1;
2648 line_size = order + 1;
2649 list_of_lines =
NEW_int(nb_lines * line_size);
2650 for (i = 0; i < nb_lines * line_size; i++) {
2651 list_of_lines[i] = plane_demp[i] - 1;
2654 else if (strcmp(label,
"Bbh1_16") == 0) {
2656 nb_lines = order * order + order + 1;
2657 line_size = order + 1;
2658 list_of_lines =
NEW_int(nb_lines * line_size);
2659 for (i = 0; i < nb_lines * line_size; i++) {
2660 list_of_lines[i] = plane_bbh1[i] - 1;
2664 cout <<
"knowledge_base::get_projective_plane_list_of_lines unrecognized type" << endl;
2668 cout <<
"knowledge_base::get_projective_plane_list_of_lines done" << endl;
2683 nb = data_tensor_nb_w4_reps;
2686 nb = data_tensor_nb_w5_reps;
2689 cout <<
"knowledge_base::tensor_orbits_nb_reps n=" << n
2690 <<
" I don't have information for this case" << endl;
2703 p = data_tensor_w4_reps;
2704 nb = data_tensor_nb_w4_reps;
2707 p = data_tensor_w5_reps;
2708 nb = data_tensor_nb_w5_reps;
2711 cout <<
"knowledge_base::tensor_orbits_rep n=" << n
2712 <<
" I don't have information for this case" << endl;
2716 cout <<
"knowledge_base::tensor_orbits_rep n=" << n <<
" idx=" << idx
2717 <<
" but idx must be at least 0 (numbering starts at 0)" << endl;
2721 cout <<
"knowledge_base::tensor_orbits_rep n=" << n <<
" idx=" << idx
2722 <<
" but I have only " << nb <<
" representatives" << endl;
void quartic_curves_stab_gens(int q, int i, int *&data, int &nb_gens, int &data_size, std::string &stab_order_str)
void BLT_stab_gens(int q, int no, int *&data, int &nb_gens, int &data_size, std::string &stab_order_str)
void Spread_stab_gens(int q, int k, int i, int *&data, int &nb_gens, int &data_size, std::string &stab_order_str)
long int * Spread_representative(int q, int k, int i, int &sz)
void DH_stab_gens(int k, int n, int i, int *&data, int &nb_gens, int &data_size, std::string &stab_order_str)
int quartic_curves_nb_reps(int q)
long int * cubic_surface_Lines(int q, int i)
long int * DH_representative(int k, int n, int i)
long int * quartic_curves_bitangents(int q, int i)
int DH_nb_reps(int k, int n)
void get_primitive_polynomial(std::string &poly, int p, int e, int verbose_level)
void override_polynomial_extension_field(std::string &poly, int q)
void cubic_surface_stab_gens(int q, int i, int *&data, int &nb_gens, int &data_size, std::string &stab_order_str)
long int * BLT_representative(int q, int no)
int cubic_surface_nb_Eckardt_points(int q, int i)
int tensor_orbits_nb_reps(int n)
long int * tensor_orbits_rep(int n, int idx)
int * quartic_curves_representative(int q, int i)
int * hyperoval_representative(int q, int i)
int Spread_nb_reps(int q, int k)
int hyperoval_nb_reps(int q)
int * cubic_surface_representative(int q, int i)
int cubic_surface_nb_reps(int q)
void get_projective_plane_list_of_lines(int *&list_of_lines, int &order, int &nb_lines, int &line_size, const char *label, int verbose_level)
void hyperoval_gens(int q, int i, int *&data, int &nb_gens, int &data_size, std::string &stab_order_str)
void override_polynomial_subfield(std::string &poly, int q)
basic number theoretic functions
int is_prime_power(int q)
the orbiter library for the classification of combinatorial objects