From irederik m@iii@g oii oib@@et  Tue Apr 30 03:28:46 2019
From: irederik m@iii@g oii oib@@et (irederik m@iii@g oii oib@@et)
Date: Mon, 29 Apr 2019 18:28:46 -0700
Subject: [Rd] patch to improve matrix conformability error message
In-Reply-To: <20190405160536.GB13959@cocoa>
References: <20190405160536.GB13959@cocoa>
Message-ID: <20190430012846.qxov5i622l6osklu@localhost>

I think this is a good idea. Is there a reason why it got no interest?
Slippery slope?

Or maybe others were also just occupied trying to figure out how
Joshua's second message had timestamp earlier than his first message?

On Fri, Apr 05, 2019 at 12:05:36PM -0400, Joshua N Pritikin wrote:
>With this patch,
>
>> A <- matrix(1, 2, 2)
>> B <- matrix(2, 3, 2)
>> A %*% B
>Error in A %*% B :
>  non-conformable arguments of dimension (2, 2) and (3, 2)
>
>From 205b591d4d14b5ff667325fb233a6deb08314726 Mon Sep 17 00:00:00 2001
>From: Joshua Nathaniel Pritikin <jpritikin at pobox.com>
>Date: Fri, 5 Apr 2019 12:03:58 -0400
>Subject: [PATCH] Improve non-conformable arguments error message
>
>---
> src/main/array.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
>diff --git a/src/main/array.c b/src/main/array.c
>index 4b95e33..cedf627 100644
>--- a/src/main/array.c
>+++ b/src/main/array.c
>@@ -1350,15 +1350,18 @@ SEXP attribute_hidden do_matprod(SEXP call, SEXP op, SEXP args, SEXP rho)
>     if (PRIMVAL(op) == 0) {
> 	/* primitive, so use call */
> 	if (ncx != nry)
>-	    errorcall(call, _("non-conformable arguments"));
>+	  errorcall(call, _("non-conformable arguments of dimension (%d, %d) and (%d, %d)"),
>+		    nrx, ncx, nry, ncy);
>     }
>     else if (PRIMVAL(op) == 1) {
> 	if (nrx != nry)
>-	    error(_("non-conformable arguments"));
>+	  error(_("non-conformable arguments of dimension (%d, %d) and (%d, %d)"),
>+		nrx, ncx, nry, ncy);
>     }
>     else {
> 	if (ncx != ncy)
>-	    error(_("non-conformable arguments"));
>+	  error(_("non-conformable arguments of dimension (%d, %d) and (%d, %d)"),
>+		nrx, ncx, nry, ncy);
>     }
>
>     if (isComplex(CAR(args)) || isComplex(CADR(args)))
>-- 
>2.19.1
>
>______________________________________________
>R-devel at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] patch to improve matrix conformability error message
irederik m@iii@g oii oib@@et