From 3d84a50f5373d07de0fe868d9588c90ec66106fc Mon Sep 17 00:00:00 2001 From: hdakpo Date: Mon, 11 Dec 2023 13:18:49 +0100 Subject: [PATCH] warning in interface.c --- .Rbuildignore | 15 +-- CRAN-SUBMISSION | 3 + DESCRIPTION | 48 ++++----- NEWS.md | 6 ++ cran-comments.md | 38 +++---- revdep/README.md | 61 ++++++------ revdep/cran.md | 25 +++-- revdep/failures.md | 103 ++++++------------- src/interface.c | 241 +++++++++++++++++++++++---------------------- src/interface.o | Bin 11309 -> 11309 bytes src/ucminf.dll | Bin 145612 -> 145612 bytes ucminf.Rproj | 40 ++++---- 12 files changed, 268 insertions(+), 312 deletions(-) create mode 100644 CRAN-SUBMISSION diff --git a/.Rbuildignore b/.Rbuildignore index 3eb2624..a3ab54b 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,7 +1,8 @@ -^.*\.Rproj$ -^\.Rproj\.user$ -^LICENSE\.md$ -^revdep$ -^cran-comments\.md$ -^README\.Rmd$ -^\.github$ +^.*\.Rproj$ +^\.Rproj\.user$ +^LICENSE\.md$ +^revdep$ +^cran-comments\.md$ +^README\.Rmd$ +^\.github$ +^CRAN-SUBMISSION$ diff --git a/CRAN-SUBMISSION b/CRAN-SUBMISSION new file mode 100644 index 0000000..bac040f --- /dev/null +++ b/CRAN-SUBMISSION @@ -0,0 +1,3 @@ +Version: 1.2.1 +Date: 2023-12-11 12:17:36 UTC +SHA: 4e62a51320b94d1ab30f1ad66f0c0585956022f4 diff --git a/DESCRIPTION b/DESCRIPTION index 025ef71..1179fb9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,24 +1,24 @@ -Package: ucminf -Title: General-Purpose Unconstrained Non-Linear Optimization -Version: 1.2.0 -Authors@R: c( - person("K Hervé", "Dakpo", email = "k-herve.dakpo@inrae.fr", - role = c("ctb", "cre")), - person("Hans Bruun", "Nielsen", role = "aut"), - person("Stig Bousgaard", "Mortensen", role = "aut") - ) -Description: An algorithm for general-purpose unconstrained non-linear optimization. - The algorithm is of quasi-Newton type with BFGS updating of the inverse - Hessian and soft line search with a trust region type monitoring of the - input to the line search algorithm. The interface of 'ucminf' is - designed for easy interchange with 'optim'. -License: GPL (>= 2) -URL: https://github.com/hdakpo/ucminf -BugReports: https://github.com/hdakpo/ucminf/issues -Encoding: UTF-8 -Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.3 -Depends: - R (>= 3.5.0) -Suggests: - numDeriv +Package: ucminf +Title: General-Purpose Unconstrained Non-Linear Optimization +Version: 1.2.1 +Authors@R: c( + person("K Hervé", "Dakpo", email = "k-herve.dakpo@inrae.fr", + role = c("ctb", "cre")), + person("Hans Bruun", "Nielsen", role = "aut"), + person("Stig Bousgaard", "Mortensen", role = "aut") + ) +Description: An algorithm for general-purpose unconstrained non-linear optimization. + The algorithm is of quasi-Newton type with BFGS updating of the inverse + Hessian and soft line search with a trust region type monitoring of the + input to the line search algorithm. The interface of 'ucminf' is + designed for easy interchange with 'optim'. +License: GPL (>= 2) +URL: https://github.com/hdakpo/ucminf +BugReports: https://github.com/hdakpo/ucminf/issues +Encoding: UTF-8 +Roxygen: list(markdown = TRUE) +RoxygenNote: 7.2.3 +Depends: + R (>= 3.5.0) +Suggests: + numDeriv diff --git a/NEWS.md b/NEWS.md index 8d93172..1ef9cda 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +# ucminf 1.2.1 + +## BUG FIXES + +* Fixed warnings associated with arguments format in interface.c file + # ucminf 1.2.0 * Added a `NEWS.md` file to track changes to the package. diff --git a/cran-comments.md b/cran-comments.md index 5864a6e..e56644d 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,22 +1,16 @@ -## R CMD check results - -0 errors | 0 warnings | 1 note - -* checking CRAN incoming feasibility ... NOTE -Maintainer: 'K Hervé Dakpo ' - -Taking over orphaned package. - -## revdepcheck results - -We checked 23 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. - - * We saw 0 new problems - * We failed to check 2 packages - -Issues with CRAN packages are summarised below. - -### Failed to check - -* mets (NA) -* nlmixr2est (NA) +## R CMD check results + +0 errors | 0 warnings | 0 note + +## revdepcheck results + +We checked 22 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. + + * We saw 0 new problems + * We failed to check 1 packages + +Issues with CRAN packages are summarised below. + +### Failed to check + +* mets (NA) diff --git a/revdep/README.md b/revdep/README.md index 50b0fc1..4f7d56f 100644 --- a/revdep/README.md +++ b/revdep/README.md @@ -1,31 +1,30 @@ -# Platform - -|field |value | -|:--------|:--------------------------------------| -|version |R version 4.3.0 (2023-04-21 ucrt) | -|os |Windows 11 x64 (build 22621) | -|system |x86_64, mingw32 | -|ui |RStudio | -|language |(EN) | -|collate |French_France.utf8 | -|ctype |French_France.utf8 | -|tz |Europe/Paris | -|date |2023-05-26 | -|rstudio |2023.03.1+446 Cherry Blossom (desktop) | -|pandoc |NA | - -# Dependencies - -|package |old |new |Δ | -|:-------|:-------|:-----|:--| -|ucminf |1.1-4.3 |1.2.0 |* | - -# Revdeps - -## Failed to check (2) - -|package |version |error |warning |note | -|:----------|:-------|:-----|:-------|:----| -|mets |1.3.2 |1 | |2 | -|nlmixr2est |2.1.5 |2 | | | - +# Platform + +|field |value | +|:--------|:------------------------------------------------------------------------------------| +|version |R version 4.3.2 (2023-10-31 ucrt) | +|os |Windows 11 x64 (build 22631) | +|system |x86_64, mingw32 | +|ui |RStudio | +|language |(EN) | +|collate |French_France.utf8 | +|ctype |French_France.utf8 | +|tz |Europe/Paris | +|date |2023-12-11 | +|rstudio |2023.09.1+494 Desert Sunflower (desktop) | +|pandoc |3.1.1 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown) | + +# Dependencies + +|package |old |new |Δ | +|:-------|:-----|:-----|:--| +|ucminf |1.2.0 |1.2.1 |* | + +# Revdeps + +## Failed to check (1) + +|package |version |error |warning |note | +|:-------|:-------|:-----|:-------|:----| +|mets |1.3.3 |1 | |1 | + diff --git a/revdep/cran.md b/revdep/cran.md index 85fd0d7..fe9cd36 100644 --- a/revdep/cran.md +++ b/revdep/cran.md @@ -1,13 +1,12 @@ -## revdepcheck results - -We checked 23 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. - - * We saw 0 new problems - * We failed to check 2 packages - -Issues with CRAN packages are summarised below. - -### Failed to check - -* mets (NA) -* nlmixr2est (NA) +## revdepcheck results + +We checked 22 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. + + * We saw 0 new problems + * We failed to check 1 packages + +Issues with CRAN packages are summarised below. + +### Failed to check + +* mets (NA) diff --git a/revdep/failures.md b/revdep/failures.md index d1ea1f2..3026fab 100644 --- a/revdep/failures.md +++ b/revdep/failures.md @@ -1,75 +1,28 @@ -# mets - -
- -* Version: 1.3.2 -* GitHub: https://github.com/kkholst/mets -* Source code: https://github.com/cran/mets -* Date/Publication: 2023-01-17 09:40:07 UTC -* Number of recursive dependencies: 95 - -Run `revdepcheck::revdep_details(, "mets")` for more info - -
- -## In both - -* R CMD check timed out - - -* checking C++ specification ... NOTE - ``` - Specified C++11: please drop specification unless essential - ``` - -* checking installed package size ... NOTE - ``` - installed size is 8.4Mb - sub-directories of 1Mb or more: - R 1.7Mb - doc 2.6Mb - libs 2.3Mb - ``` - -# nlmixr2est - -
- -* Version: 2.1.5 -* GitHub: https://github.com/nlmixr2/nlmixr2est -* Source code: https://github.com/cran/nlmixr2est -* Date/Publication: 2023-04-22 19:50:02 UTC -* Number of recursive dependencies: 198 - -Run `revdepcheck::revdep_details(, "nlmixr2est")` for more info - -
- -## In both - -* checking tests ... - ``` - Running 'testthat.R' - ERROR - Running the tests in 'tests/testthat.R' failed. - Last 13 lines of output: - - ══ Failed tests ════════════════════════════════════════════════════════════════ - ── Error ('test-00-reload-ll.R:30:3'): between session saem ll works ─────────── - Error in `gzfile(file, "rb")`: cannot open the connection - Backtrace: - ▆ - 1. ├─withr::with_tempdir(...) at test-00-reload-ll.R:30:2 - 2. │ └─withr::with_dir(tmp, code) - 3. │ └─base::force(code) - 4. └─base::readRDS("fit.rds") at test-00-reload-ll.R:36:4 - 5. └─base::gzfile(file, "rb") - - [ FAIL 1 | WARN 1 | SKIP 0 | PASS 157 ] - Error: Test failures - Execution halted - ``` - -* R CMD check timed out - - +# mets + +
+ +* Version: 1.3.3 +* GitHub: https://github.com/kkholst/mets +* Source code: https://github.com/cran/mets +* Date/Publication: 2023-12-05 00:20:05 UTC +* Number of recursive dependencies: 98 + +Run `revdepcheck::revdep_details(, "mets")` for more info + +
+ +## In both + +* R CMD check timed out + + +* checking installed package size ... NOTE + ``` + installed size is 8.7Mb + sub-directories of 1Mb or more: + R 1.7Mb + doc 2.8Mb + libs 2.3Mb + ``` + diff --git a/src/interface.c b/src/interface.c index 6a78711..3232b52 100644 --- a/src/interface.c +++ b/src/interface.c @@ -1,120 +1,121 @@ -/* - Stig Bousgaard Mortensen - DTU Informatics - sbm@imm.dtu.dk - - Based on R-package 'FortranCallsR' by - Diethelm Wuertz, ETH Zurich, www.rmetrics.org - - Modifications by Douglas Bates , Nov. 2010 - Modifications by Tomas Kalibera Aug. 2016. -*/ - - -#include -#include //R internal structures -#include //F77_CALL etc. - -// Declare FORTRAN routine for use in C -extern void F77_NAME(ucminf)(int*, double[], double*, double[], - int*,double[],int*,int*,int*,double[],SEXP); - -/*------------------------------------------------------------------------------- - Define C functions that calls user defined function in R -*/ - -void installPar(int nn, double x[], SEXP rho) { - int i; - SEXP PAR = findVarInFrame(rho, install(".x")); - double *xpt = REAL(PAR); - if (LENGTH(PAR) != nn) - error("Dimension mismatch, length(.x) = %d != n = $d", LENGTH(PAR), nn); - for (i = 0; i < nn; i++) xpt[i] = x[i] ; -} - -void F77_SUB(func)(int *n, double x[], double *value, SEXP rho) { - installPar(*n, x, rho); - SEXP dotf = findVarInFrame(rho, install(".f")); - PROTECT(dotf); - *value = asReal(PROTECT(eval(dotf, rho))) ; - UNPROTECT(2); -} - -void F77_SUB(usrgr)(int *n, double x[], double grval[], SEXP rho) { - SEXP OUT; - int i, nn = *n; - double *grv; - - installPar(nn, x, rho); - SEXP dotgr = PROTECT(findVarInFrame(rho, install(".gr"))); - PROTECT(OUT = eval(dotgr, rho)); - if (LENGTH(OUT) != nn || !isReal(OUT)) - error("gradient evaluation must return a numeric vector of length %d", nn); - grv = REAL(OUT); - for (i = 0; i < nn; i++) grval[i] = grv[i]; - UNPROTECT(2) ; -} - -/*-------------------------------------------------------------------------------- - Define C function to be called from R -*/ - -SEXP mfopt(SEXP rho) { - int n = asInteger(PROTECT(findVarInFrame(rho, install( ".n")))), - iw = asInteger(PROTECT(findVarInFrame(rho, install( ".iw")))), - grad = asInteger(PROTECT(findVarInFrame(rho, install( ".grad")))); - UNPROTECT(3); - SEXP - EPS = PROTECT(findVarInFrame(rho, install( ".eps"))), - GRSTEP = PROTECT(findVarInFrame(rho, install(".grstep"))), - PAR = PROTECT(findVarInFrame(rho, install( ".par"))), - icontr = PROTECT(findVarInFrame(rho, install(".icontr"))), - maxfun = PROTECT(findVarInFrame(rho, install(".maxfun"))), - dx = PROTECT(findVarInFrame(rho, install(".stepmax"))), - W = PROTECT(findVarInFrame(rho, install( ".w"))); - - if (LENGTH(EPS) < 2 || !isReal(EPS)) - error(".eps must be a numeric vector of length >= 2"); - if (LENGTH(GRSTEP) < 2 || !isReal(GRSTEP)) - error(".eps must be a numeric vector of length >= 2"); - if (LENGTH(PAR) != n || !isReal(PAR)) - error("Dimension mismatch, length(.par) = %d != n = $d", LENGTH(PAR), n); - if (LENGTH(W) != iw || !isReal(W)) - error("Dimension mismatch, length(.w) = %d != .iw = $d", LENGTH(W), iw); - - // duplicate dx, maxfun, .w because they are input/output arguments - maxfun = PROTECT(duplicate(maxfun)); - defineVar(install(".maxfun"), maxfun, rho); - dx = PROTECT(duplicate(dx)); - defineVar(install(".stepmax"), dx, rho); - W = PROTECT(duplicate(W)); - defineVar(install(".w"), W, rho); - UNPROTECT(3); // now protected via rho - - // Call the FORTRAN routine 'ucminf' - F77_CALL(ucminf)(&n, REAL(PAR), REAL(dx), REAL(EPS), INTEGER(maxfun), REAL(W), &iw, INTEGER(icontr), - &grad, REAL(GRSTEP), rho) ; - UNPROTECT(7); - return R_NilValue; -} - -void F77_SUB(prtrac)(int *neval, double *fx, double *nmg, int *n, double x[]) { - int i, nn = *n; - Rprintf(" neval = %3d, F(x) =%11.4e, max|g(x)| =%11.4e\n", *neval, *fx, *nmg); - Rprintf(" x =%11.4e", x[0]); - for (i = 1; i < nn; i++) Rprintf(",%11.4e", x[i]); - Rprintf("\n"); -} - -void F77_SUB(prline)(double *a, double sl[]) { - Rprintf(" Line search: alpha =%11.4e, dphi(0) =%11.4e, dphi(1) =%11.4e\n", - *a, sl[0], sl[1]); -} - -void F77_SUB(prconv)(void) { - Rprintf(" Optimization has converged\n"); -} - -void F77_SUB(prfail)(int *neval) { - Rprintf(" Optimization stopped after %d function evaluations\n", *neval); -} +/* + Stig Bousgaard Mortensen + DTU Informatics + sbm@imm.dtu.dk + + Based on R-package 'FortranCallsR' by + Diethelm Wuertz, ETH Zurich, www.rmetrics.org + + Modifications by Douglas Bates , Nov. 2010 + Modifications by Tomas Kalibera Aug. 2016. + Modifications by K Hervé Dakpo Dec. 2023. +*/ + + +#include +#include //R internal structures +#include //F77_CALL etc. + +// Declare FORTRAN routine for use in C +extern void F77_NAME(ucminf)(int*, double[], double*, double[], + int*,double[],int*,int*,int*,double[],SEXP); + +/*------------------------------------------------------------------------------- + Define C functions that calls user defined function in R +*/ + +void installPar(int nn, double x[], SEXP rho) { + int i; + SEXP PAR = findVarInFrame(rho, install(".x")); + double *xpt = REAL(PAR); + if (LENGTH(PAR) != nn) + error("Dimension mismatch, length(.x) = %d != n = %d", LENGTH(PAR), nn); + for (i = 0; i < nn; i++) xpt[i] = x[i] ; +} + +void F77_SUB(func)(int *n, double x[], double *value, SEXP rho) { + installPar(*n, x, rho); + SEXP dotf = findVarInFrame(rho, install(".f")); + PROTECT(dotf); + *value = asReal(PROTECT(eval(dotf, rho))) ; + UNPROTECT(2); +} + +void F77_SUB(usrgr)(int *n, double x[], double grval[], SEXP rho) { + SEXP OUT; + int i, nn = *n; + double *grv; + + installPar(nn, x, rho); + SEXP dotgr = PROTECT(findVarInFrame(rho, install(".gr"))); + PROTECT(OUT = eval(dotgr, rho)); + if (LENGTH(OUT) != nn || !isReal(OUT)) + error("gradient evaluation must return a numeric vector of length %d", nn); + grv = REAL(OUT); + for (i = 0; i < nn; i++) grval[i] = grv[i]; + UNPROTECT(2) ; +} + +/*-------------------------------------------------------------------------------- + Define C function to be called from R +*/ + +SEXP mfopt(SEXP rho) { + int n = asInteger(PROTECT(findVarInFrame(rho, install( ".n")))), + iw = asInteger(PROTECT(findVarInFrame(rho, install( ".iw")))), + grad = asInteger(PROTECT(findVarInFrame(rho, install( ".grad")))); + UNPROTECT(3); + SEXP + EPS = PROTECT(findVarInFrame(rho, install( ".eps"))), + GRSTEP = PROTECT(findVarInFrame(rho, install(".grstep"))), + PAR = PROTECT(findVarInFrame(rho, install( ".par"))), + icontr = PROTECT(findVarInFrame(rho, install(".icontr"))), + maxfun = PROTECT(findVarInFrame(rho, install(".maxfun"))), + dx = PROTECT(findVarInFrame(rho, install(".stepmax"))), + W = PROTECT(findVarInFrame(rho, install( ".w"))); + + if (LENGTH(EPS) < 2 || !isReal(EPS)) + error(".eps must be a numeric vector of length >= 2"); + if (LENGTH(GRSTEP) < 2 || !isReal(GRSTEP)) + error(".eps must be a numeric vector of length >= 2"); + if (LENGTH(PAR) != n || !isReal(PAR)) + error("Dimension mismatch, length(.par) = %d != n = %d", LENGTH(PAR), n); + if (LENGTH(W) != iw || !isReal(W)) + error("Dimension mismatch, length(.w) = %d != .iw = %d", LENGTH(W), iw); + + // duplicate dx, maxfun, .w because they are input/output arguments + maxfun = PROTECT(duplicate(maxfun)); + defineVar(install(".maxfun"), maxfun, rho); + dx = PROTECT(duplicate(dx)); + defineVar(install(".stepmax"), dx, rho); + W = PROTECT(duplicate(W)); + defineVar(install(".w"), W, rho); + UNPROTECT(3); // now protected via rho + + // Call the FORTRAN routine 'ucminf' + F77_CALL(ucminf)(&n, REAL(PAR), REAL(dx), REAL(EPS), INTEGER(maxfun), REAL(W), &iw, INTEGER(icontr), + &grad, REAL(GRSTEP), rho) ; + UNPROTECT(7); + return R_NilValue; +} + +void F77_SUB(prtrac)(int *neval, double *fx, double *nmg, int *n, double x[]) { + int i, nn = *n; + Rprintf(" neval = %3d, F(x) =%11.4e, max|g(x)| =%11.4e\n", *neval, *fx, *nmg); + Rprintf(" x =%11.4e", x[0]); + for (i = 1; i < nn; i++) Rprintf(",%11.4e", x[i]); + Rprintf("\n"); +} + +void F77_SUB(prline)(double *a, double sl[]) { + Rprintf(" Line search: alpha =%11.4e, dphi(0) =%11.4e, dphi(1) =%11.4e\n", + *a, sl[0], sl[1]); +} + +void F77_SUB(prconv)(void) { + Rprintf(" Optimization has converged\n"); +} + +void F77_SUB(prfail)(int *neval) { + Rprintf(" Optimization stopped after %d function evaluations\n", *neval); +} diff --git a/src/interface.o b/src/interface.o index c4cd948c1b7601687de75cd4deccb33b1829e901..6557b4070776e0fbda23d7c4c31b87c5157d2fdc 100644 GIT binary patch delta 739 zcmY*W!A=uV6uoyEh?W}Z^tB+xBul_~OKG&1&&K z$pWvW(rAq~QqRYbjV{s;HSF`tOexnl8VI0;02w^>4?13NAMlL-%FLt3Z!$&Go2_XP zK|ebI^cE$$18Jgn{pJDD9bRQ6$B8HD&VXu5il}>Sm*6uACv}g&ntXFw7sM@jGslhr z-Mh(1%?a~}=cXh&f-JV3&S@90%6~8`sHTTfG$Ynp)RPE51?;#FxUPw&MEEgauHS3{ zZm7b|1*_RRfHh4tC&F(5+uYvSt=WJtRp~ll_WCy9rovxoBt_Eo0bi-oWx(22bKsoQ z%db`KOTb#>WJ|%%0ecVlhKE^(Wqy?{2IUzQvM^jW<78aF*Q89#l{g#!s6%j7nww^C z-|YfENlI83`7GbcXF1M?ob~{p-jj1|*6MU!(!8QtQw`b{DHgjjxt%Mnnh*XHWR_w< zBGbMgGhpRpvzO$tN# le}pz*QDfA&TAV_gFHQZ{>^A?C zF7j$7i}v_==II0)=(C-EB0Db<;cz_EU+U$ z_jWo~bIf|gb2AbhLJmE*e=-29@gJ-l*0Lihnh|R)?nyYLbnA*e6(%=4RQO zx4VFk(h@dAJ}Wo!SxNFCrvc#OJ93W0+WkS7G(S(E6pLM1+{u?}*4%%BEGrR2 za!xzMxhcqcmI$J`E?}9D@-rQCl2Vl4clEEP08kg3GjnotAPk!e$^6)#xh%&`3q$k& k48_40l;S2EiftFi4`zdw z$btovNz}xR8&hmz)YPcqH}DILE?u~+YZly@_r}O(-kkf+z3-fJ_d4OdPI!Cs$gkhE z6=!Qf(l$Q-c(Q;|H+%aJedCK07;T%2FHic6cKFd~3R(NgyYmv(-Aprbx~}99Kym<1 z;kvb4GHZ_k%kEb50-El}=CEoGB_y99m)8KzQI5jUOZ1AREfZaL|28AK9!!$;2Gzy{ zQ8tSP!K)nh$R>dq{${`I5$E~M2rB>@$GdzrYs@5`ae|{&=)_y?j&DUfV2BPUZ#Nw%I+vTLNv`6jils85SiK zb054PwqpY#bI*TF4T3VPnnn@FE(cLrt0jVQ?zNxYxtj&N)WzX_FRt-Jag7IYk?|Vf zL^q$4X8BUZAPbYCwU8r4WWZaUdKC3*&>aE*oZ{z;WAq=VkGCrI?0-_#NFbGjR#)iu zuvGPWAeCO!0WZ3_))`dXMr&|R>EpWu&$BWT4Du~1W4y1&^ECL+lfQ~{LUfKby!{Wg af4087!O2%n5>-0BCh;K-e3MhS+c^N6Sgzd& z$btovNkHSqjVU%UYH9*;$(mnaT${M8YZu;`_r}QP&7Awrz3-fJ4?E$*PIznMn0~QZ zbT;Rudq2N?e>#sbH+Sb3or#4j7;75~+oya+JN#%YjeYIO_va3 zaLrt<8rEY#)7@-dK;8Y+9FFPdl9Er5*H;1cF^ zMA^{G1g~+}BO3&!`I`f>N1Wp~Bdh|bb#?n{R+&LO?IcGl(2u%SU8?~m+-JL^cB1zq z7tM%u)9(p6FKt$N0yr&sO(Exn&B|t>2sk4Of1a~sCJT5=@|r`=zRl80*<3OMm=vYY zHp|Q`0j31rrI8d#%>+z~(mR{!Q-y|BrtBz$yNHb%OpAba<;$2mh0*s)1AzS})P< zQK{;UKq|ec0gk%)))`dXMk_k2^z&VU=UEvE2Kg41ao*SCc^dlX$zMfOh|aTyxBs*4 eAFZ!%w^P`)^CpE+`ibluq;L@j_vAEw>-+`fIIm3r diff --git a/ucminf.Rproj b/ucminf.Rproj index 497f8bf..b9255bc 100644 --- a/ucminf.Rproj +++ b/ucminf.Rproj @@ -1,20 +1,20 @@ -Version: 1.0 - -RestoreWorkspace: Default -SaveWorkspace: Default -AlwaysSaveHistory: Default - -EnableCodeIndexing: Yes -UseSpacesForTab: Yes -NumSpacesForTab: 2 -Encoding: UTF-8 - -RnwWeave: Sweave -LaTeX: pdfLaTeX - -AutoAppendNewline: Yes -StripTrailingWhitespace: Yes - -BuildType: Package -PackageUseDevtools: Yes -PackageInstallArgs: --no-multiarch --with-keep.source +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source