* using log directory ‘/data/gannet/ripley/R/packages/tests-LENGTH1/Data2LD.Rcheck’ * using R Under development (unstable) (2022-04-03 r82074) * using platform: x86_64-pc-linux-gnu (64-bit) * using session charset: UTF-8 * using option ‘--no-stop-on-test-error’ * checking for file ‘Data2LD/DESCRIPTION’ ... OK * checking extension type ... Package * this is package ‘Data2LD’ version ‘3.2.1’ * checking package namespace information ... OK * checking package dependencies ... OK * checking if this is a source package ... OK * checking if there is a namespace ... OK * checking for executable files ... OK * checking for hidden files and directories ... OK * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking whether package ‘Data2LD’ can be installed ... [22s/45s] OK * checking package directory ... OK * checking ‘build’ directory ... OK * checking DESCRIPTION meta-information ... OK * checking top-level files ... OK * checking for left-over files ... OK * checking index information ... OK * checking package subdirectories ... OK * checking R files for non-ASCII characters ... OK * checking R files for syntax errors ... OK * checking whether the package can be loaded ... OK * checking whether the package can be loaded with stated dependencies ... OK * checking whether the package can be unloaded cleanly ... OK * checking whether the namespace can be loaded with stated dependencies ... OK * checking whether the namespace can be unloaded cleanly ... OK * checking loading without being on the library search path ... OK * checking use of S3 registration ... OK * checking dependencies in R code ... OK * checking S3 generic/method consistency ... OK * checking replacement functions ... OK * checking foreign function calls ... OK * checking R code for possible problems ... [33s/48s] OK * checking Rd files ... OK * checking Rd metadata ... OK * checking Rd line widths ... OK * checking Rd cross-references ... OK * checking for missing documentation entries ... OK * checking for code/documentation mismatches ... OK * checking Rd \usage sections ... OK * checking Rd contents ... OK * checking for unstated dependencies in examples ... OK * checking contents of ‘data’ directory ... OK * checking data for non-ASCII characters ... OK * checking LazyData ... OK * checking data for ASCII and uncompressed saves ... OK * checking line endings in C/C++/Fortran sources/headers ... OK * checking pragmas in C/C++ headers and code ... OK * checking compilation flags used ... OK * checking compiled code ... OK * checking installed files from ‘inst/doc’ ... OK * checking files in ‘vignettes’ ... OK * checking examples ... ERROR Running examples in ‘Data2LD-Ex.R’ failed The error most likely occurred in: > ### Name: Data2LD > ### Title: Evaluate the mean of squared errors data-fitting criterion and > ### its gradient for a system of linear differential equations. > ### Aliases: Data2LD > > ### ** Examples > > # > # Example 1: The refinery data > # > N <- 194 > TimeData <- RefineryData[,1] > TrayData <- RefineryData[,2] > ValvData <- RefineryData[,3] > # Define the List array containing the tray data > TrayList <- list(argvals=RefineryData[,1], y=RefineryData[,2]) > TrayDataList <- vector("list",1) > TrayDataList[[1]] <- TrayList > # construct the basis object for tray variable > # Order 5 spline basis with four knots at the 67 > # to allow discontinuity in the first derivative > # and 15 knots between 67 and 193 > Traynorder <- 5 > Traybreaks <- c(0, rep(67,3), seq(67, 193, len=15)) > Traynbasis <- 22 > TrayBasis <- create.bspline.basis(c(0,193), Traynbasis, Traynorder, + Traybreaks) > # Set up the basis list for the tray variable > TrayBasisList <- vector("list",1) > TrayBasisList[[1]] <- TrayBasis > # Both alpha and beta coefficient functions will be constant. > # Define the constant basis > conbasis <- create.constant.basis(c(0,193)) > betafdPar <- fdPar(conbasis) > alphafdPar <- fdPar(conbasis) > # Construct a step basis (order 1) and valve level > Valvbreaks <- c(0,67,193) > Valvnbasis <- 2 > Valvnorder <- 1 > Valvbasis <- create.bspline.basis(c(0,193), Valvnbasis, Valvnorder, Valvbreaks) > # smooth the valve data > Valvfd <- smooth.basis(TimeData, ValvData, Valvbasis)$fd > # Set up the model list for the tray variable > # Define single homogeneous term > # Xterm Fields: funobj parvec estimate variable deriv. factor > XTerm <- make.Xterm(betafdPar, 0.04, TRUE, 1, 0, -1) > XList <- vector("list", 1) > XList[[1]] <- XTerm > # Define the single forcing term > # Fterm Fields: funobj parvec estimate Ufd factor > FTerm <- make.Fterm(alphafdPar, 1.0, TRUE, Valvfd, 1) > FList <- vector("list", 1) > FList[[1]] <- FTerm > # Define the single differential equation in the model > TrayVariable <- make.Variable(XList=XList, FList=FList, + name="Tray level", order=1) > # Set up the model List array > TrayModelList <- vector("list",1) > TrayModelList[[1]] <- TrayVariable > # Run a check on TrayVariableList and make the modelList object > checkModelList <- checkModel(TrayBasisList, TrayModelList, summarywrd=TRUE) ---------------------------------------------------------------------- Variable 1 Tray level , order = 1 , weight = 1 Homogenous term(s): Homogenous term 1 , variable 1 , derivative = 0 , factor = -1 Parameter vector position(s): 1 Parameter vector value(s): All values = 0.04 Coefficient type is functional data object All parameters are estimated. ---------------------------------------- Forcing terms: Forcing term 1 , factor = 1 Parameter vector position(s): 2 Parameter vector value(s): All values = 1 Coefficient type is functional data object All parameters are estimated. ---------------------------------------------------------------------- > TrayModelList <- checkModelList$model > nparam <- checkModelList$nparam > # Evaluate the fit to the data given the initial parameter estimates (0 and 0) > # This also initializes the four-way tensors so that they are not re-computed > # for subsquent analyses. > rhoVec <- 0.5 > Data2LDList <- Data2LD(TrayDataList, TrayBasisList, TrayModelList, rhoVec) > MSE <- Data2LDList$MSE # Mean squared error for fit to data > DMSE <- Data2LDList$DpMSE # gradient with respect to parameter values > # > # Example 2: The head impact data > # > ImpactTime <- HeadImpactData[,2] # time in milliseconds > ImpactData <- HeadImpactData[,3]*100 # acceleration in millimeters/millisecond^2 > ImpactRng <- c(0,60) # Define range time for estimated model > # Define the List array containing the data > ImpactDataList1 <- list(argvals=ImpactTime, y=ImpactData) > ImpactDataList <- vector("list",1) > ImpactDataList[[1]] <- ImpactDataList1 > # Define a unit pulse function located at times 14-15 > Pulsebasis <- create.bspline.basis(ImpactRng, 3, 1, c(0,14,15,60)) > Pulsefd <- fd(matrix(c(0,1,0),3,1),Pulsebasis) > # Construct basis for output x(t), > # multiple knots at times 14 and 15. > # Order 6 spline basis, with three knots at the impact point and > # three knots at impact + delta to permit discontinuous first > # derivatives at these points > knots <- c(0,14,14,14,15,15,seq(15,60,len=11)) > norder <- 6 > nbasis <- 21 > ImpactBasis <- create.bspline.basis(ImpactRng,nbasis,norder,knots) > # plot the basis > ImpactTimefine <- seq(0,60,len=201) > ImpactBasisfine <- eval.basis(ImpactTimefine, ImpactBasis) > # set up basis list > ImpactBasisList <- vector("list",1) > ImpactBasisList[[1]] <- ImpactBasis > # Set up the constant basis, make three coefficients and check them > conbasis <- create.constant.basis(ImpactRng) > # Define the terms in the second order linear equation > # Define the two terms in the homogeneous part of the equation > # Xterm Fields: funobj parvec estimate variable deriv. factor > Xterm1 <- make.Xterm(conbasis, 1, TRUE, 1, 0, -1) > Xterm2 <- make.Xterm(conbasis, 1, TRUE, 1, 1, -1) > # Set up the XList vector of length two > XList <- vector("list",2) > XList[[1]] <- Xterm1 > XList[[2]] <- Xterm2 > # Define the forcing term > # Fterm Fields: funobj parvec estimate Ufd factor > Fterm <- make.Fterm(conbasis, 1.0, TRUE, Pulsefd, 1) > # Set up the forcing term list of length one > FList <- vector("list",1) > FList[[1]] <- Fterm > # Define the single differential equation in the model > ImpactVariable <- make.Variable(name="Impact", order=2, XList=XList, FList=FList) > # Define list of length one containing the equation definition > ImpactModelList=vector("list",1) > ImpactModelList[[1]] <- ImpactVariable > # Check the object for internal consistency and > # set up the model object > # Run a check on TrayVariableList and make the modelList object > checkModelList <- checkModel(ImpactBasisList, ImpactModelList, summarywrd=TRUE) ----------- FAILURE REPORT -------------- --- failure: length > 1 in coercion to logical --- --- srcref --- : --- package (from environment) --- fda --- call from context --- inprod(Xbasisw, Xbasisx, jw, jx) --- call from argument --- knotmult > rng[1] && knotmult < rng[2] --- R stacktrace --- where 1: inprod(Xbasisw, Xbasisx, jw, jx) where 2: Btensorfn(XbasisList, modelList) where 3: checkModel(ImpactBasisList, ImpactModelList, summarywrd = TRUE) --- value of length: 2 type: logical --- [1] TRUE TRUE --- function from context --- function (fdobj1, fdobj2 = NULL, Lfdobj1 = int2Lfd(0), Lfdobj2 = int2Lfd(0), rng = range1, wtfd = 0) { result1 <- fdchk(fdobj1) nrep1 <- result1[[1]] fdobj1 <- result1[[2]] coef1 <- fdobj1$coefs basisobj1 <- fdobj1$basis type1 <- basisobj1$type range1 <- basisobj1$rangeval if (is.null(fdobj2)) { tempfd <- fdobj1 tempbasis <- tempfd$basis temptype <- tempbasis$type temprng <- tempbasis$rangeval if (temptype == "bspline") { basis2 <- create.bspline.basis(temprng, 1, 1) } else { if (temptype == "fourier") basis2 <- create.fourier.basis(temprng, 1) else basis2 <- create.constant.basis(temprng) } fdobj2 <- fd(1, basis2) } result2 <- fdchk(fdobj2) nrep2 <- result2[[1]] fdobj2 <- result2[[2]] coef2 <- fdobj2$coefs basisobj2 <- fdobj2$basis type2 <- basisobj2$type range2 <- basisobj2$rangeval if (rng[1] < range1[1] || rng[2] > range1[2]) stop("Limits of integration are inadmissible.") if (is.fd(fdobj1) && is.fd(fdobj2) && type1 == "bspline" && type2 == "bspline" && is.eqbasis(basisobj1, basisobj2) && is.integer(Lfdobj1) && is.integer(Lfdobj2) && length(basisobj1$dropind) == 0 && length(basisobj1$dropind) == 0 && wtfd == 0 && all(rng == range1)) { inprodmat <- inprod.bspline(fdobj1, fdobj2, Lfdobj1$nderiv, Lfdobj2$nderiv) return(inprodmat) } Lfdobj1 <- int2Lfd(Lfdobj1) Lfdobj2 <- int2Lfd(Lfdobj2) iter <- 0 rngvec <- rng knotmult <- numeric(0) if (type1 == "bspline") knotmult <- knotmultchk(basisobj1, knotmult) if (type2 == "bspline") knotmult <- knotmultchk(basisobj2, knotmult) if (length(knotmult) > 0) { knotmult <- sort(unique(knotmult)) knotmult <- knotmult[knotmult > rng[1] && knotmult < rng[2]] rngvec <- c(rng[1], knotmult, rng[2]) } if ((all(c(coef1) == 0) || all(c(coef2) == 0))) return(matrix(0, nrep1, nrep2)) JMAX <- 15 JMIN <- 5 EPS <- 1e-04 inprodmat <- matrix(0, nrep1, nrep2) nrng <- length(rngvec) for (irng in 2:nrng) { rngi <- c(rngvec[irng - 1], rngvec[irng]) if (irng > 2) rngi[1] <- rngi[1] + 1e-10 if (irng < nrng) rngi[2] <- rngi[2] - 1e-10 iter <- 1 width <- rngi[2] - rngi[1] JMAXP <- JMAX + 1 h <- rep(1, JMAXP) h[2] <- 0.25 s <- array(0, c(JMAXP, nrep1, nrep2)) sdim <- length(dim(s)) fx1 <- eval.fd(rngi, fdobj1, Lfdobj1) fx2 <- eval.fd(rngi, fdobj2, Lfdobj2) if (!is.numeric(wtfd)) { wtd <- eval.fd(rngi, wtfd, 0) fx2 <- matrix(wtd, dim(wtd)[1], dim(fx2)[2]) * fx2 } s[1, , ] <- width * matrix(crossprod(fx1, fx2), nrep1, nrep2)/2 tnm <- 0.5 for (iter in 2:JMAX) { tnm <- tnm * 2 if (iter == 2) { x <- mean(rngi) } else { del <- width/tnm x <- seq(rngi[1] + del/2, rngi[2] - del/2, del) } fx1 <- eval.fd(x, fdobj1, Lfdobj1) fx2 <- eval.fd(x, fdobj2, Lfdobj2) if (!is.numeric(wtfd)) { wtd <- eval.fd(wtfd, x, 0) fx2 <- matrix(wtd, dim(wtd)[1], dim(fx2)[2]) * fx2 } chs <- width * matrix(crossprod(fx1, fx2), nrep1, nrep2)/tnm s[iter, , ] <- (s[iter - 1, , ] + chs)/2 if (iter >= 5) { ind <- (iter - 4):iter ya <- s[ind, , ] ya <- array(ya, c(5, nrep1, nrep2)) xa <- h[ind] absxa <- abs(xa) absxamin <- min(absxa) ns <- min((1:length(absxa))[absxa == absxamin]) cs <- ya ds <- ya y <- ya[ns, , ] ns <- ns - 1 for (m in 1:4) { for (i in 1:(5 - m)) { ho <- xa[i] hp <- xa[i + m] w <- (cs[i + 1, , ] - ds[i, , ])/(ho - hp) ds[i, , ] <- hp * w cs[i, , ] <- ho * w } if (2 * ns < 5 - m) { dy <- cs[ns + 1, , ] } else { dy <- ds[ns, , ] ns <- ns - 1 } y <- y + dy } ss <- y errval <- max(abs(dy)) ssqval <- max(abs(ss)) if (all(ssqval > 0)) { crit <- errval/ssqval } else { crit <- errval } if (crit < EPS && iter >= JMIN) break } s[iter + 1, , ] <- s[iter, , ] h[iter + 1] <- 0.25 * h[iter] if (iter == JMAX) warning("Failure to converge.") } inprodmat <- inprodmat + ss } if (length(dim(inprodmat) == 2)) { return(as.matrix(inprodmat)) } else { return(inprodmat) } } --- function search by body --- Function inprod in namespace fda has this body. ----------- END OF FAILURE REPORT -------------- Fatal error: length > 1 in coercion to logical * checking for unstated dependencies in vignettes ... OK * checking package vignettes in ‘inst/doc’ ... OK * checking re-building of vignette outputs ... [12s/20s] ERROR Error(s) in re-building vignettes: --- re-building ‘Data2LD.Rmd’ using rmarkdown ----------- FAILURE REPORT -------------- --- failure: length > 1 in coercion to logical --- --- srcref --- : --- package (from environment) --- fda --- call from context --- inprod(Xbasisw, Xbasisx, jw, jx) --- call from argument --- knotmult > rng[1] && knotmult < rng[2] --- R stacktrace --- where 1: inprod(Xbasisw, Xbasisx, jw, jx) where 2: Btensorfn(XbasisList, modelList) where 3: checkModel(cruiseBasisList, cruiseModelList) where 4: eval(expr, envir, enclos) where 5: eval(expr, envir, enclos) where 6: eval_with_user_handlers(expr, envir, enclos, user_handlers) where 7: withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)) where 8: withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler) where 9: handle(ev <- withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler)) where 10: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler))) where 11: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, debug = debug, last = i == length(out), use_try = stop_on_error != 2L, keep_warning = keep_warning, keep_message = keep_message, output_handler = output_handler, include_timing = include_timing) where 12: evaluate::evaluate(...) where 13: evaluate(code, envir = env, new_device = FALSE, keep_warning = !isFALSE(options$warning), keep_message = !isFALSE(options$message), stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)) where 14: in_dir(input_dir(), expr) where 15: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = !isFALSE(options$warning), keep_message = !isFALSE(options$message), stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))) where 16: eng_r(options) where 17: block_exec(params) where 18: call_block(x) where 19: process_group.block(group) where 20: process_group(group) where 21: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { setwd(wd) cat(res, sep = "\n", file = output %n% "") message("Quitting from lines ", paste(current_lines(i), collapse = "-"), " (", knit_concord$get("infile"), ") ") }) where 22: process_file(text, output) where 23: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet) where 24: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...) where 25: vweave_rmarkdown(...) where 26: engine$weave(file, quiet = quiet, encoding = enc) where 27: doTryCatch(return(expr), name, parentenv, handler) where 28: tryCatchOne(expr, names, parentenv, handlers[[1L]]) where 29: tryCatchList(expr, classes, parentenv, handlers) where 30: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) } outputs <- c(outputs, output) }, error = function(e) { thisOK <<- FALSE fails <<- c(fails, file) message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e))) }) where 31: tools:::buildVignettes(dir = "/data/gannet/ripley/R/packages/tests-LENGTH1/Data2LD.Rcheck/vign_test/Data2LD") --- value of length: 3 type: logical --- [1] TRUE TRUE TRUE --- function from context --- function (fdobj1, fdobj2 = NULL, Lfdobj1 = int2Lfd(0), Lfdobj2 = int2Lfd(0), rng = range1, wtfd = 0) { result1 <- fdchk(fdobj1) nrep1 <- result1[[1]] fdobj1 <- result1[[2]] coef1 <- fdobj1$coefs basisobj1 <- fdobj1$basis type1 <- basisobj1$type range1 <- basisobj1$rangeval if (is.null(fdobj2)) { tempfd <- fdobj1 tempbasis <- tempfd$basis temptype <- tempbasis$type temprng <- tempbasis$rangeval if (temptype == "bspline") { basis2 <- create.bspline.basis(temprng, 1, 1) } else { if (temptype == "fourier") basis2 <- create.fourier.basis(temprng, 1) else basis2 <- create.constant.basis(temprng) } fdobj2 <- fd(1, basis2) } result2 <- fdchk(fdobj2) nrep2 <- result2[[1]] fdobj2 <- result2[[2]] coef2 <- fdobj2$coefs basisobj2 <- fdobj2$basis type2 <- basisobj2$type range2 <- basisobj2$rangeval if (rng[1] < range1[1] || rng[2] > range1[2]) stop("Limits of integration are inadmissible.") if (is.fd(fdobj1) && is.fd(fdobj2) && type1 == "bspline" && type2 == "bspline" && is.eqbasis(basisobj1, basisobj2) && is.integer(Lfdobj1) && is.integer(Lfdobj2) && length(basisobj1$dropind) == 0 && length(basisobj1$dropind) == 0 && wtfd == 0 && all(rng == range1)) { inprodmat <- inprod.bspline(fdobj1, fdobj2, Lfdobj1$nderiv, Lfdobj2$nderiv) return(inprodmat) } Lfdobj1 <- int2Lfd(Lfdobj1) Lfdobj2 <- int2Lfd(Lfdobj2) iter <- 0 rngvec <- rng knotmult <- numeric(0) if (type1 == "bspline") knotmult <- knotmultchk(basisobj1, knotmult) if (type2 == "bspline") knotmult <- knotmultchk(basisobj2, knotmult) if (length(knotmult) > 0) { knotmult <- sort(unique(knotmult)) knotmult <- knotmult[knotmult > rng[1] && knotmult < rng[2]] rngvec <- c(rng[1], knotmult, rng[2]) } if ((all(c(coef1) == 0) || all(c(coef2) == 0))) return(matrix(0, nrep1, nrep2)) JMAX <- 15 JMIN <- 5 EPS <- 1e-04 inprodmat <- matrix(0, nrep1, nrep2) nrng <- length(rngvec) for (irng in 2:nrng) { rngi <- c(rngvec[irng - 1], rngvec[irng]) if (irng > 2) rngi[1] <- rngi[1] + 1e-10 if (irng < nrng) rngi[2] <- rngi[2] - 1e-10 iter <- 1 width <- rngi[2] - rngi[1] JMAXP <- JMAX + 1 h <- rep(1, JMAXP) h[2] <- 0.25 s <- array(0, c(JMAXP, nrep1, nrep2)) sdim <- length(dim(s)) fx1 <- eval.fd(rngi, fdobj1, Lfdobj1) fx2 <- eval.fd(rngi, fdobj2, Lfdobj2) if (!is.numeric(wtfd)) { wtd <- eval.fd(rngi, wtfd, 0) fx2 <- matrix(wtd, dim(wtd)[1], dim(fx2)[2]) * fx2 } s[1, , ] <- width * matrix(crossprod(fx1, fx2), nrep1, nrep2)/2 tnm <- 0.5 for (iter in 2:JMAX) { tnm <- tnm * 2 if (iter == 2) { x <- mean(rngi) } else { del <- width/tnm x <- seq(rngi[1] + del/2, rngi[2] - del/2, del) } fx1 <- eval.fd(x, fdobj1, Lfdobj1) fx2 <- eval.fd(x, fdobj2, Lfdobj2) if (!is.numeric(wtfd)) { wtd <- eval.fd(wtfd, x, 0) fx2 <- matrix(wtd, dim(wtd)[1], dim(fx2)[2]) * fx2 } chs <- width * matrix(crossprod(fx1, fx2), nrep1, nrep2)/tnm s[iter, , ] <- (s[iter - 1, , ] + chs)/2 if (iter >= 5) { ind <- (iter - 4):iter ya <- s[ind, , ] ya <- array(ya, c(5, nrep1, nrep2)) xa <- h[ind] absxa <- abs(xa) absxamin <- min(absxa) ns <- min((1:length(absxa))[absxa == absxamin]) cs <- ya ds <- ya y <- ya[ns, , ] ns <- ns - 1 for (m in 1:4) { for (i in 1:(5 - m)) { ho <- xa[i] hp <- xa[i + m] w <- (cs[i + 1, , ] - ds[i, , ])/(ho - hp) ds[i, , ] <- hp * w cs[i, , ] <- ho * w } if (2 * ns < 5 - m) { dy <- cs[ns + 1, , ] } else { dy <- ds[ns, , ] ns <- ns - 1 } y <- y + dy } ss <- y errval <- max(abs(dy)) ssqval <- max(abs(ss)) if (all(ssqval > 0)) { crit <- errval/ssqval } else { crit <- errval } if (crit < EPS && iter >= JMIN) break } s[iter + 1, , ] <- s[iter, , ] h[iter + 1] <- 0.25 * h[iter] if (iter == JMAX) warning("Failure to converge.") } inprodmat <- inprodmat + ss } if (length(dim(inprodmat) == 2)) { return(as.matrix(inprodmat)) } else { return(inprodmat) } } --- function search by body --- Function inprod in namespace fda has this body. ----------- END OF FAILURE REPORT -------------- Fatal error: length > 1 in coercion to logical * checking PDF version of manual ... OK * checking for non-standard things in the check directory ... OK * checking for detritus in the temp directory ... OK * DONE Status: 2 ERRORs See ‘/data/gannet/ripley/R/packages/tests-LENGTH1/Data2LD.Rcheck/00check.log’ for details. Command exited with non-zero status 1 Time 4:12.56, 149.01 + 14.63