Karim Belabas on Mon, 29 Oct 2012 11:38:01 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Matrix positive? |
* Dirk Laurie [2012-10-29 11:08]: > What's the quick way of testing whether every element > of a matrix is positive? Since we want an "early abort" if an element is non-positive, I see no direct way. Here's a solution: matispositive(M) = { my (m,n); [m,n] = matsize(M); for(i=1,m, for(j=1,n, if (M[i,j] <= 0, return(0)))); return(1); } (requires pari-2.6 because of multiple assignment [m,n]=...; adapt for older versions) Cheers, K.B. P.S: One *might* overload comparison operators to act componentwise for vector matrices. Currently, we have ? matid(2) > 0 *** at top-level: matid(2)>0 *** ^-- *** _>_: forbidden comparison t_MAT (2x2) , t_INT. I don't like the idea (and it's inconsistent with the way == currently works: for matrices M == 2 tests whether M is twice the identity; and for a column vector, whether it is of the form [2, 0, ..., 0]~) -- Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17 Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50 351, cours de la Liberation http://www.math.u-bordeaux1.fr/~belabas/ F-33405 Talence (France) http://pari.math.u-bordeaux1.fr/ [PARI/GP] `