passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-macosx_14_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 +1157 -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.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,420 @@
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_FREE_FN_HPP_
20
+ #define INCLUDE_GAPBIND14_TAME_FREE_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 etc
28
+ #include "gap_include.hpp" // for Obj
29
+ #include "to_cpp.hpp" // for to_cpp
30
+ #include "to_gap.hpp" // for to_gap
31
+
32
+ namespace gapbind14 {
33
+ namespace detail {
34
+
35
+ ////////////////////////////////////////////////////////////////////////
36
+ // Wilds
37
+ ////////////////////////////////////////////////////////////////////////
38
+
39
+ template <typename Wild>
40
+ auto& all_wilds() {
41
+ static std::vector<Wild> fs;
42
+ return fs;
43
+ }
44
+
45
+ template <typename Wild>
46
+ auto wild(size_t i) {
47
+ return all_wilds<Wild>().at(i);
48
+ }
49
+
50
+ ////////////////////////////////////////////////////////////////////////
51
+ // Tame functions returning void
52
+ ////////////////////////////////////////////////////////////////////////
53
+
54
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
55
+ auto tame(Obj self) -> std::enable_if_t<returns_void<Wild>::value
56
+ && arg_count<Wild>::value == 0,
57
+ TSFINAE> {
58
+ GAPBIND14_TRY(wild<Wild>(N)());
59
+ return 0L;
60
+ }
61
+
62
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
63
+ auto tame(Obj self, Obj arg0)
64
+ -> std::enable_if_t<returns_void<Wild>::value
65
+ && arg_count<Wild>::value == 1,
66
+ TSFINAE> {
67
+ using to_cpp_0_type =
68
+ typename CppFunction<Wild>::params_type::template get<0>;
69
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0)));
70
+ return 0L;
71
+ }
72
+
73
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
74
+ auto tame(Obj self, Obj arg0, Obj arg1)
75
+ -> std::enable_if_t<returns_void<Wild>::value
76
+ && arg_count<Wild>::value == 2,
77
+ TSFINAE> {
78
+ using to_cpp_0_type =
79
+ typename CppFunction<Wild>::params_type::template get<0>;
80
+ using to_cpp_1_type =
81
+ typename CppFunction<Wild>::params_type::template get<1>;
82
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
83
+ to_cpp<to_cpp_1_type>()(arg1)));
84
+ return 0L;
85
+ }
86
+
87
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
88
+ auto tame(Obj self, Obj arg0, Obj arg1, Obj arg2)
89
+ -> std::enable_if_t<returns_void<Wild>::value
90
+ && arg_count<Wild>::value == 3,
91
+ TSFINAE> {
92
+ using to_cpp_0_type =
93
+ typename CppFunction<Wild>::params_type::template get<0>;
94
+ using to_cpp_1_type =
95
+ typename CppFunction<Wild>::params_type::template get<1>;
96
+ using to_cpp_2_type =
97
+ typename CppFunction<Wild>::params_type::template get<2>;
98
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
99
+ to_cpp<to_cpp_1_type>()(arg1),
100
+ to_cpp<to_cpp_2_type>()(arg2)));
101
+ return 0L;
102
+ }
103
+
104
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
105
+ auto tame(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3)
106
+ -> std::enable_if_t<returns_void<Wild>::value
107
+ && arg_count<Wild>::value == 4,
108
+ TSFINAE> {
109
+ using to_cpp_0_type =
110
+ typename CppFunction<Wild>::params_type::template get<0>;
111
+ using to_cpp_1_type =
112
+ typename CppFunction<Wild>::params_type::template get<1>;
113
+ using to_cpp_2_type =
114
+ typename CppFunction<Wild>::params_type::template get<2>;
115
+ using to_cpp_3_type =
116
+ typename CppFunction<Wild>::params_type::template get<3>;
117
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
118
+ to_cpp<to_cpp_1_type>()(arg1),
119
+ to_cpp<to_cpp_2_type>()(arg2),
120
+ to_cpp<to_cpp_3_type>()(arg3)));
121
+ return 0L;
122
+ }
123
+
124
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
125
+ auto tame(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3, Obj arg4)
126
+ -> std::enable_if_t<returns_void<Wild>::value
127
+ && arg_count<Wild>::value == 5,
128
+ TSFINAE> {
129
+ using to_cpp_0_type =
130
+ typename CppFunction<Wild>::params_type::template get<0>;
131
+ using to_cpp_1_type =
132
+ typename CppFunction<Wild>::params_type::template get<1>;
133
+ using to_cpp_2_type =
134
+ typename CppFunction<Wild>::params_type::template get<2>;
135
+ using to_cpp_3_type =
136
+ typename CppFunction<Wild>::params_type::template get<3>;
137
+ using to_cpp_4_type =
138
+ typename CppFunction<Wild>::params_type::template get<4>;
139
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
140
+ to_cpp<to_cpp_1_type>()(arg1),
141
+ to_cpp<to_cpp_2_type>()(arg2),
142
+ to_cpp<to_cpp_3_type>()(arg3),
143
+ to_cpp<to_cpp_4_type>()(arg4)));
144
+ return 0L;
145
+ }
146
+
147
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
148
+ auto
149
+ tame(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3, Obj arg4, Obj arg5)
150
+ -> std::enable_if_t<returns_void<Wild>::value
151
+ && arg_count<Wild>::value == 6,
152
+ TSFINAE> {
153
+ using to_cpp_0_type =
154
+ typename CppFunction<Wild>::params_type::template get<0>;
155
+ using to_cpp_1_type =
156
+ typename CppFunction<Wild>::params_type::template get<1>;
157
+ using to_cpp_2_type =
158
+ typename CppFunction<Wild>::params_type::template get<2>;
159
+ using to_cpp_3_type =
160
+ typename CppFunction<Wild>::params_type::template get<3>;
161
+ using to_cpp_4_type =
162
+ typename CppFunction<Wild>::params_type::template get<4>;
163
+ using to_cpp_5_type =
164
+ typename CppFunction<Wild>::params_type::template get<5>;
165
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
166
+ to_cpp<to_cpp_1_type>()(arg1),
167
+ to_cpp<to_cpp_2_type>()(arg2),
168
+ to_cpp<to_cpp_3_type>()(arg3),
169
+ to_cpp<to_cpp_4_type>()(arg4),
170
+ to_cpp<to_cpp_5_type>()(arg5)));
171
+ return 0L;
172
+ }
173
+
174
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
175
+ auto tame(Obj self,
176
+ Obj arg0,
177
+ Obj arg1,
178
+ Obj arg2,
179
+ Obj arg3,
180
+ Obj arg4,
181
+ Obj arg5,
182
+ Obj arg6) -> std::enable_if_t<returns_void<Wild>::value
183
+ && arg_count<Wild>::value == 7,
184
+ TSFINAE> {
185
+ using to_cpp_0_type =
186
+ typename CppFunction<Wild>::params_type::template get<0>;
187
+ using to_cpp_1_type =
188
+ typename CppFunction<Wild>::params_type::template get<1>;
189
+ using to_cpp_2_type =
190
+ typename CppFunction<Wild>::params_type::template get<2>;
191
+ using to_cpp_3_type =
192
+ typename CppFunction<Wild>::params_type::template get<3>;
193
+ using to_cpp_4_type =
194
+ typename CppFunction<Wild>::params_type::template get<4>;
195
+ using to_cpp_5_type =
196
+ typename CppFunction<Wild>::params_type::template get<5>;
197
+ using to_cpp_6_type =
198
+ typename CppFunction<Wild>::params_type::template get<6>;
199
+ GAPBIND14_TRY(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
200
+ to_cpp<to_cpp_1_type>()(arg1),
201
+ to_cpp<to_cpp_2_type>()(arg2),
202
+ to_cpp<to_cpp_3_type>()(arg3),
203
+ to_cpp<to_cpp_4_type>()(arg4),
204
+ to_cpp<to_cpp_5_type>()(arg5),
205
+ to_cpp<to_cpp_6_type>()(arg6)));
206
+ return 0L;
207
+ }
208
+
209
+ ////////////////////////////////////////////////////////////////////////
210
+ // Tame functions NOT returning void
211
+ ////////////////////////////////////////////////////////////////////////
212
+
213
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
214
+ auto tame(Obj self) -> std::enable_if_t<!returns_void<Wild>::value
215
+ && arg_count<Wild>::value == 0,
216
+ TSFINAE> {
217
+ using to_gap_type
218
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
219
+ GAPBIND14_TRY(return to_gap_type()(wild<Wild>(N)()));
220
+ }
221
+
222
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
223
+ auto tame(Obj self, Obj arg0)
224
+ -> std::enable_if_t<!returns_void<Wild>::value
225
+ && arg_count<Wild>::value == 1,
226
+ TSFINAE> {
227
+ using to_cpp_0_type =
228
+ typename CppFunction<Wild>::params_type::template get<0>;
229
+ using to_gap_type
230
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
231
+ GAPBIND14_TRY(
232
+ return to_gap_type()(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0))));
233
+ }
234
+
235
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
236
+ auto tame(Obj self, Obj arg0, Obj arg1)
237
+ -> std::enable_if_t<!returns_void<Wild>::value
238
+ && arg_count<Wild>::value == 2,
239
+ TSFINAE> {
240
+ using to_cpp_0_type =
241
+ typename CppFunction<Wild>::params_type::template get<0>;
242
+ using to_cpp_1_type =
243
+ typename CppFunction<Wild>::params_type::template get<1>;
244
+ using to_gap_type
245
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
246
+ GAPBIND14_TRY(return to_gap_type()(wild<Wild>(N)(
247
+ to_cpp<to_cpp_0_type>()(arg0), to_cpp<to_cpp_1_type>()(arg1))));
248
+ }
249
+
250
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
251
+ auto tame(Obj self, Obj arg0, Obj arg1, Obj arg2)
252
+ -> std::enable_if_t<!returns_void<Wild>::value
253
+ && arg_count<Wild>::value == 3,
254
+ TSFINAE> {
255
+ using to_cpp_0_type =
256
+ typename CppFunction<Wild>::params_type::template get<0>;
257
+ using to_cpp_1_type =
258
+ typename CppFunction<Wild>::params_type::template get<1>;
259
+ using to_cpp_2_type =
260
+ typename CppFunction<Wild>::params_type::template get<2>;
261
+ using to_gap_type
262
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
263
+ GAPBIND14_TRY(
264
+ return to_gap_type()(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
265
+ to_cpp<to_cpp_1_type>()(arg1),
266
+ to_cpp<to_cpp_2_type>()(arg2))));
267
+ }
268
+
269
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
270
+ auto tame(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3)
271
+ -> std::enable_if_t<!returns_void<Wild>::value
272
+ && arg_count<Wild>::value == 4,
273
+ TSFINAE> {
274
+ using to_cpp_0_type =
275
+ typename CppFunction<Wild>::params_type::template get<0>;
276
+ using to_cpp_1_type =
277
+ typename CppFunction<Wild>::params_type::template get<1>;
278
+ using to_cpp_2_type =
279
+ typename CppFunction<Wild>::params_type::template get<2>;
280
+ using to_cpp_3_type =
281
+ typename CppFunction<Wild>::params_type::template get<3>;
282
+ using to_gap_type
283
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
284
+ GAPBIND14_TRY(
285
+ return to_gap_type()(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
286
+ to_cpp<to_cpp_1_type>()(arg1),
287
+ to_cpp<to_cpp_2_type>()(arg2),
288
+ to_cpp<to_cpp_3_type>()(arg3))));
289
+ }
290
+
291
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
292
+ auto tame(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3, Obj arg4)
293
+ -> std::enable_if_t<!returns_void<Wild>::value
294
+ && arg_count<Wild>::value == 5,
295
+ TSFINAE> {
296
+ using to_cpp_0_type =
297
+ typename CppFunction<Wild>::params_type::template get<0>;
298
+ using to_cpp_1_type =
299
+ typename CppFunction<Wild>::params_type::template get<1>;
300
+ using to_cpp_2_type =
301
+ typename CppFunction<Wild>::params_type::template get<2>;
302
+ using to_cpp_3_type =
303
+ typename CppFunction<Wild>::params_type::template get<3>;
304
+ using to_cpp_4_type =
305
+ typename CppFunction<Wild>::params_type::template get<4>;
306
+ using to_gap_type
307
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
308
+ GAPBIND14_TRY(
309
+ return to_gap_type()(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
310
+ to_cpp<to_cpp_1_type>()(arg1),
311
+ to_cpp<to_cpp_2_type>()(arg2),
312
+ to_cpp<to_cpp_3_type>()(arg3),
313
+ to_cpp<to_cpp_4_type>()(arg4))));
314
+ }
315
+
316
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
317
+ auto
318
+ tame(Obj self, Obj arg0, Obj arg1, Obj arg2, Obj arg3, Obj arg4, Obj arg5)
319
+ -> std::enable_if_t<!returns_void<Wild>::value
320
+ && arg_count<Wild>::value == 6,
321
+ TSFINAE> {
322
+ using to_cpp_0_type =
323
+ typename CppFunction<Wild>::params_type::template get<0>;
324
+ using to_cpp_1_type =
325
+ typename CppFunction<Wild>::params_type::template get<1>;
326
+ using to_cpp_2_type =
327
+ typename CppFunction<Wild>::params_type::template get<2>;
328
+ using to_cpp_3_type =
329
+ typename CppFunction<Wild>::params_type::template get<3>;
330
+ using to_cpp_4_type =
331
+ typename CppFunction<Wild>::params_type::template get<4>;
332
+ using to_cpp_5_type =
333
+ typename CppFunction<Wild>::params_type::template get<5>;
334
+ using to_gap_type
335
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
336
+ GAPBIND14_TRY(
337
+ return to_gap_type()(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
338
+ to_cpp<to_cpp_1_type>()(arg1),
339
+ to_cpp<to_cpp_2_type>()(arg2),
340
+ to_cpp<to_cpp_3_type>()(arg3),
341
+ to_cpp<to_cpp_4_type>()(arg4),
342
+ to_cpp<to_cpp_5_type>()(arg5))));
343
+ }
344
+
345
+ template <size_t N, typename Wild, typename TSFINAE = Obj>
346
+ auto tame(Obj self,
347
+ Obj arg0,
348
+ Obj arg1,
349
+ Obj arg2,
350
+ Obj arg3,
351
+ Obj arg4,
352
+ Obj arg5,
353
+ Obj arg6) -> std::enable_if_t<!returns_void<Wild>::value
354
+ && arg_count<Wild>::value == 7,
355
+ TSFINAE> {
356
+ using to_cpp_0_type =
357
+ typename CppFunction<Wild>::params_type::template get<0>;
358
+ using to_cpp_1_type =
359
+ typename CppFunction<Wild>::params_type::template get<1>;
360
+ using to_cpp_2_type =
361
+ typename CppFunction<Wild>::params_type::template get<2>;
362
+ using to_cpp_3_type =
363
+ typename CppFunction<Wild>::params_type::template get<3>;
364
+ using to_cpp_4_type =
365
+ typename CppFunction<Wild>::params_type::template get<4>;
366
+ using to_cpp_5_type =
367
+ typename CppFunction<Wild>::params_type::template get<5>;
368
+ using to_cpp_6_type =
369
+ typename CppFunction<Wild>::params_type::template get<6>;
370
+ using to_gap_type
371
+ = gapbind14::to_gap<typename CppFunction<Wild>::return_type>;
372
+ GAPBIND14_TRY(
373
+ return to_gap_type()(wild<Wild>(N)(to_cpp<to_cpp_0_type>()(arg0),
374
+ to_cpp<to_cpp_1_type>()(arg1),
375
+ to_cpp<to_cpp_2_type>()(arg2),
376
+ to_cpp<to_cpp_3_type>()(arg3),
377
+ to_cpp<to_cpp_4_type>()(arg4),
378
+ to_cpp<to_cpp_5_type>()(arg5),
379
+ to_cpp<to_cpp_6_type>()(arg6))));
380
+ }
381
+
382
+ ////////////////////////////////////////////////////////////////////////
383
+ // Create a vector of tame functions
384
+ ////////////////////////////////////////////////////////////////////////
385
+
386
+ template <size_t N, typename Tame, typename Wild>
387
+ struct static_push_back {
388
+ void operator()(std::vector<Tame>& v) {
389
+ v.push_back(&tame<N - 1, Wild>);
390
+ static_push_back<N - 1, Tame, Wild>{}(v);
391
+ }
392
+ };
393
+
394
+ template <typename Tame, typename Wild>
395
+ struct static_push_back<0, Tame, Wild> {
396
+ void operator()(std::vector<Tame>& v) {
397
+ std::reverse(v.begin(), v.end());
398
+ }
399
+ };
400
+
401
+ template <typename Tame, typename Wild>
402
+ auto init_tames() {
403
+ std::vector<Tame> fs;
404
+ static_push_back<MAX_FUNCTIONS, Tame, Wild>{}(fs);
405
+ return fs;
406
+ }
407
+
408
+ template <typename Tame, typename Wild>
409
+ auto& tames() {
410
+ static std::vector<Tame> fs = init_tames<Tame, Wild>();
411
+ return fs;
412
+ }
413
+
414
+ template <typename Tame, typename Wild>
415
+ auto get_tame(size_t i) {
416
+ return tames<Tame, Wild>().at(i);
417
+ }
418
+ } // namespace detail
419
+ } // namespace gapbind14
420
+ #endif // INCLUDE_GAPBIND14_TAME_FREE_FN_HPP_