[Rd] patch to improve matrix conformability error message
Joshua N Pritikin
jpr|t|k|n @end|ng |rom pobox@com
Fri Apr 5 18:05:36 CEST 2019
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 using 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
More information about the R-devel
mailing list