passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/aarch64-unknown-linux-gnu-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1016 -0
  17. gap/pkg/semigroups/config.status +1132 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.libs/libsemigroups-8ea3c4e7.so.2.0.0 +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,445 @@
1
+ //
2
+ // gapbind14
3
+ // Copyright (C) 2021-2022 James D. Mitchell
4
+ //
5
+ // This program is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU General Public License
16
+ // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ //
18
+
19
+ // TODO:
20
+ // * Allow return Fail instead of ErrorQuit in GAPBIND14_TRY
21
+ // * Allow custom printing
22
+ // * Support enums
23
+ // * Support operators
24
+ // * tests for gapbind14/demo
25
+ // * update gapbind14/README.md
26
+ // * gapbind: iwyu in all files
27
+ // * gapbind: const/noexcept in all files
28
+
29
+ #ifndef INCLUDE_GAPBIND14_GAPBIND14_HPP_
30
+ #define INCLUDE_GAPBIND14_GAPBIND14_HPP_
31
+
32
+ #include <cstddef> // for size_t
33
+ #include <iterator> // for distance, iterator_traits
34
+ #include <memory> // for shared_ptr
35
+ #include <sstream> // for ostringstream
36
+ #include <stdexcept> // for runtime_error
37
+ #include <string> // for string
38
+ #include <type_traits> // for enable_if_t
39
+ #include <typeinfo> // for typeid
40
+ #include <unordered_map> // for unordered_map
41
+ #include <utility> // for make_pair
42
+ #include <vector> // for vector
43
+
44
+ #include "gap_include.hpp" // for Obj etc
45
+ #include "tame_free_fn.hpp" // for tame free functions
46
+ #include "tame_mem_fn.hpp" // for tame member functions
47
+ #include "to_gap.hpp" // for to_gap
48
+
49
+ ////////////////////////////////////////////////////////////////////////
50
+ // Assertions
51
+ ////////////////////////////////////////////////////////////////////////
52
+
53
+ #ifdef GAPBIND14_DEBUG
54
+ #define GAPBIND14_ASSERT(x) assert(x)
55
+ #else
56
+ #define GAPBIND14_ASSERT(x)
57
+ #endif
58
+
59
+ ////////////////////////////////////////////////////////////////////////
60
+ // Macros
61
+ ////////////////////////////////////////////////////////////////////////
62
+
63
+ #define GAPBIND14_MODULE(name) \
64
+ static void gapbind14_init_##name(); \
65
+ int gapbind14_dummy_var_##name \
66
+ = ::gapbind14::detail::emplace_init_func(#name, &gapbind14_init_##name); \
67
+ void gapbind14_init_##name()
68
+
69
+ ////////////////////////////////////////////////////////////////////////
70
+ // Typdefs for GAP
71
+ ////////////////////////////////////////////////////////////////////////
72
+
73
+ namespace gapbind14 {
74
+
75
+ // Forward decl
76
+ template <typename T, typename>
77
+ struct to_cpp;
78
+
79
+ ////////////////////////////////////////////////////////////////////////
80
+ // Aliases
81
+ ////////////////////////////////////////////////////////////////////////
82
+
83
+ using gapbind14_subtype = size_t;
84
+
85
+ ////////////////////////////////////////////////////////////////////////
86
+ // Constants
87
+ ////////////////////////////////////////////////////////////////////////
88
+
89
+ extern UInt T_GAPBIND14_OBJ;
90
+
91
+ template <typename T>
92
+ struct IsGapBind14Type : std::false_type {};
93
+
94
+ template <typename T>
95
+ struct IsGapBind14Type<T&> : IsGapBind14Type<T> {};
96
+
97
+ template <typename T>
98
+ struct IsGapBind14Type<T&&> : IsGapBind14Type<T> {};
99
+
100
+ template <typename T>
101
+ struct IsGapBind14Type<T const&> : IsGapBind14Type<T> {};
102
+
103
+ template <typename T>
104
+ struct IsGapBind14Type<std::shared_ptr<T>> : IsGapBind14Type<T> {};
105
+
106
+ void init_library(char const*);
107
+ void init_kernel(char const*);
108
+
109
+ class Module; // Forward decl
110
+ Module& module();
111
+
112
+ ////////////////////////////////////////////////////////////////////////
113
+ // Helper functions
114
+ ////////////////////////////////////////////////////////////////////////
115
+
116
+ namespace detail {
117
+
118
+ std::unordered_map<std::string, void (*)()>& init_funcs();
119
+
120
+ int emplace_init_func(char const* module_name, void (*func)());
121
+
122
+ // Convert object to string
123
+ template <typename T>
124
+ std::string to_string(T const& n) {
125
+ std::ostringstream stm;
126
+ stm << n;
127
+ return stm.str();
128
+ }
129
+
130
+ void require_gapbind14_obj(Obj o);
131
+
132
+ // Get the gapbind14 subtype of the object o.
133
+ gapbind14_subtype obj_subtype(Obj o);
134
+
135
+ template <typename T>
136
+ T* obj_cpp_ptr(Obj o) {
137
+ // Couldn't add static_assert that IsGapBind14Type<T>::value is true
138
+ // because sometimes we call this function when T is a base class of a
139
+ // class where IsGapBind14Type<T>::value is true.
140
+ require_gapbind14_obj(o);
141
+ // Also cannot check that subtype of o corresponds to T for the same
142
+ // reason as above T might be a base class of a GapBind14Type.
143
+ return reinterpret_cast<T*>(ADDR_OBJ(o)[1]);
144
+ }
145
+
146
+ char const* copy_c_str(std::string const& str);
147
+
148
+ char const* params_c_str(size_t nr);
149
+
150
+ ////////////////////////////////////////////////////////////////////////
151
+ // SubtypeBase class - for polymorphism
152
+ ////////////////////////////////////////////////////////////////////////
153
+
154
+ class SubtypeBase {
155
+ private:
156
+ std::string _name;
157
+ gapbind14_subtype _subtype;
158
+
159
+ public:
160
+ SubtypeBase(std::string nm, gapbind14_subtype sbtyp);
161
+
162
+ virtual ~SubtypeBase() {}
163
+
164
+ std::string const& name() const {
165
+ return _name;
166
+ }
167
+
168
+ gapbind14_subtype subtype() const noexcept {
169
+ return _subtype;
170
+ }
171
+
172
+ virtual void free(Obj o) = 0;
173
+ };
174
+
175
+ ////////////////////////////////////////////////////////////////////////
176
+ // Subtype class
177
+ ////////////////////////////////////////////////////////////////////////
178
+
179
+ template <typename T>
180
+ class Subtype : public SubtypeBase {
181
+ public:
182
+ using class_type = T;
183
+
184
+ Subtype(std::string nm, gapbind14_subtype sbtyp)
185
+ : SubtypeBase(nm, sbtyp) {}
186
+
187
+ void free(Obj o) override {
188
+ static_assert(IsGapBind14Type<T>::value,
189
+ "template parameter T must satisfy IsGapbind14Type<T>");
190
+ GAPBIND14_ASSERT(obj_subtype(o) == module().subtype<T>());
191
+ delete detail::obj_cpp_ptr<T>(o);
192
+ }
193
+ };
194
+ } // namespace detail
195
+
196
+ ////////////////////////////////////////////////////////////////////////
197
+ // Module class
198
+ ////////////////////////////////////////////////////////////////////////
199
+
200
+ class Module {
201
+ private:
202
+ std::vector<StructGVarFunc> _funcs;
203
+ std::vector<std::vector<StructGVarFunc>> _mem_funcs;
204
+ std::unordered_map<std::string, gapbind14_subtype> _subtype_names;
205
+ std::vector<detail::SubtypeBase*> _subtypes;
206
+ std::unordered_map<size_t, gapbind14_subtype> _type_to_subtype;
207
+
208
+ static size_t _next_subtype;
209
+
210
+ public:
211
+ Module()
212
+ : _funcs(),
213
+ _mem_funcs(),
214
+ _subtype_names(),
215
+ _subtypes(),
216
+ _type_to_subtype() {}
217
+
218
+ Module(Module const&) = delete;
219
+ Module(Module&&) = delete;
220
+ Module& operator=(Module const&) = delete;
221
+ Module& operator=(Module&&) = delete;
222
+
223
+ ~Module();
224
+
225
+ void clear();
226
+
227
+ gapbind14_subtype subtype(std::string const& subtype_name) const;
228
+
229
+ template <typename T>
230
+ gapbind14_subtype subtype() const {
231
+ auto it = _type_to_subtype.find(typeid(T).hash_code());
232
+ if (it == _type_to_subtype.end()) {
233
+ throw std::runtime_error(std::string("No subtype for ")
234
+ + typeid(T).name());
235
+ }
236
+ return it->second;
237
+ }
238
+
239
+ const char* subtype_name(Obj o) const {
240
+ return _subtypes.at(detail::obj_subtype(o))->name().c_str();
241
+ }
242
+
243
+ void print(Obj o) {
244
+ Pr("<class %s at %s>",
245
+ (Int) subtype_name(o),
246
+ (Int) detail::to_string(o).c_str());
247
+ }
248
+
249
+ #ifdef GAP_ENABLE_SAVELOAD
250
+ void save(Obj o) {
251
+ SaveUInt(detail::obj_subtype(o));
252
+ }
253
+
254
+ void load(Obj o) const;
255
+ #endif
256
+
257
+ void free(Obj o) const {
258
+ _subtypes.at(detail::obj_subtype(o))->free(o);
259
+ }
260
+
261
+ StructGVarFunc const* funcs() const {
262
+ return &_funcs[0];
263
+ }
264
+
265
+ StructGVarFunc const* mem_funcs(std::string const& nm) const {
266
+ return &_mem_funcs[subtype(nm)][0];
267
+ }
268
+
269
+ template <typename T>
270
+ gapbind14_subtype add_subtype(std::string const& nm) {
271
+ bool inserted
272
+ = _subtype_names.insert(std::make_pair(nm, _subtypes.size())).second;
273
+ if (!inserted) {
274
+ throw std::runtime_error("Subtype named " + nm + " already registered");
275
+ }
276
+ _type_to_subtype.emplace(typeid(T).hash_code(), _subtypes.size());
277
+ _subtypes.push_back(new detail::Subtype<T>(nm, _subtypes.size()));
278
+ _mem_funcs.push_back(std::vector<StructGVarFunc>());
279
+ return _subtypes.back()->subtype();
280
+ }
281
+
282
+ template <typename... Args>
283
+ void add_func(std::string fnm,
284
+ std::string const& nm,
285
+ Obj (*func)(Args...)) {
286
+ static_assert(sizeof...(Args) > 0,
287
+ "there must be at least 1 parameter: Obj self");
288
+ static_assert(sizeof...(Args) <= 7, "Args must be at most 7");
289
+ _funcs.push_back({detail::copy_c_str(nm),
290
+ sizeof...(Args) - 1,
291
+ detail::params_c_str(sizeof...(Args) - 1),
292
+ (ObjFunc) func,
293
+ detail::copy_c_str(fnm + ":Func" + nm)});
294
+ }
295
+
296
+ template <typename... Args>
297
+ void add_mem_func(std::string const& sbtyp,
298
+ std::string flnm,
299
+ std::string const& nm,
300
+ Obj (*func)(Args...)) {
301
+ static_assert(sizeof...(Args) <= 7, "Args must be at most 7");
302
+ _mem_funcs.at(subtype(sbtyp))
303
+ .push_back({detail::copy_c_str(nm),
304
+ sizeof...(Args) - 1,
305
+ detail::params_c_str(sizeof...(Args) - 1),
306
+ (ObjFunc) func,
307
+ detail::copy_c_str(flnm + ":Func" + sbtyp + "::" + nm)});
308
+ }
309
+
310
+ void finalize();
311
+
312
+ std::vector<detail::SubtypeBase*>::const_iterator begin() const noexcept {
313
+ return _subtypes.cbegin();
314
+ }
315
+
316
+ std::vector<detail::SubtypeBase*>::const_iterator end() const noexcept {
317
+ return _subtypes.cend();
318
+ }
319
+ };
320
+
321
+ ////////////////////////////////////////////////////////////////////////
322
+ // to_cpp/gap - for gapbind14 gap objects
323
+ ////////////////////////////////////////////////////////////////////////
324
+
325
+ template <typename T>
326
+ struct to_cpp<T, std::enable_if_t<IsGapBind14Type<T>::value>> {
327
+ using cpp_type = std::decay_t<T>;
328
+
329
+ std::decay_t<T>& operator()(Obj o) const {
330
+ detail::require_gapbind14_obj(o);
331
+ return *detail::obj_cpp_ptr<std::decay_t<T>>(o);
332
+ }
333
+ };
334
+
335
+ template <typename T>
336
+ struct to_gap<T, std::enable_if_t<IsGapBind14Type<T>::value>> {
337
+ using cpp_type = T;
338
+
339
+ Obj operator()(T const& obj) const {
340
+ return to_gap<T*>()(new T(obj));
341
+ }
342
+ };
343
+
344
+ template <typename T>
345
+ struct to_gap<T*, std::enable_if_t<IsGapBind14Type<T>::value>> {
346
+ using cpp_type = T;
347
+
348
+ Obj operator()(T* ptr) const {
349
+ Obj o = NewBag(T_GAPBIND14_OBJ, 2 * sizeof(Obj));
350
+ ADDR_OBJ(o)[0] = reinterpret_cast<Obj>(module().subtype<T>());
351
+ ADDR_OBJ(o)[1] = reinterpret_cast<Obj>(ptr);
352
+ CHANGED_BAG(o);
353
+ return o;
354
+ }
355
+ };
356
+
357
+ ////////////////////////////////////////////////////////////////////////
358
+ // Free functions
359
+ ////////////////////////////////////////////////////////////////////////
360
+
361
+ template <typename Wild>
362
+ static void InstallGlobalFunction(char const* name, Wild f) {
363
+ size_t const n = detail::all_wilds<Wild>().size();
364
+ detail::all_wilds<Wild>().push_back(f);
365
+ module().add_func(
366
+ __FILE__,
367
+ name,
368
+ detail::get_tame<decltype(&detail::tame<0, Wild>), Wild>(n));
369
+ }
370
+
371
+ ////////////////////////////////////////////////////////////////////////
372
+ // Tes
373
+ ////////////////////////////////////////////////////////////////////////
374
+
375
+ template <typename... Args>
376
+ struct init {};
377
+
378
+ namespace detail {
379
+ template <typename T, typename... Args>
380
+ T* make(Args... params) {
381
+ return new T(std::forward<Args>(params)...);
382
+ }
383
+ } // namespace detail
384
+
385
+ template <typename T>
386
+ class class_ {
387
+ public:
388
+ class_(std::string name)
389
+ : _name(name), _subtype(module().add_subtype<T>(name)) {}
390
+
391
+ template <typename... Args>
392
+ class_& def(init<Args...> x, std::string name = "make") {
393
+ return def(name.c_str(), &detail::make<T, Args...>);
394
+ }
395
+
396
+ template <typename Wild>
397
+ auto def(char const* mem_fn_name, Wild f)
398
+ -> std::enable_if_t<std::is_member_function_pointer<Wild>::value,
399
+ class_&> {
400
+ size_t const n = detail::all_wild_mem_fns<Wild>().size();
401
+ detail::all_wild_mem_fns<Wild>().push_back(f);
402
+ module().add_mem_func(
403
+ _name,
404
+ __FILE__,
405
+ mem_fn_name,
406
+ detail::get_tame_mem_fn<decltype(&detail::tame_mem_fn<0, Wild>),
407
+ Wild>(n));
408
+ return *this;
409
+ }
410
+
411
+ template <typename Wild>
412
+ auto def(char const* mem_fn_name, Wild f)
413
+ -> std::enable_if_t<!std::is_member_function_pointer<Wild>::value,
414
+ class_&> {
415
+ size_t const n = detail::all_wilds<Wild>().size();
416
+ detail::all_wilds<Wild>().push_back(f);
417
+ module().add_mem_func(
418
+ _name,
419
+ __FILE__,
420
+ mem_fn_name,
421
+ detail::get_tame<decltype(&detail::tame<0, Wild>), Wild>(n));
422
+ return *this;
423
+ }
424
+
425
+ private:
426
+ std::string _name;
427
+ gapbind14_subtype _subtype;
428
+ };
429
+
430
+ template <typename T>
431
+ Obj make_iterator(T first, T last) {
432
+ size_t N = std::distance(first, last);
433
+ Obj result = NEW_PLIST((N == 0 ? T_PLIST_EMPTY : T_PLIST_HOM), N);
434
+ SET_LEN_PLIST(result, N);
435
+ size_t i = 1;
436
+ for (auto it = first; it != last; ++it) {
437
+ AssPlist(result,
438
+ i++,
439
+ to_gap<typename std::iterator_traits<T>::value_type>()(*it));
440
+ }
441
+ return result;
442
+ }
443
+ } // namespace gapbind14
444
+
445
+ #endif // INCLUDE_GAPBIND14_GAPBIND14_HPP_