From 717c680a4b65a2226b0dd6fc13f7c63e7bc0431d Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Sat, 13 Jun 2015 19:18:16 +0200 Subject: setRect, general luPacked' based on luST --- packages/base/src/Internal/C/lapack-aux.c | 54 ++++++++++++++++--------------- 1 file changed, 28 insertions(+), 26 deletions(-) (limited to 'packages/base/src/Internal/C') diff --git a/packages/base/src/Internal/C/lapack-aux.c b/packages/base/src/Internal/C/lapack-aux.c index e42889d..2843ab5 100644 --- a/packages/base/src/Internal/C/lapack-aux.c +++ b/packages/base/src/Internal/C/lapack-aux.c @@ -1448,7 +1448,7 @@ int transL(KLMAT(x),LMAT(t)) TRANS_IMP //////////////////////// extract ///////////////////////////////// -#define EXTRACT_IMP \ +#define EXTRACT_IMP { \ int i,j,si,sj,ni,nj; \ ni = modei ? in : ip[1]-ip[0]+1; \ nj = modej ? jn : jp[1]-jp[0]+1; \ @@ -1461,33 +1461,35 @@ int transL(KLMAT(x),LMAT(t)) TRANS_IMP \ AT(r,i,j) = AT(m,si,sj); \ } \ - } \ - OK - -int extractD(int modei, int modej, KIVEC(i), KIVEC(j), KODMAT(m), ODMAT(r)) { - EXTRACT_IMP -} - -int extractF(int modei, int modej, KIVEC(i), KIVEC(j), KOFMAT(m), OFMAT(r)) { - EXTRACT_IMP -} - -int extractC(int modei, int modej, KIVEC(i), KIVEC(j), KOCMAT(m), OCMAT(r)) { - EXTRACT_IMP -} - -int extractQ(int modei, int modej, KIVEC(i), KIVEC(j), KOQMAT(m), OQMAT(r)) { - EXTRACT_IMP -} - -int extractI(int modei, int modej, KIVEC(i), KIVEC(j), KOIMAT(m), OIMAT(r)) { - EXTRACT_IMP -} + } OK } -int extractL(int modei, int modej, KIVEC(i), KIVEC(j), KOLMAT(m), OLMAT(r)) { - EXTRACT_IMP -} +#define EXTRACT(T) int extract##T(int modei, int modej, KIVEC(i), KIVEC(j), KO##T##MAT(m), O##T##MAT(r)) EXTRACT_IMP + +EXTRACT(D) +EXTRACT(F) +EXTRACT(C) +EXTRACT(Q) +EXTRACT(I) +EXTRACT(L) + +//////////////////////// setRect ///////////////////////////////// + +#define SETRECT(T) \ +int setRect##T(int i, int j, KO##T##MAT(m), O##T##MAT(r)) { \ + { TRAV(m,a,b) { \ + int x = a+i, y = b+j; \ + if(x>=0 && x=0 && y