The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

RcppLbfgsblaze

This package provides an implementation of the L-BFGS algorithm based on Blaze for R and Rcpp. The L-BFGS algorithm is a popular optimization algorithm for unconstrained optimization problems. Blaze is a high-performance C++ math library for dense and sparse arithmetic. The package provides a simple interface to the L-BFGS algorithm and allows users to optimize their objective functions with Blaze vectors and matrices in R and Rcpp.

Installation

You can install:

If you encounter a bug, please file a reproducible example on github.

Logistic Model Fitting Benchmark

You can refer to the file logisticBenchmark.R to find the code. Below code and corresponding results show that RcppLbfgsblaze provides a fast and efficient algorithm for logistic model fitting. In the benchmark, RcppLbfgsBlaze is only slower than RcppNumerical, but faster than others.

```R
source(system.file("examples", "logisticBenchmark.R", package = "RcppLbfgsBlaze"))
# logistic model fitting benchmark for n = 10000, p = 100 and non-zero p = 6: nrep = 20
# Unit: milliseconds
#            expr      min        lq      mean    median        uq      max neval
#         glm.fit 254.8283 259.26340 277.47036 263.97765 283.17805 336.0213    20
#           optim  65.6519  69.05245  73.98623  70.32615  71.59410 148.2856    20
#      optim_arma  16.1281  16.97425  22.05490  17.81580  18.27810  94.6341    20
#          glmnet  38.5915  39.07820  44.26353  39.85460  41.21905 114.7233    20
#           lbfgs  85.7390  88.19755  96.58998  92.39210  94.74080 165.2018    20
#      lbfgs_arma  20.7813  21.87255  23.06615  22.71525  23.43450  29.2101    20
#   RcppNumerical   8.5511   9.06755   9.81808   9.54100   9.92005  16.1381    20
#  RcppLbfgsBlaze  10.0476  10.53910  11.26658  11.16235  11.59385  14.2053    20
```

When the sample size and number of predictors increase, RcppLbfgsBlaze will be faster than RcppNumerical and others. It shows that RcppLbfgsBlaze provides relatively fast algorithm comparing to otehrs.

```R
# logistic model fitting benchmark for n = 50000, p = 500 and non-zero p = 6: nrep = 20
# Unit: milliseconds
#            expr       min        lq      mean    median        uq       max neval
#      optim_arma  547.1768  556.3317  578.6516  576.7488  594.5491  632.7897    20
#      lbfgs_arma 1501.6494 1537.9691 1573.0044 1561.6261 1606.5876 1675.4529    20
#   RcppNumerical  250.6525  255.3796  263.2894  262.5797  269.0240  286.2630    20
#  RcppLbfgsBlaze  150.5987  154.8733  158.7338  156.8559  161.5664  173.0606    20
```

Above results are run on my desktop (i9-13900K, DDR5-4000 128GB).

Authors

Ching-Chuan Chen

License

MIT License

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.