diff --git a/DESCRIPTION b/DESCRIPTION index 82d7805344227c6ec2c1ffd89c0124198903484b..a36be376787acfb2a4c3eb7c7b805505e5554124 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: dotCall64 Type: Package Title: Enhanced Foreign Function Interface Supporting Long Vectors -Version: 1.0-1 -Date: 2021-02-10 +Version: 1.1-0 +Date: 2023-10-16 Authors@R: c(person("Kaspar", "Moesinger", role = c("aut"), email = "kaspar.moesinger@gmail.com"), person("Florian", "Gerber", role = c("aut"), @@ -18,12 +18,12 @@ Description: Provides .C64(), which is an enhanced version of .C() makes it a convenient and fast interface to C/C++ and Fortran code. License: GPL (>= 2) URL: https://git.math.uzh.ch/reinhard.furrer/dotCall64 -BugReports: https://git.math.uzh.ch/reinhard.furrer/dotCall64/issues +BugReports: https://git.math.uzh.ch/reinhard.furrer/dotCall64/-/issues Depends: R (>= 3.1) Suggests: microbenchmark, - OpenMPController, + RhpcBLASctl, RColorBrewer, roxygen2, spam, diff --git a/NEWS b/NEWS index d3aa4c1738b7a33612b6e4b194c5f848d6ae8e95..4158a14f3a380d10779928eed573fc66d4525712 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,16 @@ # dotCall64 + +# 1.1-0 +Date: 2022-10-16 +* Addressed issue from `_R_CHECK_FORTRAN_KIND_DETAILS_` +* Switched from "OpenMPController" to "RhpcBLASctl" +* Minor changes in `CITATION` + +# 1.0-2 +Date: 2022-10-03 +* change of `dotCall64helpers.c` + +# 1.0-1 commit 8d65b1cb96c4c7568515aa3f9c2a48cd3bdb8661 (HEAD -> master, origin/master, origin/HEAD) Author: Florian Gerber <flora.fauna.gerber@gmail.com> Date: Wed Feb 10 15:13:40 2021 -0700 diff --git a/benchmark/benchmark_memory.R b/benchmark/benchmark_memory.R index 249ed21b2062a603b8707f0979c10ebc76383f77..a2f3f0d8919080e08a64bcb0d84c2c89d2b53e8a 100644 --- a/benchmark/benchmark_memory.R +++ b/benchmark/benchmark_memory.R @@ -2,7 +2,7 @@ rm(list = ls(all = TRUE)) require("dotCall64") require("microbenchmark") require("xtable"); options(xtable.NA.string = "--") -require("OpenMPController"); omp_set_num_threads(1) +require("RhpcBLASctl"); omp_set_num_threads(1) mem <- function(...){ ## measure peak memory usage with gctorture() diff --git a/benchmark/benchmark_n1.R b/benchmark/benchmark_n1.R index 1459b5762adab63736d5a5bd4ea469357e542ba0..13ae3083cae341b1a3b0a3e0afedf2784ea72d28 100644 --- a/benchmark/benchmark_n1.R +++ b/benchmark/benchmark_n1.R @@ -1,7 +1,7 @@ rm(list = ls(all = TRUE)) require("dotCall64") require("microbenchmark") -require("OpenMPController"); omp_set_num_threads(1) +require("RhpcBLASctl"); omp_set_num_threads(1) mb <- microbenchmark ## functions to print latex tables with brackets diff --git a/benchmark/benchmark_n2_28.R b/benchmark/benchmark_n2_28.R index 7f18521b356393da517fcff3fc07a339bcb35436..f1316616d59e49162ba2640149071f3a1cd35045 100644 --- a/benchmark/benchmark_n2_28.R +++ b/benchmark/benchmark_n2_28.R @@ -1,7 +1,7 @@ rm(list = ls(all = TRUE)) require("dotCall64") require("microbenchmark") -require("OpenMPController"); omp_set_num_threads(1) +require("RhpcBLASctl"); omp_set_num_threads(1) mb <- microbenchmark ## functions to print latex tables with brackets diff --git a/benchmark/benchmark_n2_28_w.R b/benchmark/benchmark_n2_28_w.R index cc9fdf57f15a3c802938cb4a6b6517bb3d1a560e..da6d943e5d3f4e3f9574f509c7db7737d97f30aa 100644 --- a/benchmark/benchmark_n2_28_w.R +++ b/benchmark/benchmark_n2_28_w.R @@ -1,7 +1,7 @@ rm(list = ls(all = TRUE)) require("dotCall64") require("microbenchmark"); mb <- microbenchmark -require("OpenMPController"); omp_set_num_threads(1) +require("RhpcBLASctl"); omp_set_num_threads(1) ## functions to print latex tables with brackets diff --git a/benchmark/benchmark_openMP.R b/benchmark/benchmark_openMP.R index 85b5c0d2692612fa7e599dab59b2dbb53c451207..7cc66ab71bdb61dd0a2a516644592495e175344c 100644 --- a/benchmark/benchmark_openMP.R +++ b/benchmark/benchmark_openMP.R @@ -1,7 +1,7 @@ rm(list = ls(all = TRUE)) require("dotCall64") require("microbenchmark") -require("OpenMPController"); omp_set_num_threads(1) +require("RhpcBLASctl"); omp_set_num_threads(1) mb <- microbenchmark times <- 5 diff --git a/inst/CITATION b/inst/CITATION index 650ae042f67a348aa53245cc08e764295f0620e4..ba57a400ff1deee5ef1d852598506e73d544d88c 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,11 +1,11 @@ citHeader("To cite dotCall64 in publications use:") -citEntry(entry = "Article", +bibentry(bibtype = "Article", title = "{dotCall64}: An {R} package providing an efficient interface to compiled {C}, {C++}, and {Fortran} code supporting long vectors", - author = personList(as.person("Florian Gerber"), - as.person("Kaspar Moesinger"), - as.person("Reinhard Furrer")), + author = c(person("Florian Gerber"), + person("Kaspar Moesinger"), + person("Reinhard Furrer")), journal = "SoftwareX", year = "2018", volume = "7", @@ -19,11 +19,11 @@ citEntry(entry = "Article", ) -citEntry(entry = "Article", +bibentry(bibtype = "Article", title = "Extending {R} packages to support 64-bit compiled code: An illustration with spam64 and {GIMMS} {NDVI3g} data", - author = personList(as.person("Florian Gerber"), - as.person("Kaspar Moesinger"), - as.person("Reinhard Furrer")), + author = c(person("Florian Gerber"), + person("Kaspar Moesinger"), + person("Reinhard Furrer")), journal = "Computer & Geoscience", year = "2017", volume = "104", diff --git a/src/dotCall64helpers.c b/src/dotCall64helpers.c index 8b329c506ba3d57042ad614ea53e6febc6546295..0ea6c983ae2fef244de94ce3cdc7b88d68652115 100644 --- a/src/dotCall64helpers.c +++ b/src/dotCall64helpers.c @@ -17,603 +17,879 @@ /* -The following lines are copied from R source: src/main/dotcode.c:1685-2277 +The following lines are copied from R source: + src/main/dotcode.c:585-858 + src/main/dotcode.c:2063-2654 */ +typedef SEXP (*FUNS1)(SEXP); +typedef SEXP (*FUNS2)(SEXP, SEXP); +typedef SEXP (*FUNS3)(SEXP, SEXP, SEXP); +typedef SEXP (*FUNS4)(SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS5)(SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS6)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS7)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS8)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS9)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS10)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS11)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); +typedef SEXP (*FUNS12)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP); +typedef SEXP (*FUNS13)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS14)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS15)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS16)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS17)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS18)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS19)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS20)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); +typedef SEXP (*FUNS21)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP); +typedef SEXP (*FUNS22)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS23)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS24)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS25)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS26)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS27)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS28)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS29)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); +typedef SEXP (*FUNS30)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP); +typedef SEXP (*FUNS31)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS32)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS33)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS34)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS35)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS36)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS37)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS38)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); +typedef SEXP (*FUNS39)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP); +typedef SEXP (*FUNS40)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS41)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS42)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS43)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS44)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS45)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS46)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS47)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); +typedef SEXP (*FUNS48)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP); +typedef SEXP (*FUNS49)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS50)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS51)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS52)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS53)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS54)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS55)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS56)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); +typedef SEXP (*FUNS57)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP); +typedef SEXP (*FUNS58)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS59)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS60)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS61)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS62)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +typedef SEXP (*FUNS63)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS64)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP); +typedef SEXP (*FUNS65)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, + SEXP, SEXP); + + void dotCall64_callFunction(DL_FUNC fun, int nargs, void **cargs) { - switch (nargs) { - case 0: - /* Silicon graphics C chokes here */ - /* if there is no argument to fun. */ - fun(0); - break; - case 1: - fun(cargs[0]); - break; - case 2: - fun(cargs[0], cargs[1]); - break; - case 3: - fun(cargs[0], cargs[1], cargs[2]); - break; - case 4: - fun(cargs[0], cargs[1], cargs[2], cargs[3]); - break; - case 5: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4]); - break; - case 6: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5]); - break; - case 7: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6]); - break; - case 8: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7]); - break; - case 9: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8]); - break; - case 10: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9]); - break; - case 11: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10]); - break; - case 12: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11]); - break; - case 13: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12]); - break; - case 14: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13]); - break; - case 15: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14]); - break; - case 16: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15]); - break; - case 17: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16]); - break; - case 18: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17]); - break; - case 19: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18]); - break; - case 20: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19]); - break; - case 21: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20]); - break; - case 22: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21]); - break; - case 23: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22]); - break; - case 24: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23]); - break; - case 25: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24]); - break; - case 26: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25]); - break; - case 27: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26]); - break; - case 28: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27]); - break; - case 29: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28]); - break; - case 30: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29]); - break; - case 31: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30]); - break; - case 32: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31]); - break; - case 33: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32]); - break; - case 34: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33]); - break; - case 35: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34]); - break; - case 36: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35]); - break; - case 37: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36]); - break; - case 38: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37]); - break; - case 39: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38]); - break; - case 40: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39]); - break; - case 41: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40]); - break; - case 42: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41]); - break; - case 43: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42]); - break; - case 44: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43]); - break; - case 45: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44]); - break; - case 46: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45]); - break; - case 47: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46]); - break; - case 48: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47]); - break; - case 49: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48]); - break; - case 50: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49]); - break; - case 51: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50]); - break; - case 52: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51]); - break; - case 53: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52]); - break; - case 54: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53]); - break; - case 55: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54]); - break; - case 56: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55]); - break; - case 57: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56]); - break; - case 58: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57]); - break; - case 59: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58]); - break; - case 60: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58], cargs[59]); - break; - case 61: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], - cargs[60]); - break; - case 62: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], - cargs[60], cargs[61]); - break; - case 63: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], - cargs[60], cargs[61], cargs[62]); - break; - case 64: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], - cargs[60], cargs[61], cargs[62], cargs[63]); - break; - case 65: - fun(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], - cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], - cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], - cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], - cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], - cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], - cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], - cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], - cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], - cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], - cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], - cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], - cargs[60], cargs[61], cargs[62], cargs[63], cargs[64]); - break; - default: - error(_("too many arguments, sorry")); - } + switch (nargs) { + case 0: + fun(); + break; + case 1: + ((FUNS1)fun)(cargs[0]); + break; + case 2: + ((FUNS2)fun)(cargs[0], cargs[1]); + break; + case 3: + ((FUNS3)fun)(cargs[0], cargs[1], cargs[2]); + break; + case 4: + ((FUNS4)fun)(cargs[0], cargs[1], cargs[2], cargs[3]); + break; + case 5: + ((FUNS5)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4]); + break; + case 6: + ((FUNS6)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5]); + break; + case 7: + ((FUNS7)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6]); + break; + case 8: + ((FUNS8)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7]); + break; + case 9: + ((FUNS9)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8]); + break; + case 10: + ((FUNS10)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9]); + break; + case 11: + ((FUNS11)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10]); + break; + case 12: + ((FUNS12)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11]); + break; + case 13: + ((FUNS13)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12]); + break; + case 14: + ((FUNS14)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13]); + break; + case 15: + ((FUNS15)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14]); + break; + case 16: + ((FUNS16)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15]); + break; + case 17: + ((FUNS17)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16]); + break; + case 18: + ((FUNS18)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17]); + break; + case 19: + ((FUNS19)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18]); + break; + case 20: + ((FUNS20)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19]); + break; + case 21: + ((FUNS21)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20]); + break; + case 22: + ((FUNS22)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21]); + break; + case 23: + ((FUNS23)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22]); + break; + case 24: + ((FUNS24)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23]); + break; + case 25: + ((FUNS25)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24]); + break; + case 26: + ((FUNS26)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25]); + break; + case 27: + ((FUNS27)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26]); + break; + case 28: + ((FUNS28)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27]); + break; + case 29: + ((FUNS29)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28]); + break; + case 30: + ((FUNS30)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29]); + break; + case 31: + ((FUNS31)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30]); + break; + case 32: + ((FUNS32)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31]); + break; + case 33: + ((FUNS33)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32]); + break; + case 34: + ((FUNS34)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33]); + break; + case 35: + ((FUNS35)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34]); + break; + case 36: + ((FUNS36)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35]); + break; + case 37: + ((FUNS37)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36]); + break; + case 38: + ((FUNS38)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37]); + break; + case 39: + ((FUNS39)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38]); + break; + case 40: + ((FUNS40)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39]); + break; + case 41: + ((FUNS41)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40]); + break; + case 42: + ((FUNS42)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41]); + break; + case 43: + ((FUNS43)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42]); + break; + case 44: + ((FUNS44)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43]); + break; + case 45: + ((FUNS45)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44]); + break; + case 46: + ((FUNS46)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45]); + break; + case 47: + ((FUNS47)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46]); + break; + case 48: + ((FUNS48)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47]); + break; + case 49: + ((FUNS49)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48]); + break; + case 50: + ((FUNS50)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49]); + break; + case 51: + ((FUNS51)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50]); + break; + case 52: + ((FUNS52)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51]); + break; + case 53: + ((FUNS53)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52]); + break; + case 54: + ((FUNS54)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53]); + break; + case 55: + ((FUNS55)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54]); + break; + case 56: + ((FUNS56)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55]); + break; + case 57: + ((FUNS57)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56]); + break; + case 58: + ((FUNS58)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57]); + break; + case 59: + ((FUNS59)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58]); + break; + case 60: + ((FUNS60)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58], cargs[59]); + break; + case 61: + ((FUNS61)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], + cargs[60]); + break; + case 62: + ((FUNS62)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], + cargs[60], cargs[61]); + break; + case 63: + ((FUNS63)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], + cargs[60], cargs[61], cargs[62]); + break; + case 64: + ((FUNS64)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], + cargs[60], cargs[61], cargs[62], cargs[63]); + break; + case 65: + ((FUNS65)fun)(cargs[0], cargs[1], cargs[2], cargs[3], cargs[4], + cargs[5], cargs[6], cargs[7], cargs[8], cargs[9], + cargs[10], cargs[11], cargs[12], cargs[13], cargs[14], + cargs[15], cargs[16], cargs[17], cargs[18], cargs[19], + cargs[20], cargs[21], cargs[22], cargs[23], cargs[24], + cargs[25], cargs[26], cargs[27], cargs[28], cargs[29], + cargs[30], cargs[31], cargs[32], cargs[33], cargs[34], + cargs[35], cargs[36], cargs[37], cargs[38], cargs[39], + cargs[40], cargs[41], cargs[42], cargs[43], cargs[44], + cargs[45], cargs[46], cargs[47], cargs[48], cargs[49], + cargs[50], cargs[51], cargs[52], cargs[53], cargs[54], + cargs[55], cargs[56], cargs[57], cargs[58], cargs[59], + cargs[60], cargs[61], cargs[62], cargs[63], cargs[64]); + break; + default: + error(_("too many arguments, sorry")); + } } diff --git a/src/testfunctions_f.f b/src/testfunctions_f.f index 88d9f860475065edc2c1b75cb896eab2ea49ed60..547ea52372f781fd628159c1c24274127561edfd 100644 --- a/src/testfunctions_f.f +++ b/src/testfunctions_f.f @@ -1,3 +1,6 @@ +c https://stackoverflow.com/questions/3170239/fortran-integer4-vs-integer4-vs-integerkind-4 + + subroutine get_f(input, index, output) double precision :: input(*), output(*) integer :: index @@ -6,7 +9,7 @@ subroutine get64_f(input, index, output) double precision :: input(*), output(*) - integer (kind = 8) :: index ! 64-bit integer on GFortran, differs with other compilers + integer (8) :: index ! 64-bit integer on GFortran, differs with other compilers output(1) = input(index) end diff --git a/tests/run-all.R b/tests/run-all.R index 486102101b84f999068a86f3869d68d41980e667..d8f2224317a3ddf75695ce6e15c4b2d56b666fd3 100644 --- a/tests/run-all.R +++ b/tests/run-all.R @@ -1,2 +1,8 @@ +require("RhpcBLASctl"); omp_set_num_threads(1) +# to address: +# * checking tests ... [10s/1s] NOTE +# Running ‘run-all.R’ [10s/1s] +# Running R code in ‘run-all.R’ had CPU time 10.5 times elapsed time + library(testthat) test_check('dotCall64')