passagemath-gap-pkg-semigroups 10.6.30__cp311-cp311-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.
- gap/pkg/semigroups/CHANGELOG.md +1699 -0
- gap/pkg/semigroups/CONTRIBUTING.md +91 -0
- gap/pkg/semigroups/GNUmakefile +110 -0
- gap/pkg/semigroups/GNUmakefile.in +110 -0
- gap/pkg/semigroups/GPL +674 -0
- gap/pkg/semigroups/LICENSE +16 -0
- gap/pkg/semigroups/Makefile +26 -0
- gap/pkg/semigroups/Makefile.gappkg +225 -0
- gap/pkg/semigroups/PackageInfo.g +529 -0
- gap/pkg/semigroups/README.md +102 -0
- gap/pkg/semigroups/VERSIONS +112 -0
- gap/pkg/semigroups/aclocal.m4 +375 -0
- gap/pkg/semigroups/autogen.sh +25 -0
- gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1158 -0
- gap/pkg/semigroups/config.status +1131 -0
- gap/pkg/semigroups/config.sub +1960 -0
- gap/pkg/semigroups/configure +9742 -0
- gap/pkg/semigroups/configure.ac +71 -0
- gap/pkg/semigroups/data/doc/greens.pickle +1 -0
- gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
- gap/pkg/semigroups/data/tst/bipart4 +10 -0
- gap/pkg/semigroups/data/tst/pperm10 +1 -0
- gap/pkg/semigroups/data/tst/tables.gz +0 -0
- gap/pkg/semigroups/data/tst/testdata +1 -0
- gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
- gap/pkg/semigroups/data/tst/trans3 +7 -0
- gap/pkg/semigroups/data/tst/trans3-old +7 -0
- gap/pkg/semigroups/environment.yml +7 -0
- gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
- gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
- gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
- gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
- gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
- gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
- gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
- gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
- gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
- gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
- gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
- gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
- gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
- gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
- gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
- gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
- gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
- gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
- gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
- gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
- gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
- gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
- gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
- gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
- gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
- gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
- gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
- gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
- gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
- gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
- gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
- gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
- gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
- gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
- gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
- gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
- gap/pkg/semigroups/gap/elements/elements.gd +11 -0
- gap/pkg/semigroups/gap/elements/elements.gi +121 -0
- gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
- gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
- gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
- gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
- gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
- gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
- gap/pkg/semigroups/gap/elements/star.gd +21 -0
- gap/pkg/semigroups/gap/elements/star.gi +21 -0
- gap/pkg/semigroups/gap/elements/trans.gd +13 -0
- gap/pkg/semigroups/gap/elements/trans.gi +50 -0
- gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
- gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
- gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
- gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
- gap/pkg/semigroups/gap/fp/word.gd +15 -0
- gap/pkg/semigroups/gap/fp/word.gi +67 -0
- gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
- gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
- gap/pkg/semigroups/gap/greens/acting.gd +81 -0
- gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
- gap/pkg/semigroups/gap/greens/generic.gd +117 -0
- gap/pkg/semigroups/gap/greens/generic.gi +630 -0
- gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
- gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
- gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
- gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
- gap/pkg/semigroups/gap/main/acting.gd +36 -0
- gap/pkg/semigroups/gap/main/acting.gi +779 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
- gap/pkg/semigroups/gap/main/graded.gd +26 -0
- gap/pkg/semigroups/gap/main/graded.gi +355 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
- gap/pkg/semigroups/gap/main/orbits.gd +24 -0
- gap/pkg/semigroups/gap/main/orbits.gi +512 -0
- gap/pkg/semigroups/gap/main/semiact.gd +20 -0
- gap/pkg/semigroups/gap/main/semiact.gi +821 -0
- gap/pkg/semigroups/gap/main/setup.gd +61 -0
- gap/pkg/semigroups/gap/main/setup.gi +1094 -0
- gap/pkg/semigroups/gap/obsolete.gd +9 -0
- gap/pkg/semigroups/gap/obsolete.gi +14 -0
- gap/pkg/semigroups/gap/options.g +55 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
- gap/pkg/semigroups/gap/tools/display.gd +24 -0
- gap/pkg/semigroups/gap/tools/display.gi +749 -0
- gap/pkg/semigroups/gap/tools/io.gd +17 -0
- gap/pkg/semigroups/gap/tools/io.gi +543 -0
- gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
- gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
- gap/pkg/semigroups/gap/tools/utils.gd +19 -0
- gap/pkg/semigroups/gap/tools/utils.gi +756 -0
- gap/pkg/semigroups/gapbind14/.ccls +18 -0
- gap/pkg/semigroups/gapbind14/.clang-format +104 -0
- gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
- gap/pkg/semigroups/gapbind14/LICENSE +674 -0
- gap/pkg/semigroups/gapbind14/README.md +76 -0
- gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
- gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
- gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
- gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
- gap/pkg/semigroups/gapbind14/demo/configure +34 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
- gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
- gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
- gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
- gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
- gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
- gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
- gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
- gap/pkg/semigroups/init.g +150 -0
- gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
- gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
- gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
- gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
- gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
- gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
- gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
- gap/pkg/semigroups/m4/find_gap.m4 +94 -0
- gap/pkg/semigroups/makedoc.g +153 -0
- gap/pkg/semigroups/prerequisites.sh +62 -0
- gap/pkg/semigroups/read.g +105 -0
- gap/pkg/semigroups/release.toml +6 -0
- gap/pkg/semigroups/tst/extreme/README +2 -0
- gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
- gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
- gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
- gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
- gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
- gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
- gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
- gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
- gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
- gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
- gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
- gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
- gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
- gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
- gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
- gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
- gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
- gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
- gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
- gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
- gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
- gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
- gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
- gap/pkg/semigroups/tst/standard/README +2 -0
- gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
- gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
- gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
- gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
- gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
- gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
- gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
- gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
- gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
- gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
- gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
- gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
- gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
- gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
- gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
- gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
- gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
- gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
- gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
- gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
- gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
- gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
- gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
- gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
- gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
- gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
- gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
- gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
- gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
- gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
- gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
- gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
- gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
- gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
- gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
- gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
- gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
- gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
- gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
- gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
- gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
- gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
- gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
- gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
- gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
- gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
- gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
- gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
- gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
- gap/pkg/semigroups/tst/standard/options.tst +54 -0
- gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
- gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
- gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
- gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
- gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
- gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
- gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
- gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
- gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
- gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
- gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
- gap/pkg/semigroups/tst/testinstall.tst +1815 -0
- gap/pkg/semigroups/tst/teststandard.g +22 -0
- gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
- gap/pkg/semigroups/tst/workspaces/load.g +11 -0
- gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
- gap/pkg/semigroups/tst/workspaces/save.g +14 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
- sage/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/gap_pkg_semigroups.cpython-311-darwin.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_
|