similar to: Why is the diag function so slow (for extraction)?

Displaying 20 results from an estimated 20000 matches similar to: "Why is the diag function so slow (for extraction)?"

2015 May 13
1
Why is the diag function so slow (for extraction)?
As kindly pointed out to me (oh my decaying gray matter), is.object() is better suited for this test; $ svn diff src/library/base/R/diag.R Index: src/library/base/R/diag.R =================================================================== --- src/library/base/R/diag.R (revision 68345) +++ src/library/base/R/diag.R (working copy) @@ -23,9 +23,11 @@ stop("'nrow' or
2015 May 12
2
Why is the diag function so slow (for extraction)?
>>>>> Steve Bronder <sbronder at stevebronder.com> >>>>> on Thu, 7 May 2015 11:49:49 -0400 writes: > Is it possible to replace c() with .subset()? It would be possible, but I think "entirely" wrong. .subset() is documented to be an internal function not to be used "lightly" and more to the point it is documented to *NOT*
2015 May 13
0
Why is the diag function so slow (for extraction)?
Along Luke's lines, would(n't) it be enough to look for existence of attribute 'class' to decide whether to dispatch or not, i.e. if c() is needed or not? Even without .subset(), there is a remarkable improvement. I think it's worth condition the code on dispatch or not. For example: [HB-X201]{hb}: svn diff diag.R Index: diag.R
2015 May 04
2
Why is the diag function so slow (for extraction)?
(I asked this question on StackOverflow <http://stackoverflow.com/q/30035939/1191259> a short time ago; sorry if you're seeing it again. Feel free to answer there as well if you like. The code formatting and such on that site can be nice.) I benchmarked matrix and vector subsetting to extract the diagonal of a square matrix against the diag() function, and the latter lost by a wide
2015 May 05
3
Why is the diag function so slow (for extraction)?
Looks like the c(x)[...] bit used to be as.matrix(x)[...]. Not sure why the change was made many years ago, but this was before names were handled explicitly. It would definitely be better to not force the duplicate, at least in the case where we are sure c() and [ would not dispatch. Best, luke On Mon, 4 May 2015, peter dalgaard wrote: > >> On 04 May 2015, at 19:59 , franknarf
2015 May 07
0
Why is the diag function so slow (for extraction)?
Is it possible to replace c() with .subset()? Example below #### #### library(microbenchmark) diag2 <- function(x,nrow, ncol){ if (is.matrix(x)) { if (nargs() > 1L) stop("'nrow' or 'ncol' cannot be specified when 'x' is a matrix") if ((m <- min(dim(x))) == 0L) return(vector(typeof(x), 0L)) # replace this part y <-
2015 May 04
0
Why is the diag function so slow (for extraction)?
> On 04 May 2015, at 19:59 , franknarf <by.hook.or at gmail.com> wrote: > > But I'm still wondering why diag() uses c()...? With it being so slow, I'd > be inclined to write a qdiag() without the c() and just use that the next > time I need matrix algebra. Any insight would be appreciated; thanks! Well, there are two possibilities: Either it is deliberate or it
2014 Aug 11
0
diag(x, n) not preserving integer and logical x
Martin Maechler wrote: > diag(x) preserves the storage mode of x for 'complex' and > 'double' precision, but converts integer and logicals to double : Duncan Murdoch wrote: > I think the change to preserve integer makes sense, but preserving > logical does not. A diagonal matrix has zeros off the diagonal, and > they are not logical. Having diag() sometimes
2010 Oct 18
1
make error for R 2.13.0 (and 2.12.0)
Regarding Tengfei Yin's post about an error trying to install "cluster" in 2.13.0, I have gotten an error with this package when trying to install the released version of 2.12.0. Here is the output on an Ubuntu Linux system: begin installing recommended package cluster * installing *source* package 'cluster' ... ** libs make[3]: Entering directory
2014 Jun 23
2
Unfixed bugs in latest R-patched
A new version of pqR is now available at pqR-project.org, which fixes several bugs that are also present in the latest R Core patch release (r66002). A number of bugs found previously during pqR development are also unfixed in the latest R Core release. Here is the list of these bugs that are unfixed in r66002 (including documentation deficiencies), taken from the pqR bug fix and documentation
2017 Mar 19
3
RFC: (in-principle) native unquoting for standard evaluation
Michael Lawrence (as last in long series of posters)... > Yes, it would bind the language object to the environment, like an > R-level promise (but "promise" of course refers specifically to just > _lazy_ evaluation). > > For the uqs() thing, expanding calls like that is somewhat orthogonal > to NSE. It would be nice in general to be able to write something like >
2015 Jun 13
2
Lack of protection bug in current R release candidate
The current R release candidate has a lack of protect bug (of very long standing) with respect to the R_print.na_string and R_print.na_string_noquote fields of the static R_print structure declared in Print.h. This shows up very occassionally as incorrect output from the following lines in reg-tests-2.R: x <- c("a", NA, "b") factor(x) factor(x, exclude="")
2015 Jun 17
1
Add-on argument in sample()
> Then the question would be if this test could be replaced with a new > argument to sample, e.g. expandSingle, which has TRUE as default for > backward compatibility, but FALSE if you dont want population to be > expanded to 1:population. It could certainly be useful in some cases, > but you still need to know about the expansion to use it. I think most > of these bugs
2010 Jan 07
1
"diag", "diag<-" and "[" , "[<-"
Dear all I have the following problem. M <- matrix(0,3,3) # dimension of M is dinamic and this can lead to the next subscript diag(M[1,1]) <- rep(100,1) #Error in `diag<-`(`*tmp*`, value = 100) : # only matrix diagonals can be replaced diag(M[1,1,drop=F]) <- rep(100,1) #Error in diag(M[1, 1, drop = F]) <- rep(100, 1) : # incorrect number of subscripts diag(M[2:3,1:2]) <-
2015 Jun 15
1
Lack of protection bug in current R release candidate
> > The current R release candidate has a lack of protect bug > > (of very long standing) > > [ but not really reported, right ? ] It's "long standing" because it exists in versions of R going back many years. > but the R 3.2.1 release candidate probably really cannot be > touched now, with something non-trivial like this. > > We'd be
2015 Aug 21
2
OpenMP problem with 64-bit Rtools
I've been getting pqR to work on windows systems, and in the process have discovered various problems with R core versions of R and with Rtools. One is with the implementation of OpenMP in 64-bit Rtools. This problem is in Rtools215 and Rtools33, and presumably all the ones in between. You can see the problem with the following test program: #include <stdio.h> #include <omp.h>
2024 Dec 04
3
Undocumented behaviour of diag when replacing the diagonal of a matrix?
Dear list, is anyone aware of the following behavious of diag when used to replace diagonals (plural!) of a matrix? Small example: The following is documented and clearly to be expected: A <- matrix(0, nrow = 5, ncol = 5) diag(A) <- 1; A BUT, what about the following? When executing the code of `diag<-` line by line, it throws errors. So why does it work? diag(A[-1, ]) <- 2; A
2018 May 08
1
Proposed speedup of ifelse
Hugh, (Note I speak for myself only and not for R-core) Thanks for looking into this. I think it's great to have community members that are interested in contributing to R and helping it continue to get better. And I think, and my local experiments bear out, that using anyNA as a fastpass condition does allow us to get a significant speedup over what's in there now. To do so, though, I
2012 May 26
2
[PATCH] Update diag/mbr instruction to match the current filename.
From: Jean-Christian de Rivaz <jc at eclis.ch> I suspect that some instructions about how to use the diag/mbr was not updated when the source file was renamed to handoff.S. Here is a simple proposition to fix that. Jean-Christian de Rivaz --- diag/mbr/README | 4 ++-- diag/mbr/handoff.S | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/diag/mbr/README
2006 Nov 05
1
diag()<- in Matrix?
Dear all, I am trying to use the Matrix package to do some calculations on rather large and sparse matrices. An example of such a matrix is given below. mig<-0.2 side<-10 np<-side^2 mig.mat<-matrix(0,np,np) diag(mig.mat[1:(np-side),(side+1):np])<-mig/4 diag(mig.mat[(side+1):np,1:(np-side)])<-mig/4 diag(mig.mat[-np,-1])<-mig/4