passagemath-gap-pkg-semigroups 10.6.30__cp312-abi3-macosx_13_0_arm64.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-apple-darwin23-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1158 -0
  17. gap/pkg/semigroups/config.status +1131 -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.30.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +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,556 @@
1
+ //
2
+ // gapbind14
3
+ // Copyright (C) 2020-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
+ #ifndef INCLUDE_GAPBIND14_TAME_MEM_FN_HPP_
20
+ #define INCLUDE_GAPBIND14_TAME_MEM_FN_HPP_
21
+
22
+ #include <algorithm> // for reverse
23
+ #include <cstddef> // for size_t
24
+ #include <type_traits> // for enable_if_t
25
+ #include <vector> // for vector
26
+
27
+ #include "cpp_fn.hpp" // for CppFunction, GAPBIND14_TRY, T_GAPBIND14_OBJ,
28
+ // arg_count, returns_void
29
+ #include "gap_include.hpp" // for ErrorQuit, Obj, Int, TNAM_OBJ, TNUM_OBJ
30
+ #include "to_cpp.hpp" // for to_cpp
31
+ #include "to_gap.hpp" // for to_gap
32
+
33
+ namespace gapbind14 {
34
+
35
+ namespace detail {
36
+ // forward decl
37
+ template <typename T>
38
+ T *obj_cpp_ptr(Obj o);
39
+
40
+ template <typename T>
41
+ class Subtype;
42
+
43
+ ////////////////////////////////////////////////////////////////////////
44
+ // Wilds
45
+ ////////////////////////////////////////////////////////////////////////
46
+
47
+ template <typename Wild>
48
+ auto &all_wild_mem_fns() {
49
+ static std::vector<Wild> fs;
50
+ return fs;
51
+ }
52
+
53
+ template <typename Wild>
54
+ auto wild_mem_fn(size_t i) {
55
+ return all_wild_mem_fns<Wild>().at(i);
56
+ }
57
+
58
+ ////////////////////////////////////////////////////////////////////////
59
+ // Tame member functions returning void
60
+ ////////////////////////////////////////////////////////////////////////
61
+
62
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
63
+ auto tame_mem_fn(Obj self, Obj arg0)
64
+ -> std::enable_if_t<returns_void<Wild>::value
65
+ && arg_count<Wild>::value == 0,
66
+ TSFINAE> {
67
+ // arg0 is checked in obj_cpp_ptr
68
+ using class_type = typename CppFunction<Wild>::class_type;
69
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
70
+
71
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N), ptr));
72
+ return 0L;
73
+ }
74
+
75
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
76
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1)
77
+ -> std::enable_if_t<returns_void<Wild>::value
78
+ && arg_count<Wild>::value == 1,
79
+ TSFINAE> {
80
+ // arg0 is checked in obj_cpp_ptr
81
+
82
+ using class_type = typename CppFunction<Wild>::class_type;
83
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
84
+
85
+ using to_cpp_1_type =
86
+ typename CppFunction<Wild>::params_type::template get<0>;
87
+ GAPBIND14_TRY(CppFunction<Wild>()(
88
+ wild_mem_fn<Wild>(N), ptr, to_cpp<to_cpp_1_type>()(arg1)));
89
+ return 0L;
90
+ }
91
+
92
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
93
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1, Obj arg2)
94
+ -> std::enable_if_t<returns_void<Wild>::value
95
+ && arg_count<Wild>::value == 2,
96
+ TSFINAE> {
97
+ // arg0 is checked in obj_cpp_ptr
98
+
99
+ using class_type = typename CppFunction<Wild>::class_type;
100
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
101
+
102
+ using to_cpp_1_type =
103
+ typename CppFunction<Wild>::params_type::template get<0>;
104
+ using to_cpp_2_type =
105
+ typename CppFunction<Wild>::params_type::template get<1>;
106
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N),
107
+ ptr,
108
+ to_cpp<to_cpp_1_type>()(arg1),
109
+ to_cpp<to_cpp_2_type>()(arg2)));
110
+ return 0L;
111
+ }
112
+
113
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
114
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3)
115
+ -> std::enable_if_t<returns_void<Wild>::value
116
+ && arg_count<Wild>::value == 3,
117
+ TSFINAE> {
118
+ // arg0 is checked in obj_cpp_ptr
119
+
120
+ using class_type = typename CppFunction<Wild>::class_type;
121
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
122
+
123
+ using to_cpp_1_type =
124
+ typename CppFunction<Wild>::params_type::template get<0>;
125
+ using to_cpp_2_type =
126
+ typename CppFunction<Wild>::params_type::template get<1>;
127
+ using to_cpp_3_type =
128
+ typename CppFunction<Wild>::params_type::template get<2>;
129
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N),
130
+ ptr,
131
+ to_cpp<to_cpp_1_type>()(arg1),
132
+ to_cpp<to_cpp_2_type>()(arg2),
133
+ to_cpp<to_cpp_3_type>()(arg3)));
134
+ return 0L;
135
+ }
136
+
137
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
138
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3, Obj arg4)
139
+ -> std::enable_if_t<returns_void<Wild>::value
140
+ && arg_count<Wild>::value == 4,
141
+ TSFINAE> {
142
+ // arg0 is checked in obj_cpp_ptr
143
+
144
+ using class_type = typename CppFunction<Wild>::class_type;
145
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
146
+
147
+ using to_cpp_1_type =
148
+ typename CppFunction<Wild>::params_type::template get<0>;
149
+ using to_cpp_2_type =
150
+ typename CppFunction<Wild>::params_type::template get<1>;
151
+ using to_cpp_3_type =
152
+ typename CppFunction<Wild>::params_type::template get<2>;
153
+ using to_cpp_4_type =
154
+ typename CppFunction<Wild>::params_type::template get<3>;
155
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N),
156
+ ptr,
157
+ to_cpp<to_cpp_1_type>()(arg1),
158
+ to_cpp<to_cpp_2_type>()(arg2),
159
+ to_cpp<to_cpp_3_type>()(arg3),
160
+ to_cpp<to_cpp_4_type>()(arg4)));
161
+ return 0L;
162
+ }
163
+
164
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
165
+ auto tame_mem_fn(Obj self,
166
+ Obj arg0,
167
+ Obj arg1,
168
+ Obj arg2,
169
+ Obj arg3,
170
+ Obj arg4,
171
+ Obj arg5)
172
+ -> std::enable_if_t<returns_void<Wild>::value
173
+ && arg_count<Wild>::value == 5,
174
+ TSFINAE> {
175
+ // arg0 is checked in obj_cpp_ptr
176
+
177
+ using class_type = typename CppFunction<Wild>::class_type;
178
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
179
+
180
+ using to_cpp_1_type =
181
+ typename CppFunction<Wild>::params_type::template get<0>;
182
+ using to_cpp_2_type =
183
+ typename CppFunction<Wild>::params_type::template get<1>;
184
+ using to_cpp_3_type =
185
+ typename CppFunction<Wild>::params_type::template get<2>;
186
+ using to_cpp_4_type =
187
+ typename CppFunction<Wild>::params_type::template get<3>;
188
+ using to_cpp_5_type =
189
+ typename CppFunction<Wild>::params_type::template get<4>;
190
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N),
191
+ ptr,
192
+ to_cpp<to_cpp_1_type>()(arg1),
193
+ to_cpp<to_cpp_2_type>()(arg2),
194
+ to_cpp<to_cpp_3_type>()(arg3),
195
+ to_cpp<to_cpp_4_type>()(arg4),
196
+ to_cpp<to_cpp_5_type>()(arg5)));
197
+ return 0L;
198
+ }
199
+
200
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
201
+ auto tame_mem_fn(Obj self,
202
+ Obj arg0,
203
+ Obj arg1,
204
+ Obj arg2,
205
+ Obj arg3,
206
+ Obj arg4,
207
+ Obj arg5,
208
+ Obj arg6)
209
+ -> std::enable_if_t<returns_void<Wild>::value
210
+ && arg_count<Wild>::value == 6,
211
+ TSFINAE> {
212
+ // arg0 is checked in obj_cpp_ptr
213
+
214
+ using class_type = typename CppFunction<Wild>::class_type;
215
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
216
+
217
+ using to_cpp_1_type =
218
+ typename CppFunction<Wild>::params_type::template get<0>;
219
+ using to_cpp_2_type =
220
+ typename CppFunction<Wild>::params_type::template get<1>;
221
+ using to_cpp_3_type =
222
+ typename CppFunction<Wild>::params_type::template get<2>;
223
+ using to_cpp_4_type =
224
+ typename CppFunction<Wild>::params_type::template get<3>;
225
+ using to_cpp_5_type =
226
+ typename CppFunction<Wild>::params_type::template get<4>;
227
+ using to_cpp_6_type =
228
+ typename CppFunction<Wild>::params_type::template get<5>;
229
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N),
230
+ ptr,
231
+ to_cpp<to_cpp_1_type>()(arg1),
232
+ to_cpp<to_cpp_2_type>()(arg2),
233
+ to_cpp<to_cpp_3_type>()(arg3),
234
+ to_cpp<to_cpp_4_type>()(arg4),
235
+ to_cpp<to_cpp_5_type>()(arg5),
236
+ to_cpp<to_cpp_6_type>()(arg6)));
237
+ return 0L;
238
+ }
239
+
240
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
241
+ auto tame_mem_fn(Obj self,
242
+ Obj arg0,
243
+ Obj arg1,
244
+ Obj arg2,
245
+ Obj arg3,
246
+ Obj arg4,
247
+ Obj arg5,
248
+ Obj arg6,
249
+ Obj arg7)
250
+ -> std::enable_if_t<returns_void<Wild>::value
251
+ && arg_count<Wild>::value == 7,
252
+ TSFINAE> {
253
+ // arg0 is checked in obj_cpp_ptr
254
+
255
+ using class_type = typename CppFunction<Wild>::class_type;
256
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
257
+
258
+ using to_cpp_1_type =
259
+ typename CppFunction<Wild>::params_type::template get<0>;
260
+ using to_cpp_2_type =
261
+ typename CppFunction<Wild>::params_type::template get<1>;
262
+ using to_cpp_3_type =
263
+ typename CppFunction<Wild>::params_type::template get<2>;
264
+ using to_cpp_4_type =
265
+ typename CppFunction<Wild>::params_type::template get<3>;
266
+ using to_cpp_5_type =
267
+ typename CppFunction<Wild>::params_type::template get<4>;
268
+ using to_cpp_6_type =
269
+ typename CppFunction<Wild>::params_type::template get<5>;
270
+ using to_cpp_7_type =
271
+ typename CppFunction<Wild>::params_type::template get<6>;
272
+ GAPBIND14_TRY(CppFunction<Wild>()(wild_mem_fn<Wild>(N),
273
+ ptr,
274
+ to_cpp<to_cpp_1_type>()(arg1),
275
+ to_cpp<to_cpp_2_type>()(arg2),
276
+ to_cpp<to_cpp_3_type>()(arg3),
277
+ to_cpp<to_cpp_4_type>()(arg4),
278
+ to_cpp<to_cpp_5_type>()(arg5),
279
+ to_cpp<to_cpp_6_type>()(arg6),
280
+ to_cpp<to_cpp_7_type>()(arg7)));
281
+ return 0L;
282
+ }
283
+
284
+ ////////////////////////////////////////////////////////////////////////
285
+ // Tame member functions NOT returning void
286
+ ////////////////////////////////////////////////////////////////////////
287
+
288
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
289
+ auto tame_mem_fn(Obj self, Obj arg0)
290
+ -> std::enable_if_t<!returns_void<Wild>::value
291
+ && arg_count<Wild>::value == 0,
292
+ TSFINAE> {
293
+ // arg0 is checked in obj_cpp_ptr
294
+
295
+ using class_type = typename CppFunction<Wild>::class_type;
296
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
297
+
298
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
299
+ GAPBIND14_TRY(
300
+ return to_gap_type()(CppFunction<Wild>()(wild_mem_fn<Wild>(N), ptr)));
301
+ }
302
+
303
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
304
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1)
305
+ -> std::enable_if_t<!returns_void<Wild>::value
306
+ && arg_count<Wild>::value == 1,
307
+ TSFINAE> {
308
+ // arg0 is checked in obj_cpp_ptr
309
+
310
+ using class_type = typename CppFunction<Wild>::class_type;
311
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
312
+
313
+ using to_cpp_1_type =
314
+ typename CppFunction<Wild>::params_type::template get<0>;
315
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
316
+ GAPBIND14_TRY(return to_gap_type()(CppFunction<Wild>()(
317
+ wild_mem_fn<Wild>(N), ptr, to_cpp<to_cpp_1_type>()(arg1))));
318
+ }
319
+
320
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
321
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1, Obj arg2)
322
+ -> std::enable_if_t<!returns_void<Wild>::value
323
+ && arg_count<Wild>::value == 2,
324
+ TSFINAE> {
325
+ // arg0 is checked in obj_cpp_ptr
326
+
327
+ using class_type = typename CppFunction<Wild>::class_type;
328
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
329
+
330
+ using to_cpp_1_type =
331
+ typename CppFunction<Wild>::params_type::template get<0>;
332
+ using to_cpp_2_type =
333
+ typename CppFunction<Wild>::params_type::template get<1>;
334
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
335
+ GAPBIND14_TRY(return to_gap_type()(
336
+ CppFunction<Wild>()(wild_mem_fn<Wild>(N),
337
+ ptr,
338
+ to_cpp<to_cpp_1_type>()(arg1),
339
+ to_cpp<to_cpp_2_type>()(arg2))));
340
+ }
341
+
342
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
343
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3)
344
+ -> std::enable_if_t<!returns_void<Wild>::value
345
+ && arg_count<Wild>::value == 3,
346
+ TSFINAE> {
347
+ // arg0 is checked in obj_cpp_ptr
348
+
349
+ using class_type = typename CppFunction<Wild>::class_type;
350
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
351
+
352
+ using to_cpp_1_type =
353
+ typename CppFunction<Wild>::params_type::template get<0>;
354
+ using to_cpp_2_type =
355
+ typename CppFunction<Wild>::params_type::template get<1>;
356
+ using to_cpp_3_type =
357
+ typename CppFunction<Wild>::params_type::template get<2>;
358
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
359
+ GAPBIND14_TRY(return to_gap_type()(
360
+ CppFunction<Wild>()(wild_mem_fn<Wild>(N),
361
+ ptr,
362
+ to_cpp<to_cpp_1_type>()(arg1),
363
+ to_cpp<to_cpp_2_type>()(arg2),
364
+ to_cpp<to_cpp_3_type>()(arg3))));
365
+ }
366
+
367
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
368
+ auto tame_mem_fn(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3, Obj arg4)
369
+ -> std::enable_if_t<!returns_void<Wild>::value
370
+ && arg_count<Wild>::value == 4,
371
+ TSFINAE> {
372
+ // arg0 is checked in obj_cpp_ptr
373
+
374
+ using class_type = typename CppFunction<Wild>::class_type;
375
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
376
+
377
+ using to_cpp_1_type =
378
+ typename CppFunction<Wild>::params_type::template get<0>;
379
+ using to_cpp_2_type =
380
+ typename CppFunction<Wild>::params_type::template get<1>;
381
+ using to_cpp_3_type =
382
+ typename CppFunction<Wild>::params_type::template get<2>;
383
+ using to_cpp_4_type =
384
+ typename CppFunction<Wild>::params_type::template get<3>;
385
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
386
+ GAPBIND14_TRY(return to_gap_type()(
387
+ CppFunction<Wild>()(wild_mem_fn<Wild>(N),
388
+ ptr,
389
+ to_cpp<to_cpp_1_type>()(arg1),
390
+ to_cpp<to_cpp_2_type>()(arg2),
391
+ to_cpp<to_cpp_3_type>()(arg3),
392
+ to_cpp<to_cpp_4_type>()(arg4))));
393
+ }
394
+
395
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
396
+ auto tame_mem_fn(Obj self,
397
+ Obj arg0,
398
+ Obj arg1,
399
+ Obj arg2,
400
+ Obj arg3,
401
+ Obj arg4,
402
+ Obj arg5)
403
+ -> std::enable_if_t<!returns_void<Wild>::value
404
+ && arg_count<Wild>::value == 5,
405
+ TSFINAE> {
406
+ // arg0 is checked in obj_cpp_ptr
407
+
408
+ using class_type = typename CppFunction<Wild>::class_type;
409
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
410
+
411
+ using to_cpp_1_type =
412
+ typename CppFunction<Wild>::params_type::template get<0>;
413
+ using to_cpp_2_type =
414
+ typename CppFunction<Wild>::params_type::template get<1>;
415
+ using to_cpp_3_type =
416
+ typename CppFunction<Wild>::params_type::template get<2>;
417
+ using to_cpp_4_type =
418
+ typename CppFunction<Wild>::params_type::template get<3>;
419
+ using to_cpp_5_type =
420
+ typename CppFunction<Wild>::params_type::template get<4>;
421
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
422
+ GAPBIND14_TRY(return to_gap_type()(
423
+ CppFunction<Wild>()(wild_mem_fn<Wild>(N),
424
+ ptr,
425
+ to_cpp<to_cpp_1_type>()(arg1),
426
+ to_cpp<to_cpp_2_type>()(arg2),
427
+ to_cpp<to_cpp_3_type>()(arg3),
428
+ to_cpp<to_cpp_4_type>()(arg4),
429
+ to_cpp<to_cpp_5_type>()(arg5))));
430
+ }
431
+
432
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
433
+ auto tame_mem_fn(Obj self,
434
+ Obj arg0,
435
+ Obj arg1,
436
+ Obj arg2,
437
+ Obj arg3,
438
+ Obj arg4,
439
+ Obj arg5,
440
+ Obj arg6)
441
+ -> std::enable_if_t<!returns_void<Wild>::value
442
+ && arg_count<Wild>::value == 6,
443
+ TSFINAE> {
444
+ // arg0 is checked in obj_cpp_ptr
445
+
446
+ using class_type = typename CppFunction<Wild>::class_type;
447
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
448
+
449
+ using to_cpp_1_type =
450
+ typename CppFunction<Wild>::params_type::template get<0>;
451
+ using to_cpp_2_type =
452
+ typename CppFunction<Wild>::params_type::template get<1>;
453
+ using to_cpp_3_type =
454
+ typename CppFunction<Wild>::params_type::template get<2>;
455
+ using to_cpp_4_type =
456
+ typename CppFunction<Wild>::params_type::template get<3>;
457
+ using to_cpp_5_type =
458
+ typename CppFunction<Wild>::params_type::template get<4>;
459
+ using to_cpp_6_type =
460
+ typename CppFunction<Wild>::params_type::template get<5>;
461
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
462
+ GAPBIND14_TRY(return to_gap_type()(
463
+ CppFunction<Wild>()(wild_mem_fn<Wild>(N),
464
+ ptr,
465
+ to_cpp<to_cpp_1_type>()(arg1),
466
+ to_cpp<to_cpp_2_type>()(arg2),
467
+ to_cpp<to_cpp_3_type>()(arg3),
468
+ to_cpp<to_cpp_4_type>()(arg4),
469
+ to_cpp<to_cpp_5_type>()(arg5),
470
+ to_cpp<to_cpp_6_type>()(arg6))));
471
+ }
472
+
473
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
474
+ auto tame_mem_fn(Obj self,
475
+ Obj arg0,
476
+ Obj arg1,
477
+ Obj arg2,
478
+ Obj arg3,
479
+ Obj arg4,
480
+ Obj arg5,
481
+ Obj arg6,
482
+ Obj arg7)
483
+ -> std::enable_if_t<!returns_void<Wild>::value
484
+ && arg_count<Wild>::value == 7,
485
+ TSFINAE> {
486
+ // arg0 is checked in obj_cpp_ptr
487
+
488
+ using class_type = typename CppFunction<Wild>::class_type;
489
+ class_type *ptr = detail::obj_cpp_ptr<class_type>(arg0);
490
+
491
+ using to_cpp_1_type =
492
+ typename CppFunction<Wild>::params_type::template get<0>;
493
+ using to_cpp_2_type =
494
+ typename CppFunction<Wild>::params_type::template get<1>;
495
+ using to_cpp_3_type =
496
+ typename CppFunction<Wild>::params_type::template get<2>;
497
+ using to_cpp_4_type =
498
+ typename CppFunction<Wild>::params_type::template get<3>;
499
+ using to_cpp_5_type =
500
+ typename CppFunction<Wild>::params_type::template get<4>;
501
+ using to_cpp_6_type =
502
+ typename CppFunction<Wild>::params_type::template get<5>;
503
+ using to_cpp_7_type =
504
+ typename CppFunction<Wild>::params_type::template get<6>;
505
+ using to_gap_type = to_gap<typename CppFunction<Wild>::return_type>;
506
+ GAPBIND14_TRY(return to_gap_type()(
507
+ CppFunction<Wild>()(wild_mem_fn<Wild>(N),
508
+ ptr,
509
+ to_cpp<to_cpp_1_type>()(arg1),
510
+ to_cpp<to_cpp_2_type>()(arg2),
511
+ to_cpp<to_cpp_3_type>()(arg3),
512
+ to_cpp<to_cpp_4_type>()(arg4),
513
+ to_cpp<to_cpp_5_type>()(arg5),
514
+ to_cpp<to_cpp_6_type>()(arg6),
515
+ to_cpp<to_cpp_7_type>()(arg7))));
516
+ }
517
+
518
+ ////////////////////////////////////////////////////////////////////////
519
+ // Create a vector of tame member functions
520
+ ////////////////////////////////////////////////////////////////////////
521
+
522
+ template <size_t N, typename Tame, typename Wild>
523
+ struct static_push_back_mem_fns {
524
+ void operator()(std::vector<Tame> &v) {
525
+ v.push_back(&tame_mem_fn<N - 1, Wild>);
526
+ static_push_back_mem_fns<N - 1, Tame, Wild>{}(v);
527
+ }
528
+ };
529
+
530
+ template <typename Tame, typename Wild>
531
+ struct static_push_back_mem_fns<0, Tame, Wild> {
532
+ void operator()(std::vector<Tame> &v) {
533
+ std::reverse(v.begin(), v.end());
534
+ }
535
+ };
536
+
537
+ template <typename Tame, typename Wild>
538
+ auto init_tame_mem_fns() {
539
+ std::vector<Tame> fs;
540
+ static_push_back_mem_fns<MAX_FUNCTIONS, Tame, Wild>{}(fs);
541
+ return fs;
542
+ }
543
+
544
+ template <typename Tame, typename Wild>
545
+ auto &tame_mem_fns() {
546
+ static std::vector<Tame> fs = init_tame_mem_fns<Tame, Wild>();
547
+ return fs;
548
+ }
549
+
550
+ template <typename Tame, typename Wild>
551
+ auto get_tame_mem_fn(size_t i) {
552
+ return tame_mem_fns<Tame, Wild>().at(i);
553
+ }
554
+ } // namespace detail
555
+ } // namespace gapbind14
556
+ #endif // INCLUDE_GAPBIND14_TAME_MEM_FN_HPP_