Re: [Rd] non user-friendly error for chol2inv functions

From: Ted Harding <Ted.Harding_at_manchester.ac.uk>
Date: Fri, 29 Aug 2008 14:21:05 +0100 (BST)


On 29-Aug-08 13:00:01, Martin Maechler wrote:

>>>>>> "cd" == christophe dutang <dutangc_at_gmail.com>
>>>>>>     on Fri, 29 Aug 2008 14:28:42 +0200 writes:

>
> cd> Yes, I do not cast the first argument as a matrix with
> cd> as.matrix function.
> cd> Maybe we could detail the error message if the first
> cd> argument
> cd> is a numeric?
>
> cd> error(_("'a' is a numeric and must be coerced to a numeric
> cd> matrix"));
>
> Merci, Christophe. Yes, we *could* do that.
> Alternatively, I think I will just make it work in that case,
> since I see that
> qr(), chol(), svd(), solve() all
> treat a numeric (of length 1) as a 1 x 1 matrix automatically.

I was about to draw attention to this "inconsistency"! While one is about it, might it not be useful also to do the converse: Treat a 1x1 matrix as a scalar in appropriate contexts?

E.g.

  a <- 4
  A <- matrix(4,1,1)
  B <- matrix(c(1,2,3,4),2,2)
  a*B
#      [,1] [,2]

# [1,] 4 12
# [2,] 8 16

  a+B

#      [,1] [,2]
# [1,]    5    7
# [2,]    6    8

  A*B
# Error in A * B : non-conformable arrays   A+B
# Error in A + B : non-conformable arrays

Ted.

>
> cd> Thanks for your answer
> De rien!
> Martin
>

> cd> 2008/8/29 Martin Maechler <maechler_at_stat.math.ethz.ch>
>
> >> >>>>> "cd" == christophe dutang <dutangc_at_gmail.com>
> >> >>>>> on Fri, 29 Aug 2008 12:44:18 +0200 writes:
> >>
> cd> Hi,
> cd> In function chol2inv with the option LINPACK set to false
> (default),
> >> it
> cd> raises an error when the matrix is 1x1 matrix (i.e. just a
> real)
> >> saying
> >>
> cd> 'a' must be a numeric matrix
> >>
> >> It is very helpful, but you have to read and understand it.
> >> I'm pretty sure you did not provide a 1 x 1 matrix.
> >>
> >> Here's an example showing how things works :
> >>
> >> > m <- matrix(4,1,1)
> >> > cm <- chol(m)
> >> > cm
> >> [,1]
> >> [1,] 2
> >> > chol2inv(cm)
> >> [,1]
> >> [1,] 0.25
> >> >
> >>
> >> Martin Maechler, ETH Zurich
> >>
> >>
> cd> This error is raised by the underlying C function
> (modLa_chol2inv in
> cd> function Lapack.c). Everything is normal, but I wonder if we
> could
> >> have
> cd> another behavior when we pass a 1x1 matrix. I spent time this
> >> morning
> cd> finding where was the error, and it was this "problem".
> >>
> cd> Thanks in advance
> >>
> cd> Christophe
> >>
> cd> [[alternative HTML version deleted]]
> >>
> cd> ______________________________________________
> cd> R-devel_at_r-project.org mailing list
> cd> https://stat.ethz.ch/mailman/listinfo/r-devel
> >>
>
> cd> [[alternative HTML version deleted]]
>
> cd> ______________________________________________
> cd> R-devel_at_r-project.org mailing list
> cd> https://stat.ethz.ch/mailman/listinfo/r-devel
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



E-Mail: (Ted Harding) <Ted.Harding_at_manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861
Date: 29-Aug-08                                       Time: 14:16:03
------------------------------ XFMail ------------------------------

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri 29 Aug 2008 - 13:23:02 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 Fri 29 Aug 2008 - 14:38:14 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