diff options
| -rw-r--r-- | R/create_deg_func.R | 3 | ||||
| -rw-r--r-- | R/mkinfit.R | 4 | ||||
| -rw-r--r-- | test.log | 20 | ||||
| -rw-r--r-- | tests/testthat/FOCUS_2006_D.csf | 2 | ||||
| -rw-r--r-- | tests/testthat/test_FOCUS_D_UBA_expertise.R | 21 | ||||
| -rw-r--r-- | vignettes/mkin_benchmarks.rda | bin | 871 -> 871 bytes | |||
| -rw-r--r-- | vignettes/web_only/benchmarks.Rmd | 14 | ||||
| -rw-r--r-- | vignettes/web_only/benchmarks.html | 243 | 
8 files changed, 150 insertions, 157 deletions
| diff --git a/R/create_deg_func.R b/R/create_deg_func.R index 886c5e8b..6c0ae40b 100644 --- a/R/create_deg_func.R +++ b/R/create_deg_func.R @@ -51,7 +51,8 @@ create_deg_func <- function(spec, use_of_ff = c("min", "max")) {      n10 <- paste0("odeini['", parent, "']")      n20 <- paste0("odeini['", n2, "']") -    if (all(use_of_ff == "max", spec[[1]]$sink == TRUE, length(obs_vars) == 2, spec[[2]]$type == "SFO")) { +    if (all(use_of_ff == "max", spec[[1]]$sink == TRUE, length(obs_vars) == 2, +        spec[[1]]$type == "SFO", spec[[2]]$type == "SFO")) {        supported <- TRUE        k1 <- paste0("k_", n1)        k2 <- paste0("k_", n2) diff --git a/R/mkinfit.R b/R/mkinfit.R index c33afbf0..e1089673 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -464,7 +464,7 @@ mkinfit <- function(mkinmod, observed,    if (solution_type == "eigen" && !is.matrix(mkinmod$coefmat))       stop("Eigenvalue based solution not possible, coefficient matrix not present.")    if (solution_type == "auto") { -    if (length(mkinmod$spec) == 1) { +    if (length(mkinmod$spec) == 1 || is.function(mkinmod$deg_func)) {        solution_type = "analytical"      } else {        if (!is.null(mkinmod$cf) & use_compiled[1] != FALSE) { @@ -694,7 +694,7 @@ mkinfit <- function(mkinmod, observed,    # Show parameter names if tracing is requested    if(trace_parms) cat(names_optim, "\n") -  # browser() +  #browser()    # Do the fit and take the time until the hessians are calculated    fit_time <- system.time({ @@ -2,33 +2,33 @@ Loading mkin  Testing mkin  ✔ |  OK F W S | Context  ✔ |   2       | Export dataset for reading into CAKE -✔ |  13       | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.3 s] -✔ |   4       | Calculation of FOCUS chi2 error levels [2.0 s] -✔ |   7       | Fitting the SFORB model [9.1 s] -✔ |   1       | Analytical solutions for coupled models [1.1 s] +✔ |  13       | Results for FOCUS D established in expertise for UBA (Ranke 2014) [2.5 s] +✔ |   4       | Calculation of FOCUS chi2 error levels [0.4 s] +✔ |   7       | Fitting the SFORB model [9.0 s] +✔ |   1       | Analytical solutions for coupled models [0.2 s]  ✔ |   5       | Calculation of Akaike weights  ✔ |  10       | Confidence intervals and p-values [1.0 s] -✔ |  14       | Error model fitting [3.7 s] +✔ |  14       | Error model fitting [3.8 s]  ✔ |   6       | Test fitting the decline of metabolites from their maximum [0.2 s]  ✔ |   1       | Fitting the logistic model [0.2 s]  ✔ |   1       | Test dataset class mkinds used in gmkin  ✔ |  12       | Special cases of mkinfit calls [0.6 s]  ✔ |   8       | mkinmod model generation and printing [0.2 s]  ✔ |   3       | Model predictions with mkinpredict [0.4 s] -✔ |  16       | Evaluations according to 2015 NAFTA guidance [1.4 s] +✔ |  16       | Evaluations according to 2015 NAFTA guidance [1.3 s]  ✔ |   9       | Nonlinear mixed-effects models [12.1 s]  ✔ |   4       | Calculation of maximum time weighted average concentrations (TWAs) [2.4 s]  ✔ |   3       | Summary -✔ |  14       | Plotting [3.5 s] +✔ |  14       | Plotting [3.6 s]  ✔ |   4       | AIC calculation  ✔ |   4       | Residuals extracted from mkinfit models  ✔ |   2       | Complex test case from Schaefer et al. (2007) Piacenza paper [4.2 s]  ✔ |   1       | Summaries of old mkinfit objects -✔ |   4       | Results for synthetic data established in expertise for UBA (Ranke 2014) [6.4 s] -✔ |   9       | Hypothesis tests [17.8 s] +✔ |   4       | Results for synthetic data established in expertise for UBA (Ranke 2014) [6.3 s] +✔ |   9       | Hypothesis tests [17.7 s]  ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 69.9 s +Duration: 66.3 s  OK:       157  Failed:   0 diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf index f113a668..d41f0a9f 100644 --- a/tests/testthat/FOCUS_2006_D.csf +++ b/tests/testthat/FOCUS_2006_D.csf @@ -5,7 +5,7 @@ Description:  MeasurementUnits: % AR  TimeUnits: days  Comments: Created using mkin::CAKE_export -Date: 2020-05-09 +Date: 2020-05-10  Optimiser: IRLS  [Data] diff --git a/tests/testthat/test_FOCUS_D_UBA_expertise.R b/tests/testthat/test_FOCUS_D_UBA_expertise.R index f3b12bd9..be2806de 100644 --- a/tests/testthat/test_FOCUS_D_UBA_expertise.R +++ b/tests/testthat/test_FOCUS_D_UBA_expertise.R @@ -2,19 +2,22 @@ context("Results for FOCUS D established in expertise for UBA (Ranke 2014)")  # Results are from p. 40 +# Avoid warnings due to the zero value in the data for m1 at time zero +FOCUS_D <- subset(FOCUS_2006_D, value != 0) +  test_that("Fits without formation fractions are correct for FOCUS D", { -  fit.default <- expect_warning(mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE), "value of zero") +  fit.noff <- mkinfit(SFO_SFO, FOCUS_D, quiet = TRUE) -  expect_equal(round(as.numeric(endpoints(fit.default)$distimes["parent", ]), 2), +  expect_equal(round(as.numeric(endpoints(fit.noff)$distimes["parent", ]), 2),                 c(7.02, 23.33)) -  expect_equal(round(as.numeric(endpoints(fit.default)$distimes["m1", ]), 1), +  expect_equal(round(as.numeric(endpoints(fit.noff)$distimes["m1", ]), 1),                 c(131.8, 437.7))  })  test_that("Fits with formation fractions are correct for FOCUS D", {    skip_on_cran() -  fit.ff <- expect_warning(mkinfit(SFO_SFO.ff, FOCUS_2006_D, quiet = TRUE), "value of zero") +  fit.ff <- mkinfit(SFO_SFO.ff, FOCUS_D, quiet = TRUE)    expect_equivalent(round(fit.ff$bparms.optim, c(2, 4, 4, 4)),                      c(99.60, 0.0987, 0.0053, 0.5145)) @@ -30,8 +33,15 @@ test_that("Fits with formation fractions are correct for FOCUS D", {  test_that("Fits without internal transformations are correct for FOCUS D", {    skip_on_cran()    expect_warning( +    # Analytical solutions (now the default for SFO_SFO with formation fractions) +    # return NA at some point not internally transforming rates +    expect_error(fit.ff.notrans <- mkinfit(SFO_SFO.ff, FOCUS_D, +      transform_fractions = FALSE, transform_rates = FALSE, quiet = TRUE))) + +  expect_warning(      fit.ff.notrans <- mkinfit(SFO_SFO.ff, FOCUS_2006_D, -      transform_fractions = FALSE, transform_rates = FALSE, quiet = TRUE), +      transform_fractions = FALSE, transform_rates = FALSE, +      quiet = TRUE, solution_type = "deSolve"),      "sum of formation fractions")    expect_equivalent(round(fit.ff.notrans$bparms.optim, c(2, 4, 4, 4)), @@ -40,7 +50,6 @@ test_that("Fits without internal transformations are correct for FOCUS D", {    expect_equivalent(round(100 * mkinerrmin(fit.ff.notrans)$err.min, 2),                      c(6.40, 6.46, 4.69)) -    expect_equal(round(as.numeric(endpoints(fit.ff.notrans)$distimes["parent", ]), 2),                 c(7.02, 23.33))    expect_equal(round(as.numeric(endpoints(fit.ff.notrans)$distimes["m1", ]), 1), diff --git a/vignettes/mkin_benchmarks.rda b/vignettes/mkin_benchmarks.rdaBinary files differ index 1190d924..32223710 100644 --- a/vignettes/mkin_benchmarks.rda +++ b/vignettes/mkin_benchmarks.rda diff --git a/vignettes/web_only/benchmarks.Rmd b/vignettes/web_only/benchmarks.Rmd index 4849635f..cc28735a 100644 --- a/vignettes/web_only/benchmarks.Rmd +++ b/vignettes/web_only/benchmarks.Rmd @@ -40,9 +40,11 @@ if (mkin_version > "0.9.48.1") {  ```  ```{r timings} +FOCUS_C <- FOCUS_2006_C +FOCUS_D <- subset(FOCUS_2006_D, value != 0)  # Parent only -t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D)))[["elapsed"]] -t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D), error_model = "tc"))[["elapsed"]] +t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_C, FOCUS_D)))[["elapsed"]] +t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_C, FOCUS_D), error_model = "tc"))[["elapsed"]]  # One metabolite  SFO_SFO <- mkinmod( @@ -54,9 +56,9 @@ FOMC_SFO <- mkinmod(  DFOP_SFO <- mkinmod(    parent = mkinsub("FOMC", "m1"),    m1 = mkinsub("SFO")) -t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D)))[["elapsed"]] -t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(subset(FOCUS_2006_D, value != 0)), error_model = "tc"))[["elapsed"]] -t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D), error_model = "obs"))[["elapsed"]] +t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D)))[["elapsed"]] +t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D), error_model = "tc"))[["elapsed"]] +t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D), error_model = "obs"))[["elapsed"]]  # Two metabolites, synthetic data  m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"), @@ -83,7 +85,7 @@ t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_mod  t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))["elapsed"]  mkin_benchmarks[system_string, paste0("t", 1:11)] <- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) -mkin_benchmarks +mkin_benchmarks[, -c(1:3)]  save(mkin_benchmarks, file = "~/git/mkin/vignettes/mkin_benchmarks.rda") diff --git a/vignettes/web_only/benchmarks.html b/vignettes/web_only/benchmarks.html index 054b4afc..c80a7e44 100644 --- a/vignettes/web_only/benchmarks.html +++ b/vignettes/web_only/benchmarks.html @@ -1,17 +1,17 @@  <!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml"> +<html>  <head>  <meta charset="utf-8" /> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <meta name="generator" content="pandoc" /> +<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />  <meta name="author" content="Johannes Ranke" /> -<meta name="date" content="2019-05-02" /> +<meta name="date" content="2020-05-10" />  <title>Benchmark timings for mkin on various systems</title> @@ -69,8 +69,6 @@ overflow: auto;  margin-left: 2%;  position: fixed;  border: 1px solid #ccc; -webkit-border-radius: 6px; -moz-border-radius: 6px;  border-radius: 6px;  } @@ -98,10 +96,15 @@ font-size: 12px;  .tocify-subheader .tocify-subheader {  text-indent: 30px;  } -  .tocify-subheader .tocify-subheader .tocify-subheader {  text-indent: 40px;  } +.tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader { +text-indent: 50px; +} +.tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader { +text-indent: 60px; +}  .tocify .tocify-item > a, .tocify .nav-list .nav-header {  margin: 0px; @@ -504,13 +507,13 @@ float: none;            item.append($("<a/>", { -            "text": self.text() +            "html": self.html()            }));          } else { -          item.text(self.text()); +          item.html(self.html());          } @@ -1285,7 +1288,7 @@ window.initializeCodeFolding = function(show) {      // create a collapsable div to wrap the code in      var div = $('<div class="collapse r-code-collapse"></div>'); -    if (show) +    if (show || $(this)[0].classList.contains('fold-show'))        div.addClass('in');      var id = 'rcode-643E0F36' + currentIndex++;      div.attr('id', id); @@ -1401,7 +1404,6 @@ code {  }  img {    max-width:100%; -  height: auto;  }  .tabbed-pane {    padding-top: 12px; @@ -1463,6 +1465,7 @@ summary {    border: none;    display: inline-block;    border-radius: 4px; +  background-color: transparent;  }  .tabset-dropdown > .nav-tabs.nav-tabs-open > li { @@ -1475,56 +1478,12 @@ summary {  }  </style> -<script> -$(document).ready(function () { -  window.buildTabsets("TOC"); -}); - -$(document).ready(function () { -  $('.tabset-dropdown > .nav-tabs > li').click(function () { -    $(this).parent().toggleClass('nav-tabs-open') -  }); -}); -</script> -  <!-- code folding -->  <style type="text/css">  .code-folding-btn { margin-bottom: 4px; }  </style> -<script> -$(document).ready(function () { -  window.initializeCodeFolding("show" === "show"); -}); -</script> - - - -<script> -$(document).ready(function ()  { -    // move toc-ignore selectors from section div to header -    $('div.section.toc-ignore') -        .removeClass('toc-ignore') -        .children('h1,h2,h3,h4,h5').addClass('toc-ignore'); -    // establish options -    var options = { -      selectors: "h1,h2,h3", -      theme: "bootstrap3", -      context: '.toc-content', -      hashGenerator: function (text) { -        return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_').toLowerCase(); -      }, -      ignoreSelector: ".toc-ignore", -      scrollTo: 0 -    }; -    options.showAndHide = true; -    options.smoothScroll = true; - -    // tocify -    var toc = $("#TOC").tocify(options).data("toc-tocify"); -}); -</script>  <style type="text/css"> @@ -1538,6 +1497,12 @@ $(document).ready(function ()  {  }  } +@media print { +.toc-content { +  /* see https://github.com/w3c/csswg-drafts/issues/4434 */ +  float: right; +} +}  .toc-content {    padding-left: 30px; @@ -1573,8 +1538,6 @@ div.tocify {  .tocify-subheader .tocify-item {    font-size: 0.90em; -  padding-left: 25px; -  text-indent: 0;  }  .tocify .list-group-item { @@ -1620,7 +1583,7 @@ div.tocify {  <h1 class="title toc-ignore">Benchmark timings for mkin on various systems</h1>  <h4 class="author">Johannes Ranke</h4> -<h4 class="date">2019-05-02</h4> +<h4 class="date">2020-05-10</h4>  </div> @@ -1640,11 +1603,16 @@ if (mkin_version > "0.9.48.1") {  } else {    mmkin_bench <- function(models, datasets, error_model = NULL) mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)  }</code></pre> -<pre class="r"><code># Parent only -t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D)))[["elapsed"]] -t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_2006_C, FOCUS_2006_D), error_model = "tc"))[["elapsed"]]</code></pre> +<pre class="r"><code>FOCUS_C <- FOCUS_2006_C +FOCUS_D <- subset(FOCUS_2006_D, value != 0) +# Parent only +t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_C, FOCUS_D)))[["elapsed"]] +t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), list(FOCUS_C, FOCUS_D), error_model = "tc"))[["elapsed"]]</code></pre>  <pre><code>## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): Optimisation did not converge: -## false convergence (8)</code></pre> +## iteration limit reached without convergence (10) + +## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): Optimisation did not converge: +## iteration limit reached without convergence (10)</code></pre>  <pre class="r"><code># One metabolite  SFO_SFO <- mkinmod(    parent = mkinsub("SFO", "m1"), @@ -1658,25 +1626,11 @@ SFO_SFO <- mkinmod(    parent = mkinsub("FOMC", "m1"),    m1 = mkinsub("SFO"))</code></pre>  <pre><code>## Successfully compiled differential equation model from auto-generated C code.</code></pre> -<pre class="r"><code>t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D)))[["elapsed"]]</code></pre> -<pre><code>## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): -## Observations with value of zero were removed from the data</code></pre> -<pre><code>## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): -## Observations with value of zero were removed from the data - -## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): -## Observations with value of zero were removed from the data</code></pre> -<pre class="r"><code>t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(subset(FOCUS_2006_D, value != 0)), error_model = "tc"))[["elapsed"]] -t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_2006_D), error_model = "obs"))[["elapsed"]]</code></pre> -<pre><code>## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): -## Observations with value of zero were removed from the data - -## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): -## Observations with value of zero were removed from the data - -## Warning in mkinfit(models[[model_index]], datasets[[dataset_index]], ...): -## Observations with value of zero were removed from the data</code></pre> -<pre class="r"><code># Two metabolites, synthetic data +<pre class="r"><code>t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D)))[["elapsed"]] +t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D), error_model = "tc"))[["elapsed"]] +t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D), error_model = "obs"))[["elapsed"]] + +# Two metabolites, synthetic data  m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),                             M1 = mkinsub("SFO", "M2"),                             M2 = mkinsub("SFO"), @@ -1701,91 +1655,70 @@ t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_  t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))["elapsed"]  mkin_benchmarks[system_string, paste0("t", 1:11)] <- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) -mkin_benchmarks</code></pre> -<pre><code>##                                                                                                       CPU -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 AMD Ryzen 7 1700 Eight-Core Processor -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 AMD Ryzen 7 1700 Eight-Core Processor -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 AMD Ryzen 7 1700 Eight-Core Processor -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 AMD Ryzen 7 1700 Eight-Core Processor -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 AMD Ryzen 7 1700 Eight-Core Processor -##                                                                        OS -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 Linux -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 Linux -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 Linux -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 Linux -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 Linux -##                                                                         mkin -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 0.9.48.1 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 0.9.49.1 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 0.9.49.2 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 0.9.49.3 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 0.9.49.4 -##                                                                        t1 +mkin_benchmarks[, -c(1:3)]</code></pre> +<pre><code>##                                                                        t1  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.610  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 8.184  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 7.064  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.296 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 6.023 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.936 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50   1.658  ##                                                                         t2  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 11.019  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 22.889  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 12.558  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 21.239 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 20.409 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 20.545 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50    3.820  ##                                                                        t3  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 3.764  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.649  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.786  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.510 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.283 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.446 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50   3.424  ##                                                                         t4  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 14.347  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 13.789  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2  8.461  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 13.805 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 14.531 -##                                                                        t5 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 9.495 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 6.395 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.675 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.386 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 5.744 -##                                                                        t6 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 2.623 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 2.542 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 2.723 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 2.643 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 2.518 -##                                                                        t7 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 4.587 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.128 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.478 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.374 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.211 -##                                                                        t8 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 7.525 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.632 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.862 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3  7.02 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.557 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 15.335 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50   18.375 +##                                                                        t5    t6 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 9.495 2.623 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 6.395 2.542 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 5.675 2.723 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 7.386 2.643 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 6.002 2.635 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50   7.480 2.188 +##                                                                        t7    t8 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 4.587 7.525 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 4.128 4.632 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 4.478 4.862 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 4.374  7.02 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 4.259 4.737 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50    3.69  3.87  ##                                                                         t9  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 16.621  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1  8.171  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2  7.618  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 11.124 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4  7.739 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4  7.763 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50    8.872  ##                                                                       t10  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 8.576  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1 3.676  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2 3.579  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3 5.388 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 3.413 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4 3.427 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50   6.257  ##                                                                        t11  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.48.1 31.267  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.1  5.636  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.2  5.574  ## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.3  7.365 -## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4  5.588</code></pre> +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.49.4  5.626 +## Linux, AMD Ryzen 7 1700 Eight-Core Processor, mkin version 0.9.50    9.289</code></pre>  <pre class="r"><code>save(mkin_benchmarks, file = "~/git/mkin/vignettes/mkin_benchmarks.rda")</code></pre>  </div> @@ -1809,6 +1742,54 @@ $(document).ready(function () {  </script> +<!-- tabsets --> + +<script> +$(document).ready(function () { +  window.buildTabsets("TOC"); +}); + +$(document).ready(function () { +  $('.tabset-dropdown > .nav-tabs > li').click(function () { +    $(this).parent().toggleClass('nav-tabs-open') +  }); +}); +</script> + +<!-- code folding --> +<script> +$(document).ready(function () { +  window.initializeCodeFolding("show" === "show"); +}); +</script> + +<script> +$(document).ready(function ()  { + +    // move toc-ignore selectors from section div to header +    $('div.section.toc-ignore') +        .removeClass('toc-ignore') +        .children('h1,h2,h3,h4,h5').addClass('toc-ignore'); + +    // establish options +    var options = { +      selectors: "h1,h2,h3", +      theme: "bootstrap3", +      context: '.toc-content', +      hashGenerator: function (text) { +        return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_').toLowerCase(); +      }, +      ignoreSelector: ".toc-ignore", +      scrollTo: 0 +    }; +    options.showAndHide = true; +    options.smoothScroll = true; + +    // tocify +    var toc = $("#TOC").tocify(options).data("toc-tocify"); +}); +</script> +  <!-- dynamically load mathjax for compatibility with self-contained -->  <script>    (function () { | 
