[Rd] transpose of complex matrices in R

William Dunlap wdunlap at tibco.com
Fri Jul 30 21:58:33 CEST 2010


> -----Original Message-----
> From: r-devel-bounces at r-project.org 
> [mailto:r-devel-bounces at r-project.org] On Behalf Of Olaf Mersmann
> Sent: Friday, July 30, 2010 3:01 AM
> To: Robin Hankin
> Cc: R-devel at r-project.org; Martin Maechler
> Subject: Re: [Rd] transpose of complex matrices in R
> 
> Hi,
> 
> On 30.07.2010, at 11:35, Robin Hankin wrote:
> > 3.  Try to define a t.complex() function:
> > t.complex <- function(x){t(Conj(x))}
> > (also fails because of recursion)

The NextMethod() function exists to avoid
this sort of infinite recursion in S3 methods.
E.g.,
   t.complex <- function(x)NextMethod(Conj(x))
or
   t.complex<-function(x)Conj(NextMethod(x))
would do what you wanted.

Using NextMethod means you cannot call this as
   t.complex(nonComplexMatrix)
but I think that is generally a good thing.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 
> 
> Try this version:
> 
>   t.complex <- function(x) {
>     xx <- Conj(x)
>     .Internal(t.default(xx))
>   }
> 
> You get infinite recursion in your example because you keep 
> dispatching on the (complex) result of Conj(x) in t(Conj(x)). 
> I'm not sure if the use of .Internal in user code is 
> sanctioned but it does work for me.
> 
> Cheers,
> Olaf
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 



More information about the R-devel mailing list