diff options
Diffstat (limited to 'packages/base/src/Internal/C/lapack-aux.c')
-rw-r--r-- | packages/base/src/Internal/C/lapack-aux.c | 54 |
1 files changed, 28 insertions, 26 deletions
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 | |||
1448 | 1448 | ||
1449 | //////////////////////// extract ///////////////////////////////// | 1449 | //////////////////////// extract ///////////////////////////////// |
1450 | 1450 | ||
1451 | #define EXTRACT_IMP \ | 1451 | #define EXTRACT_IMP { \ |
1452 | int i,j,si,sj,ni,nj; \ | 1452 | int i,j,si,sj,ni,nj; \ |
1453 | ni = modei ? in : ip[1]-ip[0]+1; \ | 1453 | ni = modei ? in : ip[1]-ip[0]+1; \ |
1454 | nj = modej ? jn : jp[1]-jp[0]+1; \ | 1454 | nj = modej ? jn : jp[1]-jp[0]+1; \ |
@@ -1461,33 +1461,35 @@ int transL(KLMAT(x),LMAT(t)) TRANS_IMP | |||
1461 | \ | 1461 | \ |
1462 | AT(r,i,j) = AT(m,si,sj); \ | 1462 | AT(r,i,j) = AT(m,si,sj); \ |
1463 | } \ | 1463 | } \ |
1464 | } \ | 1464 | } OK } |
1465 | OK | ||
1466 | |||
1467 | int extractD(int modei, int modej, KIVEC(i), KIVEC(j), KODMAT(m), ODMAT(r)) { | ||
1468 | EXTRACT_IMP | ||
1469 | } | ||
1470 | |||
1471 | int extractF(int modei, int modej, KIVEC(i), KIVEC(j), KOFMAT(m), OFMAT(r)) { | ||
1472 | EXTRACT_IMP | ||
1473 | } | ||
1474 | |||
1475 | int extractC(int modei, int modej, KIVEC(i), KIVEC(j), KOCMAT(m), OCMAT(r)) { | ||
1476 | EXTRACT_IMP | ||
1477 | } | ||
1478 | |||
1479 | int extractQ(int modei, int modej, KIVEC(i), KIVEC(j), KOQMAT(m), OQMAT(r)) { | ||
1480 | EXTRACT_IMP | ||
1481 | } | ||
1482 | |||
1483 | int extractI(int modei, int modej, KIVEC(i), KIVEC(j), KOIMAT(m), OIMAT(r)) { | ||
1484 | EXTRACT_IMP | ||
1485 | } | ||
1486 | 1465 | ||
1487 | int extractL(int modei, int modej, KIVEC(i), KIVEC(j), KOLMAT(m), OLMAT(r)) { | 1466 | #define EXTRACT(T) int extract##T(int modei, int modej, KIVEC(i), KIVEC(j), KO##T##MAT(m), O##T##MAT(r)) EXTRACT_IMP |
1488 | EXTRACT_IMP | 1467 | |
1489 | } | 1468 | EXTRACT(D) |
1469 | EXTRACT(F) | ||
1470 | EXTRACT(C) | ||
1471 | EXTRACT(Q) | ||
1472 | EXTRACT(I) | ||
1473 | EXTRACT(L) | ||
1474 | |||
1475 | //////////////////////// setRect ///////////////////////////////// | ||
1476 | |||
1477 | #define SETRECT(T) \ | ||
1478 | int setRect##T(int i, int j, KO##T##MAT(m), O##T##MAT(r)) { \ | ||
1479 | { TRAV(m,a,b) { \ | ||
1480 | int x = a+i, y = b+j; \ | ||
1481 | if(x>=0 && x<rr && y>=0 && y<rc) { \ | ||
1482 | AT(r,x,y) = AT(m,a,b); \ | ||
1483 | } \ | ||
1484 | } \ | ||
1485 | } OK } | ||
1490 | 1486 | ||
1487 | SETRECT(D) | ||
1488 | SETRECT(F) | ||
1489 | SETRECT(C) | ||
1490 | SETRECT(Q) | ||
1491 | SETRECT(I) | ||
1492 | SETRECT(L) | ||
1491 | 1493 | ||
1492 | //////////////////////// remap ///////////////////////////////// | 1494 | //////////////////////// remap ///////////////////////////////// |
1493 | 1495 | ||