[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