Re: [Rd] transpose of complex matrices in R

From: William Dunlap <wdunlap_at_tibco.com>
Date: Fri, 30 Jul 2010 12:58:33 -0700

> -----Original Message-----
> From: r-devel-bounces@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
>



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri 30 Jul 2010 - 20:04:03 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 01 Aug 2010 - 09:20:21 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive