passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-musllinux_1_2_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 (356) 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-musl-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1021 -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.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 +356 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +5 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.libs/libgcc_s-2d945d6c.so.1 +0 -0
  352. passagemath_gap_pkg_semigroups.libs/libsemigroups-81d76771.so.2.0.0 +0 -0
  353. passagemath_gap_pkg_semigroups.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
  354. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  355. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  356. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,1009 @@
1
+ # ===========================================================================
2
+ # https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
3
+ # ===========================================================================
4
+ #
5
+ # SYNOPSIS
6
+ #
7
+ # AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
8
+ #
9
+ # DESCRIPTION
10
+ #
11
+ # Check for baseline language coverage in the compiler for the specified
12
+ # version of the C++ standard. If necessary, add switches to CXX and
13
+ # CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for
14
+ # the respective C++ standard version.
15
+ #
16
+ # The second argument, if specified, indicates whether you insist on an
17
+ # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
18
+ # -std=c++11). If neither is specified, you get whatever works, with
19
+ # preference for no added switch, and then for an extended mode.
20
+ #
21
+ # The third argument, if specified 'mandatory' or if left unspecified,
22
+ # indicates that baseline support for the specified C++ standard is
23
+ # required and that the macro should error out if no mode with that
24
+ # support is found. If specified 'optional', then configuration proceeds
25
+ # regardless, after defining HAVE_CXX${VERSION} if and only if a
26
+ # supporting mode is found.
27
+ #
28
+ # LICENSE
29
+ #
30
+ # Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
31
+ # Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
32
+ # Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
33
+ # Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
34
+ # Copyright (c) 2015 Paul Norman <penorman@mac.com>
35
+ # Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
36
+ # Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
37
+ # Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
38
+ # Copyright (c) 2020 Jason Merrill <jason@redhat.com>
39
+ # Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de>
40
+ #
41
+ # Copying and distribution of this file, with or without modification, are
42
+ # permitted in any medium without royalty provided the copyright notice
43
+ # and this notice are preserved. This file is offered as-is, without any
44
+ # warranty.
45
+
46
+ #serial 15
47
+
48
+ dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
49
+ dnl (serial version number 13).
50
+
51
+ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
52
+ m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
53
+ [$1], [14], [ax_cxx_compile_alternatives="14 1y"],
54
+ [$1], [17], [ax_cxx_compile_alternatives="17 1z"],
55
+ [$1], [20], [ax_cxx_compile_alternatives="20"],
56
+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
57
+ m4_if([$2], [], [],
58
+ [$2], [ext], [],
59
+ [$2], [noext], [],
60
+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
61
+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
62
+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
63
+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
64
+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
65
+ AC_LANG_PUSH([C++])dnl
66
+ ac_success=no
67
+
68
+ m4_if([$2], [], [dnl
69
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
70
+ ax_cv_cxx_compile_cxx$1,
71
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
72
+ [ax_cv_cxx_compile_cxx$1=yes],
73
+ [ax_cv_cxx_compile_cxx$1=no])])
74
+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
75
+ ac_success=yes
76
+ fi])
77
+
78
+ m4_if([$2], [noext], [], [dnl
79
+ if test x$ac_success = xno; then
80
+ for alternative in ${ax_cxx_compile_alternatives}; do
81
+ switch="-std=gnu++${alternative}"
82
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
83
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
84
+ $cachevar,
85
+ [ac_save_CXX="$CXX"
86
+ CXX="$CXX $switch"
87
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
88
+ [eval $cachevar=yes],
89
+ [eval $cachevar=no])
90
+ CXX="$ac_save_CXX"])
91
+ if eval test x\$$cachevar = xyes; then
92
+ CXX="$CXX $switch"
93
+ if test -n "$CXXCPP" ; then
94
+ CXXCPP="$CXXCPP $switch"
95
+ fi
96
+ ac_success=yes
97
+ break
98
+ fi
99
+ done
100
+ fi])
101
+
102
+ m4_if([$2], [ext], [], [dnl
103
+ if test x$ac_success = xno; then
104
+ dnl HP's aCC needs +std=c++11 according to:
105
+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
106
+ dnl Cray's crayCC needs "-h std=c++11"
107
+ for alternative in ${ax_cxx_compile_alternatives}; do
108
+ for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
109
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
110
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
111
+ $cachevar,
112
+ [ac_save_CXX="$CXX"
113
+ CXX="$CXX $switch"
114
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
115
+ [eval $cachevar=yes],
116
+ [eval $cachevar=no])
117
+ CXX="$ac_save_CXX"])
118
+ if eval test x\$$cachevar = xyes; then
119
+ CXX="$CXX $switch"
120
+ if test -n "$CXXCPP" ; then
121
+ CXXCPP="$CXXCPP $switch"
122
+ fi
123
+ ac_success=yes
124
+ break
125
+ fi
126
+ done
127
+ if test x$ac_success = xyes; then
128
+ break
129
+ fi
130
+ done
131
+ fi])
132
+ AC_LANG_POP([C++])
133
+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then
134
+ if test x$ac_success = xno; then
135
+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
136
+ fi
137
+ fi
138
+ if test x$ac_success = xno; then
139
+ HAVE_CXX$1=0
140
+ AC_MSG_NOTICE([No compiler with C++$1 support was found])
141
+ else
142
+ HAVE_CXX$1=1
143
+ AC_DEFINE(HAVE_CXX$1,1,
144
+ [define if the compiler supports basic C++$1 syntax])
145
+ fi
146
+ AC_SUBST(HAVE_CXX$1)
147
+ ])
148
+
149
+
150
+ dnl Test body for checking C++11 support
151
+
152
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
153
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
154
+ )
155
+
156
+ dnl Test body for checking C++14 support
157
+
158
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
159
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
160
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
161
+ )
162
+
163
+ dnl Test body for checking C++17 support
164
+
165
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
166
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
167
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
168
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
169
+ )
170
+
171
+ dnl Test body for checking C++20 support
172
+
173
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20],
174
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
175
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
176
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
177
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_20
178
+ )
179
+
180
+
181
+ dnl Tests for new features in C++11
182
+
183
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
184
+
185
+ // If the compiler admits that it is not ready for C++11, why torture it?
186
+ // Hopefully, this will speed up the test.
187
+
188
+ #ifndef __cplusplus
189
+
190
+ #error "This is not a C++ compiler"
191
+
192
+ // MSVC always sets __cplusplus to 199711L in older versions; newer versions
193
+ // only set it correctly if /Zc:__cplusplus is specified as well as a
194
+ // /std:c++NN switch:
195
+ // https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
196
+ #elif __cplusplus < 201103L && !defined _MSC_VER
197
+
198
+ #error "This is not a C++11 compiler"
199
+
200
+ #else
201
+
202
+ namespace cxx11
203
+ {
204
+
205
+ namespace test_static_assert
206
+ {
207
+
208
+ template <typename T>
209
+ struct check
210
+ {
211
+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
212
+ };
213
+
214
+ }
215
+
216
+ namespace test_final_override
217
+ {
218
+
219
+ struct Base
220
+ {
221
+ virtual ~Base() {}
222
+ virtual void f() {}
223
+ };
224
+
225
+ struct Derived : public Base
226
+ {
227
+ virtual ~Derived() override {}
228
+ virtual void f() override {}
229
+ };
230
+
231
+ }
232
+
233
+ namespace test_double_right_angle_brackets
234
+ {
235
+
236
+ template < typename T >
237
+ struct check {};
238
+
239
+ typedef check<void> single_type;
240
+ typedef check<check<void>> double_type;
241
+ typedef check<check<check<void>>> triple_type;
242
+ typedef check<check<check<check<void>>>> quadruple_type;
243
+
244
+ }
245
+
246
+ namespace test_decltype
247
+ {
248
+
249
+ int
250
+ f()
251
+ {
252
+ int a = 1;
253
+ decltype(a) b = 2;
254
+ return a + b;
255
+ }
256
+
257
+ }
258
+
259
+ namespace test_type_deduction
260
+ {
261
+
262
+ template < typename T1, typename T2 >
263
+ struct is_same
264
+ {
265
+ static const bool value = false;
266
+ };
267
+
268
+ template < typename T >
269
+ struct is_same<T, T>
270
+ {
271
+ static const bool value = true;
272
+ };
273
+
274
+ template < typename T1, typename T2 >
275
+ auto
276
+ add(T1 a1, T2 a2) -> decltype(a1 + a2)
277
+ {
278
+ return a1 + a2;
279
+ }
280
+
281
+ int
282
+ test(const int c, volatile int v)
283
+ {
284
+ static_assert(is_same<int, decltype(0)>::value == true, "");
285
+ static_assert(is_same<int, decltype(c)>::value == false, "");
286
+ static_assert(is_same<int, decltype(v)>::value == false, "");
287
+ auto ac = c;
288
+ auto av = v;
289
+ auto sumi = ac + av + 'x';
290
+ auto sumf = ac + av + 1.0;
291
+ static_assert(is_same<int, decltype(ac)>::value == true, "");
292
+ static_assert(is_same<int, decltype(av)>::value == true, "");
293
+ static_assert(is_same<int, decltype(sumi)>::value == true, "");
294
+ static_assert(is_same<int, decltype(sumf)>::value == false, "");
295
+ static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
296
+ return (sumf > 0.0) ? sumi : add(c, v);
297
+ }
298
+
299
+ }
300
+
301
+ namespace test_noexcept
302
+ {
303
+
304
+ int f() { return 0; }
305
+ int g() noexcept { return 0; }
306
+
307
+ static_assert(noexcept(f()) == false, "");
308
+ static_assert(noexcept(g()) == true, "");
309
+
310
+ }
311
+
312
+ namespace test_constexpr
313
+ {
314
+
315
+ template < typename CharT >
316
+ unsigned long constexpr
317
+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
318
+ {
319
+ return *s ? strlen_c_r(s + 1, acc + 1) : acc;
320
+ }
321
+
322
+ template < typename CharT >
323
+ unsigned long constexpr
324
+ strlen_c(const CharT *const s) noexcept
325
+ {
326
+ return strlen_c_r(s, 0UL);
327
+ }
328
+
329
+ static_assert(strlen_c("") == 0UL, "");
330
+ static_assert(strlen_c("1") == 1UL, "");
331
+ static_assert(strlen_c("example") == 7UL, "");
332
+ static_assert(strlen_c("another\0example") == 7UL, "");
333
+
334
+ }
335
+
336
+ namespace test_rvalue_references
337
+ {
338
+
339
+ template < int N >
340
+ struct answer
341
+ {
342
+ static constexpr int value = N;
343
+ };
344
+
345
+ answer<1> f(int&) { return answer<1>(); }
346
+ answer<2> f(const int&) { return answer<2>(); }
347
+ answer<3> f(int&&) { return answer<3>(); }
348
+
349
+ void
350
+ test()
351
+ {
352
+ int i = 0;
353
+ const int c = 0;
354
+ static_assert(decltype(f(i))::value == 1, "");
355
+ static_assert(decltype(f(c))::value == 2, "");
356
+ static_assert(decltype(f(0))::value == 3, "");
357
+ }
358
+
359
+ }
360
+
361
+ namespace test_uniform_initialization
362
+ {
363
+
364
+ struct test
365
+ {
366
+ static const int zero {};
367
+ static const int one {1};
368
+ };
369
+
370
+ static_assert(test::zero == 0, "");
371
+ static_assert(test::one == 1, "");
372
+
373
+ }
374
+
375
+ namespace test_lambdas
376
+ {
377
+
378
+ void
379
+ test1()
380
+ {
381
+ auto lambda1 = [](){};
382
+ auto lambda2 = lambda1;
383
+ lambda1();
384
+ lambda2();
385
+ }
386
+
387
+ int
388
+ test2()
389
+ {
390
+ auto a = [](int i, int j){ return i + j; }(1, 2);
391
+ auto b = []() -> int { return '0'; }();
392
+ auto c = [=](){ return a + b; }();
393
+ auto d = [&](){ return c; }();
394
+ auto e = [a, &b](int x) mutable {
395
+ const auto identity = [](int y){ return y; };
396
+ for (auto i = 0; i < a; ++i)
397
+ a += b--;
398
+ return x + identity(a + b);
399
+ }(0);
400
+ return a + b + c + d + e;
401
+ }
402
+
403
+ int
404
+ test3()
405
+ {
406
+ const auto nullary = [](){ return 0; };
407
+ const auto unary = [](int x){ return x; };
408
+ using nullary_t = decltype(nullary);
409
+ using unary_t = decltype(unary);
410
+ const auto higher1st = [](nullary_t f){ return f(); };
411
+ const auto higher2nd = [unary](nullary_t f1){
412
+ return [unary, f1](unary_t f2){ return f2(unary(f1())); };
413
+ };
414
+ return higher1st(nullary) + higher2nd(nullary)(unary);
415
+ }
416
+
417
+ }
418
+
419
+ namespace test_variadic_templates
420
+ {
421
+
422
+ template <int...>
423
+ struct sum;
424
+
425
+ template <int N0, int... N1toN>
426
+ struct sum<N0, N1toN...>
427
+ {
428
+ static constexpr auto value = N0 + sum<N1toN...>::value;
429
+ };
430
+
431
+ template <>
432
+ struct sum<>
433
+ {
434
+ static constexpr auto value = 0;
435
+ };
436
+
437
+ static_assert(sum<>::value == 0, "");
438
+ static_assert(sum<1>::value == 1, "");
439
+ static_assert(sum<23>::value == 23, "");
440
+ static_assert(sum<1, 2>::value == 3, "");
441
+ static_assert(sum<5, 5, 11>::value == 21, "");
442
+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
443
+
444
+ }
445
+
446
+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
447
+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
448
+ // because of this.
449
+ namespace test_template_alias_sfinae
450
+ {
451
+
452
+ struct foo {};
453
+
454
+ template<typename T>
455
+ using member = typename T::member_type;
456
+
457
+ template<typename T>
458
+ void func(...) {}
459
+
460
+ template<typename T>
461
+ void func(member<T>*) {}
462
+
463
+ void test();
464
+
465
+ void test() { func<foo>(0); }
466
+
467
+ }
468
+
469
+ } // namespace cxx11
470
+
471
+ #endif // __cplusplus >= 201103L
472
+
473
+ ]])
474
+
475
+
476
+ dnl Tests for new features in C++14
477
+
478
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
479
+
480
+ // If the compiler admits that it is not ready for C++14, why torture it?
481
+ // Hopefully, this will speed up the test.
482
+
483
+ #ifndef __cplusplus
484
+
485
+ #error "This is not a C++ compiler"
486
+
487
+ #elif __cplusplus < 201402L && !defined _MSC_VER
488
+
489
+ #error "This is not a C++14 compiler"
490
+
491
+ #else
492
+
493
+ namespace cxx14
494
+ {
495
+
496
+ namespace test_polymorphic_lambdas
497
+ {
498
+
499
+ int
500
+ test()
501
+ {
502
+ const auto lambda = [](auto&&... args){
503
+ const auto istiny = [](auto x){
504
+ return (sizeof(x) == 1UL) ? 1 : 0;
505
+ };
506
+ const int aretiny[] = { istiny(args)... };
507
+ return aretiny[0];
508
+ };
509
+ return lambda(1, 1L, 1.0f, '1');
510
+ }
511
+
512
+ }
513
+
514
+ namespace test_binary_literals
515
+ {
516
+
517
+ constexpr auto ivii = 0b0000000000101010;
518
+ static_assert(ivii == 42, "wrong value");
519
+
520
+ }
521
+
522
+ namespace test_generalized_constexpr
523
+ {
524
+
525
+ template < typename CharT >
526
+ constexpr unsigned long
527
+ strlen_c(const CharT *const s) noexcept
528
+ {
529
+ auto length = 0UL;
530
+ for (auto p = s; *p; ++p)
531
+ ++length;
532
+ return length;
533
+ }
534
+
535
+ static_assert(strlen_c("") == 0UL, "");
536
+ static_assert(strlen_c("x") == 1UL, "");
537
+ static_assert(strlen_c("test") == 4UL, "");
538
+ static_assert(strlen_c("another\0test") == 7UL, "");
539
+
540
+ }
541
+
542
+ namespace test_lambda_init_capture
543
+ {
544
+
545
+ int
546
+ test()
547
+ {
548
+ auto x = 0;
549
+ const auto lambda1 = [a = x](int b){ return a + b; };
550
+ const auto lambda2 = [a = lambda1(x)](){ return a; };
551
+ return lambda2();
552
+ }
553
+
554
+ }
555
+
556
+ namespace test_digit_separators
557
+ {
558
+
559
+ constexpr auto ten_million = 100'000'000;
560
+ static_assert(ten_million == 100000000, "");
561
+
562
+ }
563
+
564
+ namespace test_return_type_deduction
565
+ {
566
+
567
+ auto f(int& x) { return x; }
568
+ decltype(auto) g(int& x) { return x; }
569
+
570
+ template < typename T1, typename T2 >
571
+ struct is_same
572
+ {
573
+ static constexpr auto value = false;
574
+ };
575
+
576
+ template < typename T >
577
+ struct is_same<T, T>
578
+ {
579
+ static constexpr auto value = true;
580
+ };
581
+
582
+ int
583
+ test()
584
+ {
585
+ auto x = 0;
586
+ static_assert(is_same<int, decltype(f(x))>::value, "");
587
+ static_assert(is_same<int&, decltype(g(x))>::value, "");
588
+ return x;
589
+ }
590
+
591
+ }
592
+
593
+ } // namespace cxx14
594
+
595
+ #endif // __cplusplus >= 201402L
596
+
597
+ ]])
598
+
599
+
600
+ dnl Tests for new features in C++17
601
+
602
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
603
+
604
+ // If the compiler admits that it is not ready for C++17, why torture it?
605
+ // Hopefully, this will speed up the test.
606
+
607
+ #ifndef __cplusplus
608
+
609
+ #error "This is not a C++ compiler"
610
+
611
+ #elif __cplusplus < 201703L && !defined _MSC_VER
612
+
613
+ #error "This is not a C++17 compiler"
614
+
615
+ #else
616
+
617
+ #include <initializer_list>
618
+ #include <utility>
619
+ #include <type_traits>
620
+
621
+ namespace cxx17
622
+ {
623
+
624
+ namespace test_constexpr_lambdas
625
+ {
626
+
627
+ constexpr int foo = [](){return 42;}();
628
+
629
+ }
630
+
631
+ namespace test::nested_namespace::definitions
632
+ {
633
+
634
+ }
635
+
636
+ namespace test_fold_expression
637
+ {
638
+
639
+ template<typename... Args>
640
+ int multiply(Args... args)
641
+ {
642
+ return (args * ... * 1);
643
+ }
644
+
645
+ template<typename... Args>
646
+ bool all(Args... args)
647
+ {
648
+ return (args && ...);
649
+ }
650
+
651
+ }
652
+
653
+ namespace test_extended_static_assert
654
+ {
655
+
656
+ static_assert (true);
657
+
658
+ }
659
+
660
+ namespace test_auto_brace_init_list
661
+ {
662
+
663
+ auto foo = {5};
664
+ auto bar {5};
665
+
666
+ static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value);
667
+ static_assert(std::is_same<int, decltype(bar)>::value);
668
+ }
669
+
670
+ namespace test_typename_in_template_template_parameter
671
+ {
672
+
673
+ template<template<typename> typename X> struct D;
674
+
675
+ }
676
+
677
+ namespace test_fallthrough_nodiscard_maybe_unused_attributes
678
+ {
679
+
680
+ int f1()
681
+ {
682
+ return 42;
683
+ }
684
+
685
+ [[nodiscard]] int f2()
686
+ {
687
+ [[maybe_unused]] auto unused = f1();
688
+
689
+ switch (f1())
690
+ {
691
+ case 17:
692
+ f1();
693
+ [[fallthrough]];
694
+ case 42:
695
+ f1();
696
+ }
697
+ return f1();
698
+ }
699
+
700
+ }
701
+
702
+ namespace test_extended_aggregate_initialization
703
+ {
704
+
705
+ struct base1
706
+ {
707
+ int b1, b2 = 42;
708
+ };
709
+
710
+ struct base2
711
+ {
712
+ base2() {
713
+ b3 = 42;
714
+ }
715
+ int b3;
716
+ };
717
+
718
+ struct derived : base1, base2
719
+ {
720
+ int d;
721
+ };
722
+
723
+ derived d1 {{1, 2}, {}, 4}; // full initialization
724
+ derived d2 {{}, {}, 4}; // value-initialized bases
725
+
726
+ }
727
+
728
+ namespace test_general_range_based_for_loop
729
+ {
730
+
731
+ struct iter
732
+ {
733
+ int i;
734
+
735
+ int& operator* ()
736
+ {
737
+ return i;
738
+ }
739
+
740
+ const int& operator* () const
741
+ {
742
+ return i;
743
+ }
744
+
745
+ iter& operator++()
746
+ {
747
+ ++i;
748
+ return *this;
749
+ }
750
+ };
751
+
752
+ struct sentinel
753
+ {
754
+ int i;
755
+ };
756
+
757
+ bool operator== (const iter& i, const sentinel& s)
758
+ {
759
+ return i.i == s.i;
760
+ }
761
+
762
+ bool operator!= (const iter& i, const sentinel& s)
763
+ {
764
+ return !(i == s);
765
+ }
766
+
767
+ struct range
768
+ {
769
+ iter begin() const
770
+ {
771
+ return {0};
772
+ }
773
+
774
+ sentinel end() const
775
+ {
776
+ return {5};
777
+ }
778
+ };
779
+
780
+ void f()
781
+ {
782
+ range r {};
783
+
784
+ for (auto i : r)
785
+ {
786
+ [[maybe_unused]] auto v = i;
787
+ }
788
+ }
789
+
790
+ }
791
+
792
+ namespace test_lambda_capture_asterisk_this_by_value
793
+ {
794
+
795
+ struct t
796
+ {
797
+ int i;
798
+ int foo()
799
+ {
800
+ return [*this]()
801
+ {
802
+ return i;
803
+ }();
804
+ }
805
+ };
806
+
807
+ }
808
+
809
+ namespace test_enum_class_construction
810
+ {
811
+
812
+ enum class byte : unsigned char
813
+ {};
814
+
815
+ byte foo {42};
816
+
817
+ }
818
+
819
+ namespace test_constexpr_if
820
+ {
821
+
822
+ template <bool cond>
823
+ int f ()
824
+ {
825
+ if constexpr(cond)
826
+ {
827
+ return 13;
828
+ }
829
+ else
830
+ {
831
+ return 42;
832
+ }
833
+ }
834
+
835
+ }
836
+
837
+ namespace test_selection_statement_with_initializer
838
+ {
839
+
840
+ int f()
841
+ {
842
+ return 13;
843
+ }
844
+
845
+ int f2()
846
+ {
847
+ if (auto i = f(); i > 0)
848
+ {
849
+ return 3;
850
+ }
851
+
852
+ switch (auto i = f(); i + 4)
853
+ {
854
+ case 17:
855
+ return 2;
856
+
857
+ default:
858
+ return 1;
859
+ }
860
+ }
861
+
862
+ }
863
+
864
+ namespace test_template_argument_deduction_for_class_templates
865
+ {
866
+
867
+ template <typename T1, typename T2>
868
+ struct pair
869
+ {
870
+ pair (T1 p1, T2 p2)
871
+ : m1 {p1},
872
+ m2 {p2}
873
+ {}
874
+
875
+ T1 m1;
876
+ T2 m2;
877
+ };
878
+
879
+ void f()
880
+ {
881
+ [[maybe_unused]] auto p = pair{13, 42u};
882
+ }
883
+
884
+ }
885
+
886
+ namespace test_non_type_auto_template_parameters
887
+ {
888
+
889
+ template <auto n>
890
+ struct B
891
+ {};
892
+
893
+ B<5> b1;
894
+ B<'a'> b2;
895
+
896
+ }
897
+
898
+ namespace test_structured_bindings
899
+ {
900
+
901
+ int arr[2] = { 1, 2 };
902
+ std::pair<int, int> pr = { 1, 2 };
903
+
904
+ auto f1() -> int(&)[2]
905
+ {
906
+ return arr;
907
+ }
908
+
909
+ auto f2() -> std::pair<int, int>&
910
+ {
911
+ return pr;
912
+ }
913
+
914
+ struct S
915
+ {
916
+ int x1 : 2;
917
+ volatile double y1;
918
+ };
919
+
920
+ S f3()
921
+ {
922
+ return {};
923
+ }
924
+
925
+ auto [ x1, y1 ] = f1();
926
+ auto& [ xr1, yr1 ] = f1();
927
+ auto [ x2, y2 ] = f2();
928
+ auto& [ xr2, yr2 ] = f2();
929
+ const auto [ x3, y3 ] = f3();
930
+
931
+ }
932
+
933
+ namespace test_exception_spec_type_system
934
+ {
935
+
936
+ struct Good {};
937
+ struct Bad {};
938
+
939
+ void g1() noexcept;
940
+ void g2();
941
+
942
+ template<typename T>
943
+ Bad
944
+ f(T*, T*);
945
+
946
+ template<typename T1, typename T2>
947
+ Good
948
+ f(T1*, T2*);
949
+
950
+ static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
951
+
952
+ }
953
+
954
+ namespace test_inline_variables
955
+ {
956
+
957
+ template<class T> void f(T)
958
+ {}
959
+
960
+ template<class T> inline T g(T)
961
+ {
962
+ return T{};
963
+ }
964
+
965
+ template<> inline void f<>(int)
966
+ {}
967
+
968
+ template<> int g<>(int)
969
+ {
970
+ return 5;
971
+ }
972
+
973
+ }
974
+
975
+ } // namespace cxx17
976
+
977
+ #endif // __cplusplus < 201703L && !defined _MSC_VER
978
+
979
+ ]])
980
+
981
+
982
+ dnl Tests for new features in C++20
983
+
984
+ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[
985
+
986
+ #ifndef __cplusplus
987
+
988
+ #error "This is not a C++ compiler"
989
+
990
+ #elif __cplusplus < 202002L && !defined _MSC_VER
991
+
992
+ #error "This is not a C++20 compiler"
993
+
994
+ #else
995
+
996
+ #include <version>
997
+
998
+ namespace cxx20
999
+ {
1000
+
1001
+ // As C++20 supports feature test macros in the standard, there is no
1002
+ // immediate need to actually test for feature availability on the
1003
+ // Autoconf side.
1004
+
1005
+ } // namespace cxx20
1006
+
1007
+ #endif // __cplusplus < 202002L && !defined _MSC_VER
1008
+
1009
+ ]])