Indexing into IV fixed. Runs systems now
This commit is contained in:
parent
ba3e97ca7d
commit
005972d659
@ -69,6 +69,8 @@ Data *data;
|
|||||||
int *levv;
|
int *levv;
|
||||||
int *levp;
|
int *levp;
|
||||||
int *levi;
|
int *levi;
|
||||||
|
/* veh test levpi */
|
||||||
|
int *levpi;
|
||||||
int *numa;
|
int *numa;
|
||||||
int *numb;
|
int *numb;
|
||||||
int *numv;
|
int *numv;
|
||||||
@ -175,6 +177,7 @@ Data *data;
|
|||||||
levv = ctalloc(int, num_levels);
|
levv = ctalloc(int, num_levels);
|
||||||
levp = ctalloc(int, num_levels);
|
levp = ctalloc(int, num_levels);
|
||||||
levi = ctalloc(int, num_levels);
|
levi = ctalloc(int, num_levels);
|
||||||
|
levpi = ctalloc(int, num_levels);
|
||||||
numa = ctalloc(int, num_levels);
|
numa = ctalloc(int, num_levels);
|
||||||
numb = ctalloc(int, num_levels);
|
numb = ctalloc(int, num_levels);
|
||||||
numv = ctalloc(int, num_levels);
|
numv = ctalloc(int, num_levels);
|
||||||
@ -185,6 +188,7 @@ Data *data;
|
|||||||
levb[j] = ib[imin[j]-1];
|
levb[j] = ib[imin[j]-1];
|
||||||
levv[j] = imin[j];
|
levv[j] = imin[j];
|
||||||
levp[j] = ipmn[j];
|
levp[j] = ipmn[j];
|
||||||
|
levpi[j] = ipmn[j] + j;
|
||||||
levi[j] = imin[j] + j;
|
levi[j] = imin[j] + j;
|
||||||
numa[j] = ia[imax[j]+1-1]-ia[imin[j]-1];
|
numa[j] = ia[imax[j]+1-1]-ia[imin[j]-1];
|
||||||
numb[j] = ib[imax[j]+1-1]-ib[imin[j]-1];
|
numb[j] = ib[imax[j]+1-1]-ib[imin[j]-1];
|
||||||
@ -197,7 +201,8 @@ Data *data;
|
|||||||
AMGS01DataLevA(amgs01_data) = leva;
|
AMGS01DataLevA(amgs01_data) = leva;
|
||||||
AMGS01DataLevB(amgs01_data) = levb;
|
AMGS01DataLevB(amgs01_data) = levb;
|
||||||
AMGS01DataLevV(amgs01_data) = levv;
|
AMGS01DataLevV(amgs01_data) = levv;
|
||||||
AMGS01DataLevP(amgs01_data) = levp;
|
AMGS01DataLevP(amgs01_data) = levp;
|
||||||
|
AMGS01DataLevPI(amgs01_data) = levpi;
|
||||||
AMGS01DataLevI(amgs01_data) = levi;
|
AMGS01DataLevI(amgs01_data) = levi;
|
||||||
AMGS01DataNumA(amgs01_data) = numa;
|
AMGS01DataNumA(amgs01_data) = numa;
|
||||||
AMGS01DataNumB(amgs01_data) = numb;
|
AMGS01DataNumB(amgs01_data) = numb;
|
||||||
@ -209,6 +214,7 @@ Data *data;
|
|||||||
*----------------------------------------------------------*/
|
*----------------------------------------------------------*/
|
||||||
|
|
||||||
/* make room for `num(j)+1' entry in `ia' and `ib' */
|
/* make room for `num(j)+1' entry in `ia' and `ib' */
|
||||||
|
/* veh also make room for `num(j)+1' entry in iv */
|
||||||
for (j = num_levels-1; j > 0; j--)
|
for (j = num_levels-1; j > 0; j--)
|
||||||
{
|
{
|
||||||
for (k = numv[j]; k >= 0; k--)
|
for (k = numv[j]; k >= 0; k--)
|
||||||
@ -216,6 +222,10 @@ Data *data;
|
|||||||
ia[levi[j]+k-1] = ia[levv[j]+k-1];
|
ia[levi[j]+k-1] = ia[levv[j]+k-1];
|
||||||
ib[levi[j]+k-1] = ib[levv[j]+k-1];
|
ib[levi[j]+k-1] = ib[levv[j]+k-1];
|
||||||
}
|
}
|
||||||
|
for (k = nump[j]; k >= 0; k--)
|
||||||
|
{
|
||||||
|
iv[levpi[j]+k-1] = iv[levp[j]+k-1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* shift `ja' and `jb' */
|
/* shift `ja' and `jb' */
|
||||||
@ -262,7 +272,7 @@ Data *data;
|
|||||||
decr = numv[0];
|
decr = numv[0];
|
||||||
for (j = 1; j < num_levels; j++)
|
for (j = 1; j < num_levels; j++)
|
||||||
{
|
{
|
||||||
for (k = levp[j]; k < levp[j] + nump[j]; k++)
|
for (k = levpi[j]; k < levpi[j] + nump[j] + 1; k++)
|
||||||
{
|
{
|
||||||
iv[k-1] -= decr;
|
iv[k-1] -= decr;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,6 +72,7 @@ typedef struct
|
|||||||
int *levb;
|
int *levb;
|
||||||
int *levv;
|
int *levv;
|
||||||
int *levp;
|
int *levp;
|
||||||
|
int *levpi;
|
||||||
int *levi;
|
int *levi;
|
||||||
int *numa;
|
int *numa;
|
||||||
int *numb;
|
int *numb;
|
||||||
@ -129,6 +130,7 @@ typedef struct
|
|||||||
#define AMGS01DataLevB(amgs01_data) ((amgs01_data) -> levb)
|
#define AMGS01DataLevB(amgs01_data) ((amgs01_data) -> levb)
|
||||||
#define AMGS01DataLevV(amgs01_data) ((amgs01_data) -> levv)
|
#define AMGS01DataLevV(amgs01_data) ((amgs01_data) -> levv)
|
||||||
#define AMGS01DataLevP(amgs01_data) ((amgs01_data) -> levp)
|
#define AMGS01DataLevP(amgs01_data) ((amgs01_data) -> levp)
|
||||||
|
#define AMGS01DataLevPI(amgs01_data) ((amgs01_data) -> levpi)
|
||||||
#define AMGS01DataLevI(amgs01_data) ((amgs01_data) -> levi)
|
#define AMGS01DataLevI(amgs01_data) ((amgs01_data) -> levi)
|
||||||
#define AMGS01DataNumA(amgs01_data) ((amgs01_data) -> numa)
|
#define AMGS01DataNumA(amgs01_data) ((amgs01_data) -> numa)
|
||||||
#define AMGS01DataNumB(amgs01_data) ((amgs01_data) -> numb)
|
#define AMGS01DataNumB(amgs01_data) ((amgs01_data) -> numb)
|
||||||
|
|||||||
@ -101,7 +101,7 @@ void setup_(int *, int *, double *, int *, double *, int *,
|
|||||||
AMGS01DataLevA(amgs01_data),\
|
AMGS01DataLevA(amgs01_data),\
|
||||||
AMGS01DataLevB(amgs01_data),\
|
AMGS01DataLevB(amgs01_data),\
|
||||||
AMGS01DataLevV(amgs01_data),\
|
AMGS01DataLevV(amgs01_data),\
|
||||||
AMGS01DataLevP(amgs01_data),\
|
AMGS01DataLevPI(amgs01_data),\
|
||||||
AMGS01DataLevI(amgs01_data),\
|
AMGS01DataLevI(amgs01_data),\
|
||||||
AMGS01DataNumA(amgs01_data),\
|
AMGS01DataNumA(amgs01_data),\
|
||||||
AMGS01DataNumB(amgs01_data),\
|
AMGS01DataNumB(amgs01_data),\
|
||||||
|
|||||||
@ -69,6 +69,8 @@ Data *data;
|
|||||||
int *levv;
|
int *levv;
|
||||||
int *levp;
|
int *levp;
|
||||||
int *levi;
|
int *levi;
|
||||||
|
/* veh test levpi */
|
||||||
|
int *levpi;
|
||||||
int *numa;
|
int *numa;
|
||||||
int *numb;
|
int *numb;
|
||||||
int *numv;
|
int *numv;
|
||||||
@ -175,6 +177,7 @@ Data *data;
|
|||||||
levv = ctalloc(int, num_levels);
|
levv = ctalloc(int, num_levels);
|
||||||
levp = ctalloc(int, num_levels);
|
levp = ctalloc(int, num_levels);
|
||||||
levi = ctalloc(int, num_levels);
|
levi = ctalloc(int, num_levels);
|
||||||
|
levpi = ctalloc(int, num_levels);
|
||||||
numa = ctalloc(int, num_levels);
|
numa = ctalloc(int, num_levels);
|
||||||
numb = ctalloc(int, num_levels);
|
numb = ctalloc(int, num_levels);
|
||||||
numv = ctalloc(int, num_levels);
|
numv = ctalloc(int, num_levels);
|
||||||
@ -185,6 +188,7 @@ Data *data;
|
|||||||
levb[j] = ib[imin[j]-1];
|
levb[j] = ib[imin[j]-1];
|
||||||
levv[j] = imin[j];
|
levv[j] = imin[j];
|
||||||
levp[j] = ipmn[j];
|
levp[j] = ipmn[j];
|
||||||
|
levpi[j] = ipmn[j] + j;
|
||||||
levi[j] = imin[j] + j;
|
levi[j] = imin[j] + j;
|
||||||
numa[j] = ia[imax[j]+1-1]-ia[imin[j]-1];
|
numa[j] = ia[imax[j]+1-1]-ia[imin[j]-1];
|
||||||
numb[j] = ib[imax[j]+1-1]-ib[imin[j]-1];
|
numb[j] = ib[imax[j]+1-1]-ib[imin[j]-1];
|
||||||
@ -197,7 +201,8 @@ Data *data;
|
|||||||
AMGS01DataLevA(amgs01_data) = leva;
|
AMGS01DataLevA(amgs01_data) = leva;
|
||||||
AMGS01DataLevB(amgs01_data) = levb;
|
AMGS01DataLevB(amgs01_data) = levb;
|
||||||
AMGS01DataLevV(amgs01_data) = levv;
|
AMGS01DataLevV(amgs01_data) = levv;
|
||||||
AMGS01DataLevP(amgs01_data) = levp;
|
AMGS01DataLevP(amgs01_data) = levp;
|
||||||
|
AMGS01DataLevPI(amgs01_data) = levpi;
|
||||||
AMGS01DataLevI(amgs01_data) = levi;
|
AMGS01DataLevI(amgs01_data) = levi;
|
||||||
AMGS01DataNumA(amgs01_data) = numa;
|
AMGS01DataNumA(amgs01_data) = numa;
|
||||||
AMGS01DataNumB(amgs01_data) = numb;
|
AMGS01DataNumB(amgs01_data) = numb;
|
||||||
@ -209,6 +214,7 @@ Data *data;
|
|||||||
*----------------------------------------------------------*/
|
*----------------------------------------------------------*/
|
||||||
|
|
||||||
/* make room for `num(j)+1' entry in `ia' and `ib' */
|
/* make room for `num(j)+1' entry in `ia' and `ib' */
|
||||||
|
/* veh also make room for `num(j)+1' entry in iv */
|
||||||
for (j = num_levels-1; j > 0; j--)
|
for (j = num_levels-1; j > 0; j--)
|
||||||
{
|
{
|
||||||
for (k = numv[j]; k >= 0; k--)
|
for (k = numv[j]; k >= 0; k--)
|
||||||
@ -216,6 +222,10 @@ Data *data;
|
|||||||
ia[levi[j]+k-1] = ia[levv[j]+k-1];
|
ia[levi[j]+k-1] = ia[levv[j]+k-1];
|
||||||
ib[levi[j]+k-1] = ib[levv[j]+k-1];
|
ib[levi[j]+k-1] = ib[levv[j]+k-1];
|
||||||
}
|
}
|
||||||
|
for (k = nump[j]; k >= 0; k--)
|
||||||
|
{
|
||||||
|
iv[levpi[j]+k-1] = iv[levp[j]+k-1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* shift `ja' and `jb' */
|
/* shift `ja' and `jb' */
|
||||||
@ -262,7 +272,7 @@ Data *data;
|
|||||||
decr = numv[0];
|
decr = numv[0];
|
||||||
for (j = 1; j < num_levels; j++)
|
for (j = 1; j < num_levels; j++)
|
||||||
{
|
{
|
||||||
for (k = levp[j]; k < levp[j] + nump[j]; k++)
|
for (k = levpi[j]; k < levpi[j] + nump[j] + 1; k++)
|
||||||
{
|
{
|
||||||
iv[k-1] -= decr;
|
iv[k-1] -= decr;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,6 +72,7 @@ typedef struct
|
|||||||
int *levb;
|
int *levb;
|
||||||
int *levv;
|
int *levv;
|
||||||
int *levp;
|
int *levp;
|
||||||
|
int *levpi;
|
||||||
int *levi;
|
int *levi;
|
||||||
int *numa;
|
int *numa;
|
||||||
int *numb;
|
int *numb;
|
||||||
@ -129,6 +130,7 @@ typedef struct
|
|||||||
#define AMGS01DataLevB(amgs01_data) ((amgs01_data) -> levb)
|
#define AMGS01DataLevB(amgs01_data) ((amgs01_data) -> levb)
|
||||||
#define AMGS01DataLevV(amgs01_data) ((amgs01_data) -> levv)
|
#define AMGS01DataLevV(amgs01_data) ((amgs01_data) -> levv)
|
||||||
#define AMGS01DataLevP(amgs01_data) ((amgs01_data) -> levp)
|
#define AMGS01DataLevP(amgs01_data) ((amgs01_data) -> levp)
|
||||||
|
#define AMGS01DataLevPI(amgs01_data) ((amgs01_data) -> levpi)
|
||||||
#define AMGS01DataLevI(amgs01_data) ((amgs01_data) -> levi)
|
#define AMGS01DataLevI(amgs01_data) ((amgs01_data) -> levi)
|
||||||
#define AMGS01DataNumA(amgs01_data) ((amgs01_data) -> numa)
|
#define AMGS01DataNumA(amgs01_data) ((amgs01_data) -> numa)
|
||||||
#define AMGS01DataNumB(amgs01_data) ((amgs01_data) -> numb)
|
#define AMGS01DataNumB(amgs01_data) ((amgs01_data) -> numb)
|
||||||
|
|||||||
@ -101,7 +101,7 @@ void setup_(int *, int *, double *, int *, double *, int *,
|
|||||||
AMGS01DataLevA(amgs01_data),\
|
AMGS01DataLevA(amgs01_data),\
|
||||||
AMGS01DataLevB(amgs01_data),\
|
AMGS01DataLevB(amgs01_data),\
|
||||||
AMGS01DataLevV(amgs01_data),\
|
AMGS01DataLevV(amgs01_data),\
|
||||||
AMGS01DataLevP(amgs01_data),\
|
AMGS01DataLevPI(amgs01_data),\
|
||||||
AMGS01DataLevI(amgs01_data),\
|
AMGS01DataLevI(amgs01_data),\
|
||||||
AMGS01DataNumA(amgs01_data),\
|
AMGS01DataNumA(amgs01_data),\
|
||||||
AMGS01DataNumB(amgs01_data),\
|
AMGS01DataNumB(amgs01_data),\
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user