rpms/ufsparse/devel patch.UFsparse, NONE, 1.1 ufsparse.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
Quentin Spencer (qspencer)
fedora-extras-commits at redhat.com
Sun Oct 2 06:33:50 UTC 2005
Author: qspencer
Update of /cvs/extras/rpms/ufsparse/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19790/devel
Modified Files:
.cvsignore sources
Added Files:
patch.UFsparse ufsparse.spec
Log Message:
auto-import ufsparse-0.9-2 on branch devel from ufsparse-0.9-2.src.rpm
--- NEW FILE patch.UFsparse ---
*** UMFPACK/Source/umf_solve.c.orig 2005-02-01 23:53:11.815116040 +0100
--- UMFPACK/Source/umf_solve.c 2005-02-02 00:01:22.904346651 +0100
***************
*** 79,85 ****
double *Z2, *Y, *B2, *Rs ;
Int *Rperm, *Cperm, i, n, p, step, j, nz, status, p2, do_scale ;
#ifdef COMPLEX
! Int split ;
#endif
#ifndef NRECIPROCAL
Int do_recip = Numeric->do_recip ;
--- 79,86 ----
double *Z2, *Y, *B2, *Rs ;
Int *Rperm, *Cperm, i, n, p, step, j, nz, status, p2, do_scale ;
#ifdef COMPLEX
! Int AXsplit ;
! Int Bsplit ;
#endif
#ifndef NRECIPROCAL
Int do_recip = Numeric->do_recip ;
***************
*** 141,147 ****
return (UMFPACK_ERROR_argument_missing) ;
}
/* A, B, and X in split format if Az, Bz, and Xz present */
! split = SPLIT (Az) && SPLIT (Bz) && SPLIT (Xz) ;
Z = (Entry *) (SolveWork + 4*n) ; /* Entry Z [0..n-1] */
S = (Entry *) (SolveWork + 6*n) ; /* Entry S [0..n-1] */
Y = (double *) (SolveWork + 8*n) ; /* double Y [0..n-1] */
--- 142,148 ----
return (UMFPACK_ERROR_argument_missing) ;
}
/* A, B, and X in split format if Az, Bz, and Xz present */
! AXsplit = SPLIT (Az) || SPLIT(Xz);
Z = (Entry *) (SolveWork + 4*n) ; /* Entry Z [0..n-1] */
S = (Entry *) (SolveWork + 6*n) ; /* Entry S [0..n-1] */
Y = (double *) (SolveWork + 8*n) ; /* double Y [0..n-1] */
***************
*** 150,159 ****
}
else
{
! /* A is ignored, only look at X and B for split/packed cases */
! split = SPLIT (Bz) && SPLIT (Xz) ;
}
! if (split)
{
X = (Entry *) (SolveWork + 2*n) ; /* Entry X [0..n-1] */
}
--- 151,162 ----
}
else
{
! /* A is ignored, only look at X for split/packed cases */
! AXsplit = SPLIT(Xz);
}
! Bsplit = SPLIT (Bz);
!
! if (AXsplit)
{
X = (Entry *) (SolveWork + 2*n) ; /* Entry X [0..n-1] */
}
***************
*** 209,215 ****
for (p = 0 ; p < p2 ; p++)
{
/* Y [Ai [p]] += ABS (Ax [p]) ; */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
Y [Ai [p]] += d ;
}
--- 212,218 ----
for (p = 0 ; p < p2 ; p++)
{
/* Y [Ai [p]] += ABS (Ax [p]) ; */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
Y [Ai [p]] += d ;
}
***************
*** 219,225 ****
for (i = 0 ; i < n ; i++)
{
/* B2 [i] = ABS (B [i]) ; */
! ASSIGN (bi, Bx, Bz, i, split) ;
ABS (B2 [i], bi) ;
}
--- 222,228 ----
for (i = 0 ; i < n ; i++)
{
/* B2 [i] = ABS (B [i]) ; */
! ASSIGN (bi, Bx, Bz, i, Bsplit) ;
ABS (B2 [i], bi) ;
}
***************
*** 276,282 ****
/* multiply by the scale factors */
for (i = 0 ; i < n ; i++)
{
! ASSIGN (X [i], Bx, Bz, i, split) ;
SCALE (X [i], Rs [i]) ;
}
}
--- 279,285 ----
/* multiply by the scale factors */
for (i = 0 ; i < n ; i++)
{
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
SCALE (X [i], Rs [i]) ;
}
}
***************
*** 286,292 ****
/* divide by the scale factors */
for (i = 0 ; i < n ; i++)
{
! ASSIGN (X [i], Bx, Bz, i, split) ;
SCALE_DIV (X [i], Rs [i]) ;
}
}
--- 289,295 ----
/* divide by the scale factors */
for (i = 0 ; i < n ; i++)
{
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
SCALE_DIV (X [i], Rs [i]) ;
}
}
***************
*** 302,308 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [Rperm [i]] ; */
! ASSIGN (W [i], Bx, Bz, Rperm [i], split) ;
}
}
}
--- 305,311 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [Rperm [i]] ; */
! ASSIGN (W [i], Bx, Bz, Rperm [i], Bsplit) ;
}
}
}
***************
*** 311,317 ****
for (i = 0 ; i < n ; i++)
{
/* Z [i] = B [i] ; */
! ASSIGN (Z [i], Bx, Bz, i, split) ;
}
flops += MULTSUB_FLOPS * nz ;
for (i = 0 ; i < n ; i++)
--- 314,320 ----
for (i = 0 ; i < n ; i++)
{
/* Z [i] = B [i] ; */
! ASSIGN (Z [i], Bx, Bz, i, Bsplit) ;
}
flops += MULTSUB_FLOPS * nz ;
for (i = 0 ; i < n ; i++)
***************
*** 321,327 ****
for (p = Ap [i] ; p < p2 ; p++)
{
/* Z [Ai [p]] -= Ax [p] * xi ; */
! ASSIGN (aij, Ax, Az, p, split) ;
MULT_SUB (Z [Ai [p]], aij, xi) ;
}
}
--- 324,330 ----
for (p = Ap [i] ; p < p2 ; p++)
{
/* Z [Ai [p]] -= Ax [p] * xi ; */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
MULT_SUB (Z [Ai [p]], aij, xi) ;
}
}
***************
*** 390,396 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, split) ;
Z2 [i] = 0. ;
}
flops += (MULT_FLOPS + DECREMENT_FLOPS + ABS_FLOPS + 1) * nz ;
--- 393,399 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, Bsplit) ;
Z2 [i] = 0. ;
}
flops += (MULT_FLOPS + DECREMENT_FLOPS + ABS_FLOPS + 1) * nz ;
***************
*** 403,409 ****
i = Ai [p] ;
/* axx = Ax [p] * xj ; */
! ASSIGN (aij, Ax, Az, p, split) ;
MULT (axx, aij, xj) ;
/* W [i] -= axx ; */
--- 406,412 ----
i = Ai [p] ;
/* axx = Ax [p] * xj ; */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
MULT (axx, aij, xj) ;
/* W [i] -= axx ; */
***************
*** 493,499 ****
/* yi += ABS (Ax [p]) * Rs [Ai [p]] ; */
/* note that abs (aij) is the same as
* abs (conj (aij)) */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
yi += (d * Rs [Ai [p]]) ;
}
--- 496,502 ----
/* yi += ABS (Ax [p]) * Rs [Ai [p]] ; */
/* note that abs (aij) is the same as
* abs (conj (aij)) */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
yi += (d * Rs [Ai [p]]) ;
}
***************
*** 513,519 ****
/* yi += ABS (Ax [p]) / Rs [Ai [p]] ; */
/* note that abs (aij) is the same as
* abs (conj (aij)) */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
yi += (d / Rs [Ai [p]]) ;
}
--- 516,522 ----
/* yi += ABS (Ax [p]) / Rs [Ai [p]] ; */
/* note that abs (aij) is the same as
* abs (conj (aij)) */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
yi += (d / Rs [Ai [p]]) ;
}
***************
*** 534,540 ****
/* yi += ABS (Ax [p]) ; */
/* note that abs (aij) is the same as
* abs (conj (aij)) */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
yi += d ;
}
--- 537,543 ----
/* yi += ABS (Ax [p]) ; */
/* note that abs (aij) is the same as
* abs (conj (aij)) */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
yi += d ;
}
***************
*** 546,552 ****
for (i = 0 ; i < n ; i++)
{
/* B2 [i] = ABS (B [i]) ; */
! ASSIGN (bi, Bx, Bz, i, split) ;
ABS (B2 [i], bi) ;
}
--- 549,555 ----
for (i = 0 ; i < n ; i++)
{
/* B2 [i] = ABS (B [i]) ; */
! ASSIGN (bi, Bx, Bz, i, Bsplit) ;
ABS (B2 [i], bi) ;
}
***************
*** 568,574 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [Cperm [i]] ; */
! ASSIGN (W [i], Bx, Bz, Cperm [i], split) ;
}
}
else
--- 571,577 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [Cperm [i]] ; */
! ASSIGN (W [i], Bx, Bz, Cperm [i], Bsplit) ;
}
}
else
***************
*** 577,583 ****
for (i = 0 ; i < n ; i++)
{
/* Z [i] = B [i] ; */
! ASSIGN (Z [i], Bx, Bz, i, split) ;
}
flops += MULTSUB_FLOPS * nz ;
for (i = 0 ; i < n ; i++)
--- 580,586 ----
for (i = 0 ; i < n ; i++)
{
/* Z [i] = B [i] ; */
! ASSIGN (Z [i], Bx, Bz, i, Bsplit) ;
}
flops += MULTSUB_FLOPS * nz ;
for (i = 0 ; i < n ; i++)
***************
*** 587,593 ****
for (p = Ap [i] ; p < p2 ; p++)
{
/* zi -= conjugate (Ax [p]) * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, split) ;
MULT_SUB_CONJ (zi, X [Ai [p]], aij) ;
}
Z [i] = zi ;
--- 590,596 ----
for (p = Ap [i] ; p < p2 ; p++)
{
/* zi -= conjugate (Ax [p]) * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, Bsplit) ;
MULT_SUB_CONJ (zi, X [Ai [p]], aij) ;
}
Z [i] = zi ;
***************
*** 696,708 ****
for (i = 0 ; i < n ; i++)
{
/* wi = B [i] ; */
! ASSIGN (wi, Bx, Bz, i, split) ;
z2i = 0. ;
p2 = Ap [i+1] ;
for (p = Ap [i] ; p < p2 ; p++)
{
/* axx = conjugate (Ax [p]) * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, split) ;
MULT_CONJ (axx, X [Ai [p]], aij) ;
/* wi -= axx ; */
--- 699,711 ----
for (i = 0 ; i < n ; i++)
{
/* wi = B [i] ; */
! ASSIGN (wi, Bx, Bz, i, Bsplit) ;
z2i = 0. ;
p2 = Ap [i+1] ;
for (p = Ap [i] ; p < p2 ; p++)
{
/* axx = conjugate (Ax [p]) * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
MULT_CONJ (axx, X [Ai [p]], aij) ;
/* wi -= axx ; */
***************
*** 766,772 ****
/* yi += ABS (Ax [p]) * Rs [Ai [p]] ; */
/* note that A.' is the array transpose,
* so no conjugate */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
yi += (d * Rs [Ai [p]]) ;
}
--- 769,775 ----
/* yi += ABS (Ax [p]) * Rs [Ai [p]] ; */
/* note that A.' is the array transpose,
* so no conjugate */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
yi += (d * Rs [Ai [p]]) ;
}
***************
*** 786,792 ****
/* yi += ABS (Ax [p]) / Rs [Ai [p]] ; */
/* note that A.' is the array transpose,
* so no conjugate */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
yi += (d / Rs [Ai [p]]) ;
}
--- 789,795 ----
/* yi += ABS (Ax [p]) / Rs [Ai [p]] ; */
/* note that A.' is the array transpose,
* so no conjugate */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
yi += (d / Rs [Ai [p]]) ;
}
***************
*** 807,813 ****
/* yi += ABS (Ax [p]) */
/* note that A.' is the array transpose,
* so no conjugate */
! ASSIGN (aij, Ax, Az, p, split) ;
ABS (d, aij) ;
yi += d ;
}
--- 810,816 ----
/* yi += ABS (Ax [p]) */
/* note that A.' is the array transpose,
* so no conjugate */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
ABS (d, aij) ;
yi += d ;
}
***************
*** 819,825 ****
for (i = 0 ; i < n ; i++)
{
/* B2 [i] = ABS (B [i]) ; */
! ASSIGN (bi, Bx, Bz, i, split) ;
ABS (B2 [i], bi) ;
}
--- 822,828 ----
for (i = 0 ; i < n ; i++)
{
/* B2 [i] = ABS (B [i]) ; */
! ASSIGN (bi, Bx, Bz, i, Bsplit) ;
ABS (B2 [i], bi) ;
}
***************
*** 841,847 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [Cperm [i]] ; */
! ASSIGN (W [i], Bx, Bz, Cperm [i], split) ;
}
}
else
--- 844,850 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [Cperm [i]] ; */
! ASSIGN (W [i], Bx, Bz, Cperm [i], Bsplit) ;
}
}
else
***************
*** 850,856 ****
for (i = 0 ; i < n ; i++)
{
/* Z [i] = B [i] ; */
! ASSIGN (Z [i], Bx, Bz, i, split) ;
}
flops += MULTSUB_FLOPS * nz ;
for (i = 0 ; i < n ; i++)
--- 853,859 ----
for (i = 0 ; i < n ; i++)
{
/* Z [i] = B [i] ; */
! ASSIGN (Z [i], Bx, Bz, i, Bsplit) ;
}
flops += MULTSUB_FLOPS * nz ;
for (i = 0 ; i < n ; i++)
***************
*** 860,866 ****
for (p = Ap [i] ; p < p2 ; p++)
{
/* zi -= Ax [p] * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, split) ;
MULT_SUB (zi, aij, X [Ai [p]]) ;
}
Z [i] = zi ;
--- 863,869 ----
for (p = Ap [i] ; p < p2 ; p++)
{
/* zi -= Ax [p] * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
MULT_SUB (zi, aij, X [Ai [p]]) ;
}
Z [i] = zi ;
***************
*** 969,981 ****
for (i = 0 ; i < n ; i++)
{
/* wi = B [i] ; */
! ASSIGN (wi, Bx, Bz, i, split) ;
z2i = 0. ;
p2 = Ap [i+1] ;
for (p = Ap [i] ; p < p2 ; p++)
{
/* axx = Ax [p] * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, split) ;
MULT (axx, aij, X [Ai [p]]) ;
/* wi -= axx ; */
--- 972,984 ----
for (i = 0 ; i < n ; i++)
{
/* wi = B [i] ; */
! ASSIGN (wi, Bx, Bz, i, Bsplit) ;
z2i = 0. ;
p2 = Ap [i+1] ;
for (p = Ap [i] ; p < p2 ; p++)
{
/* axx = Ax [p] * X [Ai [p]] ; */
! ASSIGN (aij, Ax, Az, p, AXsplit) ;
MULT (axx, aij, X [Ai [p]]) ;
/* wi -= axx ; */
***************
*** 1011,1017 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [Rperm [i]] ; */
! ASSIGN (X [i], Bx, Bz, Rperm [i], split) ;
}
flops = UMF_lsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
--- 1014,1020 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [Rperm [i]] ; */
! ASSIGN (X [i], Bx, Bz, Rperm [i], Bsplit) ;
}
flops = UMF_lsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
***************
*** 1027,1033 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, split) ;
}
flops = UMF_lsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
--- 1030,1036 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_lsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
***************
*** 1043,1049 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, split) ;
}
flops = UMF_lhsolve (Numeric, W, Pattern) ;
for (i = 0 ; i < n ; i++)
--- 1046,1052 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_lhsolve (Numeric, W, Pattern) ;
for (i = 0 ; i < n ; i++)
***************
*** 1063,1069 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, split) ;
}
flops = UMF_ltsolve (Numeric, W, Pattern) ;
for (i = 0 ; i < n ; i++)
--- 1066,1072 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_ltsolve (Numeric, W, Pattern) ;
for (i = 0 ; i < n ; i++)
***************
*** 1083,1089 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, split) ;
}
flops = UMF_lhsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
--- 1086,1092 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_lhsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
***************
*** 1099,1105 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, split) ;
}
flops = UMF_ltsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
--- 1102,1108 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_ltsolve (Numeric, X, Pattern) ;
status = UMFPACK_OK ;
***************
*** 1115,1121 ****
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, split) ;
}
flops = UMF_usolve (Numeric, W, Pattern) ;
for (i = 0 ; i < n ; i++)
--- 1118,1124 ----
for (i = 0 ; i < n ; i++)
{
/* W [i] = B [i] ; */
! ASSIGN (W [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_usolve (Numeric, W, Pattern) ;
for (i = 0 ; i < n ; i++)
***************
*** 1134,1140 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, split) ;
}
flops = UMF_usolve (Numeric, X, Pattern) ;
--- 1137,1143 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_usolve (Numeric, X, Pattern) ;
***************
*** 1149,1155 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [Cperm [i]] ; */
! ASSIGN (X [i], Bx, Bz, Cperm [i], split) ;
}
flops = UMF_uhsolve (Numeric, X, Pattern) ;
--- 1152,1158 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [Cperm [i]] ; */
! ASSIGN (X [i], Bx, Bz, Cperm [i], Bsplit) ;
}
flops = UMF_uhsolve (Numeric, X, Pattern) ;
***************
*** 1164,1170 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [Cperm [i]] ; */
! ASSIGN (X [i], Bx, Bz, Cperm [i], split) ;
}
flops = UMF_utsolve (Numeric, X, Pattern) ;
--- 1167,1173 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [Cperm [i]] ; */
! ASSIGN (X [i], Bx, Bz, Cperm [i], Bsplit) ;
}
flops = UMF_utsolve (Numeric, X, Pattern) ;
***************
*** 1179,1185 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, split) ;
}
flops = UMF_uhsolve (Numeric, X, Pattern) ;
--- 1182,1188 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_uhsolve (Numeric, X, Pattern) ;
***************
*** 1194,1200 ****
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, split) ;
}
flops = UMF_utsolve (Numeric, X, Pattern) ;
--- 1197,1203 ----
for (i = 0 ; i < n ; i++)
{
/* X [i] = B [i] ; */
! ASSIGN (X [i], Bx, Bz, i, Bsplit) ;
}
flops = UMF_utsolve (Numeric, X, Pattern) ;
***************
*** 1206,1212 ****
#ifdef COMPLEX
/* copy the solution back, from Entry X [ ] to double Xx [ ] and Xz [ ] */
! if (split)
{
for (i = 0 ; i < n ; i++)
{
--- 1209,1215 ----
#ifdef COMPLEX
/* copy the solution back, from Entry X [ ] to double Xx [ ] and Xz [ ] */
! if (AXsplit)
{
for (i = 0 ; i < n ; i++)
{
--- NEW FILE ufsparse.spec ---
Name: ufsparse
Version: 0.9
Release: 2
Summary: University of Florida sparse matrix libraries
Group: System Environment/Libraries
License: Distributable
URL: http://www.cise.ufl.edu/research/sparse/umfpack/
Source0: http://www.cise.ufl.edu/research/sparse/beta/Aug31_2005/UFsparse.tar.gz
Patch0: patch.UFsparse
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Obsoletes: umfpack
%description
ufsparse is a collection of libraries for computations involving sparse
matrices. The package includes the following libraries:
1. AMD approximate minimum degree ordering
2. COLAMD column approximate minimum degree ordering
3. CCOLAMD constrained column approximate minimum degree ordering
4. KLU sparse LU factorization, primarily for circuit simulation
5. UMFPACK sparse LU factorization
Note that an additional library, CHOLMOD (sparse Cholesky factorization),
is part of the source package, but is not compiled because it requires
an external library METIS, which is distributed under non-free licensing
terms that make it ineligible for inclusion in Fedora Extras.
%package devel
Summary: Development headers and files for UFSparse
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
BuildRequires: blas-devel
Obsoletes: umfpack-devel
%description devel
The ufsparse-devel package contains files needed for developing
applications which use the ufsparse libraries.
%prep
%setup -q -n UFsparse
%patch0 -p0
%build
%define amd_version 1.2
%define amd_version_major 1
mkdir Devel
mkdir Doc
mkdir Lib
mkdir Include
pushd AMD
pushd Source
make -f Makefile CFLAGS="$RPM_OPT_FLAGS -fPIC"
gcc -shared -Wl,-soname,libamd.so.%{amd_version_major} -o ../Lib/libamd.so.%{amd_version} `ls *.o`
popd
cp Lib/*.a Lib/*.so* ../Lib
cp Include/*.h ../Include
mkdir ../Doc/AMD/
cp README.txt Doc/License Doc/ChangeLog ../Doc/AMD/
mkdir ../Devel/AMD/
cp Doc/*.pdf ../Devel/AMD/
popd
pushd Lib
ln -sf libamd.so.%{amd_version} libamd.so.%{amd_version_major}
ln -sf libamd.so.%{amd_version} libamd.so
popd
%define ccolamd_version 1.0
%define ccolamd_version_major 1
pushd CCOLAMD
make -f Makefile CFLAGS="$RPM_OPT_FLAGS -fPIC"
gcc -shared -Wl,-soname,libccolamd.so.%{ccolamd_version_major} -o libccolamd.so.%{ccolamd_version} `ls *.o`
cp *.a *.so* ../Lib
cp *.h ../Include
mkdir ../Doc/CCOLAMD/
cp README.txt lesser.txt ChangeLog ../Doc/CCOLAMD
popd
pushd Lib
ln -sf libccolamd.so.%{ccolamd_version} libccolamd.so.%{ccolamd_version_major}
ln -sf libccolamd.so.%{ccolamd_version} libccolamd.so
popd
### The code below can be used to compile the cholmod library, but it is
### disabled because it requires the METIS library, which has a non-free
### license, and therefore can not be included in Fedora Extras.
#%define cholmod_version 0.6
#%define cholmod_version_major 0
#pushd CHOLMOD
# pushd Lib
# make -f Makefile CFLAGS="$RPM_OPT_FLAGS -I/usr/include/metis -fPIC"
# gcc -shared -Wl,-soname,libcholmod.so.%{cholmod_version_major} -o ../Lib/libcholmod.so.%{cholmod_version} `ls *.o`
# popd
# cp Lib/*.a Lib/*.so* ../Lib
# cp Include/*.h ../Include
# mkdir ../Doc/CHOLMOD
# cp README.txt ../Doc/CHOLMOD/
# cp Cholesky/License.txt ../Doc/CHOLMOD/Cholesky_License.txt
# cp Core/License.txt ../Doc/CHOLMOD/Core_License.txt
# cp MatrixOps/License.txt ../Doc/CHOLMOD/MatrixOps_License.txt
# cp Partition/License.txt ../Doc/CHOLMOD/Partition_License.txt
# cp Supernodal/License.txt ../Doc/CHOLMOD/Supernodal_License.txt
# mkdir ../Devel/CHOLMOD/
# cp Doc/*.pdf ../Devel/CHOLMOD/
#popd
#pushd Lib
# ln -sf libcholmod.so.%{cholmod_version} libcholmod.so.%{cholmod_version_major}
# ln -sf libcholmod.so.%{cholmod_version} libcholmod.so
#popd
%define colamd_version 2.4
%define colamd_version_major 2
pushd COLAMD
make -f Makefile CFLAGS="$RPM_OPT_FLAGS -fPIC" library
gcc -shared -Wl,-soname,libcolamd.so.%{colamd_version_major} -o libcolamd.so.%{colamd_version} `ls *.o`
cp *.a *.so* ../Lib
cp *.h ../Include
mkdir ../Doc/COLAMD/
cp README.txt ChangeLog ../Doc/COLAMD
popd
pushd Lib
ln -sf libcolamd.so.%{colamd_version} libcolamd.so.%{colamd_version_major}
ln -sf libcolamd.so.%{colamd_version} libcolamd.so
popd
%define ldl_version 1.2
%define ldl_version_major 1
pushd LDL
make -f Makefile CFLAGS="$RPM_OPT_FLAGS -fPIC" libldl.a
gcc -shared -Wl,-soname,libldl.so.%{ldl_version_major} -o libldl.so.%{ldl_version} `ls *.o`
cp *.a *.so* ../Lib
cp *.h ../Include
mkdir ../Doc/LDL/
cp README.txt ChangeLog lesser.txt ../Doc/LDL/
mkdir ../Devel/LDL/
cp *.pdf *.ps ../Devel/LDL/
popd
pushd Lib
ln -sf libldl.so.%{ldl_version} libldl.so.%{ldl_version_major}
ln -sf libldl.so.%{ldl_version} libldl.so
popd
%define umfpack_version 4.5
%define umfpack_version_major 4
pushd UMFPACK
pushd Source
make -f Makefile CFLAGS="$RPM_OPT_FLAGS -fPIC"
gcc -shared -Wl,-soname,libumfpack.so.%{umfpack_version_major} -o ../Lib/libumfpack.so.%{umfpack_version} `ls *.o` -lblas -lm
popd
cp Lib/*.a Lib/*.so* ../Lib
cp Include/*.h ../Include
mkdir ../Doc/UMFPACK
cp Doc/License Doc/ChangeLog Doc/lesser.txt README.txt ../Doc/UMFPACK
mkdir ../Devel/UMFPACK/
cp Doc/*.pdf ../Devel/UMFPACK/
popd
pushd Lib
ln -sf libumfpack.so.%{umfpack_version} libumfpack.so.%{umfpack_version_major}
ln -sf libumfpack.so.%{umfpack_version} libumfpack.so
popd
%install
rm -rf ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
mkdir -p ${RPM_BUILD_ROOT}%{_includedir}/%{name}
pushd Lib
for f in *.a *.so*; do
cp -a $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done
popd
pushd Include
for f in *.h; do
cp -a $f ${RPM_BUILD_ROOT}%{_includedir}/%{name}/$f
done
popd
%clean
rm -rf ${RPM_BUILD_ROOT}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc Doc/*
%{_libdir}/lib*.so.*
%files devel
%defattr(-,root,root)
%doc Devel/*
%{_includedir}/%{name}
%{_libdir}/lib*.a
%{_libdir}/lib*.so
%changelog
* Sat Oct 01 2005 Quentin Spencer <qspencer at users.sourceforge.net> 0.9-2
- Modify description, other modifications for import into FE.
* Tue Sep 08 2005 David Bateman <dbateman at free.fr> 0.9-1
- First version.
Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/ufsparse/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore 2 Oct 2005 06:30:14 -0000 1.1
+++ .cvsignore 2 Oct 2005 06:33:48 -0000 1.2
@@ -0,0 +1 @@
+UFsparse.tar.gz
Index: sources
===================================================================
RCS file: /cvs/extras/rpms/ufsparse/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources 2 Oct 2005 06:30:14 -0000 1.1
+++ sources 2 Oct 2005 06:33:48 -0000 1.2
@@ -0,0 +1 @@
+c34193f9b8c7376bce0d17f214f40f6e UFsparse.tar.gz
More information about the fedora-extras-commits
mailing list