kopia lustrzana https://github.com/ag1le/morse-wip
Added debug code to output state variables.
general cleanup - move defs to morse.hmaster
rodzic
54fecec308
commit
ec4631649a
14
src/morse.c
14
src/morse.c
|
@ -9,6 +9,7 @@
|
|||
|
||||
http://www.netlib.org/f2c/libf2c.zip
|
||||
*/
|
||||
char debug = '0';
|
||||
|
||||
#include "f2c.h"
|
||||
#include <stdio.h>
|
||||
|
@ -37,7 +38,6 @@ int main(int argc, char**argv)
|
|||
static integer elmhat;
|
||||
static real spdhat;
|
||||
int res;
|
||||
int debug = 0;
|
||||
FILE *fp;
|
||||
|
||||
|
||||
|
@ -53,12 +53,12 @@ int main(int argc, char**argv)
|
|||
fp = fopen(argv[1],"r");
|
||||
break;
|
||||
case 3:
|
||||
debug = 1;
|
||||
debug = *argv[1];
|
||||
fp = fopen(argv[2],"r");
|
||||
|
||||
}
|
||||
|
||||
if (debug)
|
||||
|
||||
if (debug=='d')
|
||||
printf("\nretstat\timax\telmhat\txhat\tltrhat\tx\tpx\tpmax\tspdhat");
|
||||
L1:
|
||||
for (n1 = 1; n1 <= 512; ++n1) {
|
||||
|
@ -76,7 +76,7 @@ L1:
|
|||
//bpfdet_(&zrcv, &zdet);
|
||||
++np;
|
||||
/* DECIMATE 4 kHz by 40 down to 100Hz - 5 ms sample time for PROCES */
|
||||
if (np < 30) {
|
||||
if (np < DECIMATE) {
|
||||
goto L3;
|
||||
}
|
||||
np = 0;
|
||||
|
@ -84,8 +84,8 @@ L1:
|
|||
/* RN = RAND() */
|
||||
rn = .01f;
|
||||
retstat = proces_(&x, &rn, &xhat, &px, &elmhat, &spdhat, &imax, &pmax);
|
||||
printf("\n%f",x);
|
||||
if (debug)
|
||||
// printf("\n%f",x);
|
||||
if (debug=='d')
|
||||
printf("\n%d\t%d\t%d\t%d\t%f\t%f\t%f\t%f",(int)retstat,(int)imax,(int)elmhat,(int)xhat,x,px,pmax,spdhat);
|
||||
L3:
|
||||
;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
q
|
||||
|
||||
extern int rcvr_(real *, real *);
|
||||
extern int noise_(real *, real *, real *);
|
||||
|
@ -18,3 +18,8 @@ extern int trprob_(integer *, integer *, real *, integer *, real *);
|
|||
extern int savep_(real *, integer *, integer *, integer *, integer *, real *, integer *, integer *, real *, integer *, integer *, real *);
|
||||
extern int likhd_(real *, real *, integer *, integer *, real *, integer *, real *, real *);
|
||||
extern int path_(integer *, integer *, real *, integer *, integer *, real *, integer *);
|
||||
extern doublereal spdtr_(integer *, integer *, integer *, integer *);
|
||||
|
||||
#define FSAMPLE 4000.0 // Sampling Frequency
|
||||
#define DECIMATE 40 // Decimation
|
||||
#define SAMPLEDURATION (1000. * DECIMATE) / FSAMPLE // 1000*DECIMATE / FSAMPLE
|
||||
|
|
57
src/path.c
57
src/path.c
|
@ -11,6 +11,7 @@
|
|||
*/
|
||||
|
||||
#include "f2c.h"
|
||||
#include "morse.h"
|
||||
|
||||
/* Common Block Declarations */
|
||||
|
||||
|
@ -42,8 +43,7 @@ struct {
|
|||
|
||||
static integer c__1 = 1;
|
||||
|
||||
/* Subroutine */ int path_(integer *ip, integer *lambda, real *dur, integer *
|
||||
ilrate, integer *lamsav, real *dursav, integer *ilrsav)
|
||||
/* Subroutine */ int path_(integer *ip, integer *lambda, real *dur, integer *ilrate, integer *lamsav, real *dursav, integer *ilrsav)
|
||||
{
|
||||
/* Local variables */
|
||||
static integer i, j, k, n, ixl, ixs, ilelm;
|
||||
|
@ -73,41 +73,42 @@ static integer c__1 = 1;
|
|||
|
||||
/* Function Body */
|
||||
for (k = 1; k <= 6; ++k) {
|
||||
for (i = 1; i <= 5; ++i) {
|
||||
for (i = 1; i <= 5; ++i) {
|
||||
|
||||
/* STATE IDENTITY N: */
|
||||
|
||||
n = (i - 1) * 6 + k;
|
||||
n = (i - 1) * 6 + k;
|
||||
|
||||
/* NEW PATH IDENTITY: */
|
||||
|
||||
j = (*ip - 1) * 30 + n;
|
||||
j = (*ip - 1) * 30 + n;
|
||||
|
||||
/* NEW LTR STATE: */
|
||||
|
||||
if (*lambda != 0) {
|
||||
goto L50;
|
||||
}
|
||||
lamsav[j] = 0;
|
||||
goto L100;
|
||||
L50:
|
||||
lamsav[j] = blkmem_1.memfcn[*lambda + k * 400 - 401];
|
||||
if (lamsav[j] == 0) {
|
||||
goto L100;
|
||||
}
|
||||
if (*lambda != 0) {
|
||||
goto L50;
|
||||
}
|
||||
lamsav[j] = 0;
|
||||
goto L100;
|
||||
L50:
|
||||
lamsav[j] = blkmem_1.memfcn[*lambda + k * 400 - 401];
|
||||
if (lamsav[j] == 0) {
|
||||
goto L100;
|
||||
}
|
||||
|
||||
/* NEW DURATION: */
|
||||
/* OBTAIN KEYSTATE OF SAVED PATH AND NEW STATE: */
|
||||
ilelm = blklam_1.ilami[blklam_1.ielmst[*lambda - 1] - 1];
|
||||
ixl = blklam_1.ilamx[ilelm - 1];
|
||||
ixs = blks_1.isx[k - 1];
|
||||
ilelm = blklam_1.ilami[blklam_1.ielmst[*lambda - 1] - 1];
|
||||
ixl = blklam_1.ilamx[ilelm - 1];
|
||||
ixs = blks_1.isx[k - 1];
|
||||
|
||||
/* CALCULATE DURATION - ADD SAMPLE DURATION 5 ms FOR EACH VALID PATH */
|
||||
dursav[j] = *dur * (1 - ixs - ixl + (ixs << 1) * ixl) + 5.f;
|
||||
dursav[j] = *dur * (1 - ixs - ixl + (ixs << 1) * ixl) + SAMPLEDURATION;
|
||||
|
||||
/* NEW DATA RATE: */
|
||||
ilrsav[j] = *ilrate + (i - 3) * blkrat_1.memdel[ilelm + k * 6 -
|
||||
7];
|
||||
goto L100;
|
||||
L100:
|
||||
;
|
||||
}
|
||||
ilrsav[j] = *ilrate + (i - 3) * blkrat_1.memdel[ilelm + k * 6 - 7];
|
||||
L100:
|
||||
;
|
||||
}
|
||||
}
|
||||
/* L200: */
|
||||
return 0;
|
||||
} /* path_ */
|
||||
|
||||
|
|
20
src/ptrans.c
20
src/ptrans.c
|
@ -11,6 +11,7 @@
|
|||
*/
|
||||
|
||||
#include "f2c.h"
|
||||
#include "morse.h"
|
||||
|
||||
/* Common Block Declarations */
|
||||
|
||||
|
@ -26,11 +27,10 @@ struct {
|
|||
|
||||
#define blkelm_1 blkelm_
|
||||
|
||||
/* Subroutine */ int ptrans_(integer *kelem, integer *irate, integer *lambda,
|
||||
integer *ilrate, real *ptrx, real *psum, real *pin, integer *n)
|
||||
/* Subroutine */ int ptrans_(integer *kelem, integer *irate, integer *lambda, integer *ilrate, real *ptrx, real *psum, real *pin, integer *n)
|
||||
{
|
||||
static real pelem, prate;
|
||||
extern doublereal spdtr_(integer *, integer *, integer *, integer *);
|
||||
|
||||
|
||||
/* THIS FUNCTION SUBROUTINE RETURNS THE PATH CONDITIONAL TRANSITION */
|
||||
/* PROBABILITIES TO EACH ALLOWABLE STATE N. */
|
||||
|
@ -54,29 +54,27 @@ struct {
|
|||
|
||||
/* Function Body */
|
||||
if (*kelem != blklam_1.ilami[blklam_1.ielmst[*lambda - 1] - 1]) {
|
||||
goto L100;
|
||||
goto L100;
|
||||
}
|
||||
pin[*n] = *ptrx;
|
||||
|
||||
/* HOWEVER, IF CURRENT DATA RATE STATE = 3, THEN TRANS PROB = 0 ... WHY ? */
|
||||
if (*irate != 3) {
|
||||
pin[*n] = 0.f;
|
||||
pin[*n] = 0.f;
|
||||
}
|
||||
goto L200;
|
||||
|
||||
/* OTHERWISE: */
|
||||
/* OBTAIN ELEM TRANS PROBS TABLE: */
|
||||
|
||||
L100:
|
||||
pelem = blkelm_1.elemtr[blklam_1.ielmst[*lambda - 1] + (*kelem << 4) - 17]
|
||||
;
|
||||
pelem = blkelm_1.elemtr[blklam_1.ielmst[*lambda - 1] + (*kelem << 4) - 17];
|
||||
/* NEXT COMPUTE ELEM-CONDITIONAL SPEED TRANS PROB: */
|
||||
prate = spdtr_(irate, ilrate, kelem, &blklam_1.ilami[blklam_1.ielmst[*
|
||||
lambda - 1] - 1]);
|
||||
prate = spdtr_(irate, ilrate, kelem, &blklam_1.ilami[blklam_1.ielmst[*lambda - 1] - 1]);
|
||||
/* TRANS IS THE PRODUCT: */
|
||||
pin[*n] = (1.f - *ptrx) * pelem * prate;
|
||||
L200:
|
||||
*psum += pin[*n];
|
||||
/* PRINT 50, N, KELEM, IRATE, ILAMI(IELMST(LAMBDA)), PIN(N), PTRX, PELEM, PRATE, PSUM */
|
||||
/* 50 FORMAT(1X,'PTRANS:',4(I3,2X),5(F8.3,2X)) */
|
||||
return 0;
|
||||
} /* ptrans_ */
|
||||
|
||||
|
|
239
src/savep.c
239
src/savep.c
|
@ -29,10 +29,10 @@ struct {
|
|||
static real popt = .9f;
|
||||
|
||||
/* System generated locals */
|
||||
integer i__1, i__2;
|
||||
integer i1, i2;
|
||||
|
||||
/* Local variables */
|
||||
static integer i__, j, k, n, ip, jsav, nsav;
|
||||
static integer i, j, k, n, ip, jsav, nsav;
|
||||
static real psav[25], psum;
|
||||
static integer iconv[25], ipsav, isavm1, nplus1;
|
||||
|
||||
|
@ -84,156 +84,129 @@ struct {
|
|||
psum = 0.f;
|
||||
/* SELECT SIX HIGHEST PROB ELEMENT STATE NODES: */
|
||||
for (k = 1; k <= 6; ++k) {
|
||||
*pmax = 0.f;
|
||||
i__1 = *isave;
|
||||
for (ip = 1; ip <= i__1; ++ip) {
|
||||
for (i__ = 1; i__ <= 5; ++i__) {
|
||||
j = (ip - 1) * 30 + (i__ - 1) * 6 + k;
|
||||
if (p[j] < *pmax) {
|
||||
goto L100;
|
||||
*pmax = 0.f;
|
||||
i1 = *isave;
|
||||
for (ip = 1; ip <= i1; ++ip) {
|
||||
for (i = 1; i <= 5; ++i) {
|
||||
j = (ip - 1) * 30 + (i - 1) * 6 + k;
|
||||
if (p[j] >= *pmax) {
|
||||
*pmax = p[j];
|
||||
jsav = j;
|
||||
ipsav = ip;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* IF FOLLOWING TWO LINES COMMENTED OUT WE GET NSAV = 7 */
|
||||
if (*pmax >= 1e-6f) {
|
||||
++nsav;
|
||||
psum += *pmax;
|
||||
psav[nsav - 1] = *pmax;
|
||||
pathsv[nsav] = ipsav;
|
||||
sort[nsav] = jsav;
|
||||
}
|
||||
*pmax = p[j];
|
||||
jsav = j;
|
||||
ipsav = ip;
|
||||
L100:
|
||||
;
|
||||
}
|
||||
}
|
||||
/* IF FOLLOWING TWO LINES COMMENTED OUT WE GET NSAV = 7 */
|
||||
if (*pmax >= 1e-6f) {
|
||||
goto L150;
|
||||
}
|
||||
goto L200;
|
||||
L150:
|
||||
++nsav;
|
||||
psum += *pmax;
|
||||
psav[nsav - 1] = *pmax;
|
||||
pathsv[nsav] = ipsav;
|
||||
sort[nsav] = jsav;
|
||||
L200:
|
||||
;
|
||||
}
|
||||
/* SELECT ENOUGH ADDITIONAL NODES TO MAKE TOTAL */
|
||||
/* PROBABILITY SAVED EQUAL TO POPT, OR A MAX OF 25: */
|
||||
L520:
|
||||
*pmax = 0.f;
|
||||
i__1 = *isave;
|
||||
for (ip = 1; ip <= i__1; ++ip) {
|
||||
for (n = 1; n <= 30; ++n) {
|
||||
j = (ip - 1) * 30 + n;
|
||||
i__2 = nsav;
|
||||
for (i__ = 1; i__ <= i__2; ++i__) {
|
||||
if (j == sort[i__]) {
|
||||
goto L500;
|
||||
do {
|
||||
*pmax = 0.f;
|
||||
i1 = *isave;
|
||||
for (ip = 1; ip <= i1; ++ip) {
|
||||
for (n = 1; n <= 30; ++n) {
|
||||
j = (ip - 1) * 30 + n;
|
||||
i2 = nsav;
|
||||
for (i = 1; i <= i2; ++i) {
|
||||
if (j == sort[i]) {
|
||||
goto L500;
|
||||
}
|
||||
}
|
||||
if (p[j] > *pmax) {
|
||||
*pmax = p[j];
|
||||
jsav = j;
|
||||
ipsav = ip;
|
||||
}
|
||||
L500:
|
||||
;
|
||||
}
|
||||
}
|
||||
/* L510: */
|
||||
}
|
||||
if (p[j] <= *pmax) {
|
||||
goto L500;
|
||||
}
|
||||
*pmax = p[j];
|
||||
jsav = j;
|
||||
ipsav = ip;
|
||||
L500:
|
||||
;
|
||||
}
|
||||
}
|
||||
psum += *pmax;
|
||||
++nsav;
|
||||
psav[nsav - 1] = *pmax;
|
||||
pathsv[nsav] = ipsav;
|
||||
sort[nsav] = jsav;
|
||||
if (psum >= popt) {
|
||||
goto L600;
|
||||
}
|
||||
if (nsav >= 25) {
|
||||
goto L600;
|
||||
}
|
||||
goto L520;
|
||||
psum += *pmax;
|
||||
++nsav;
|
||||
psav[nsav - 1] = *pmax;
|
||||
pathsv[nsav] = ipsav;
|
||||
sort[nsav] = jsav;
|
||||
if (psum >= popt) {
|
||||
break;
|
||||
}
|
||||
} while (nsav < 25);
|
||||
/* NEW ISAVE EQUALS NO. OF NODES SAVED: */
|
||||
L600:
|
||||
*isave = nsav;
|
||||
|
||||
/* SORT THE SAVED ARRAYS TO OBTAIN THE ARRAYS */
|
||||
/* TO BE USED FOR THE NEXT ITERATION: */
|
||||
i__1 = *isave;
|
||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||
p[i__] = psav[i__ - 1] / psum;
|
||||
lambda[i__] = lamsav[sort[i__]];
|
||||
dur[i__] = dursav[sort[i__]];
|
||||
ilrate[i__] = ilrsav[sort[i__]];
|
||||
blksv1_1.ykkip[i__ - 1] = blksv1_1.ykksv[sort[i__] - 1];
|
||||
blksv1_1.pkkip[i__ - 1] = blksv1_1.pkksv[sort[i__] - 1];
|
||||
/* PRINT 650, I, ILRATE(I), SORT(I), LAMBDA(I), P(I), DUR(I), */
|
||||
/* &YKKIP(I), PKKIP(I) */
|
||||
/* 650 FORMAT('SAVEP:',4(I4,1X), 4(F10.4,1X)) */
|
||||
/* L700: */
|
||||
i1 = *isave;
|
||||
for (i = 1; i <= i1; ++i) {
|
||||
p[i] = psav[i - 1] / psum;
|
||||
lambda[i] = lamsav[sort[i]];
|
||||
dur[i] = dursav[sort[i]];
|
||||
ilrate[i] = ilrsav[sort[i]];
|
||||
blksv1_1.ykkip[i - 1] = blksv1_1.ykksv[sort[i] - 1];
|
||||
blksv1_1.pkkip[i - 1] = blksv1_1.pkksv[sort[i] - 1];
|
||||
}
|
||||
i__1 = *isave;
|
||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||
iconv[i__ - 1] = 1;
|
||||
/* L790: */
|
||||
i1 = *isave;
|
||||
for (i = 1; i <= i1; ++i) {
|
||||
iconv[i - 1] = 1;
|
||||
}
|
||||
isavm1 = *isave - 1;
|
||||
i__1 = isavm1;
|
||||
for (n = 1; n <= i__1; ++n) {
|
||||
if (iconv[n - 1] == 0) {
|
||||
goto L800;
|
||||
}
|
||||
nplus1 = n + 1;
|
||||
i__2 = *isave;
|
||||
for (k = nplus1; k <= i__2; ++k) {
|
||||
if (iconv[k - 1] == 0) {
|
||||
goto L810;
|
||||
}
|
||||
if (ilrate[k] != ilrate[n]) {
|
||||
goto L810;
|
||||
}
|
||||
if (dur[k] != dur[n]) {
|
||||
goto L810;
|
||||
}
|
||||
if (lambda[k] != lambda[n]) {
|
||||
goto L810;
|
||||
}
|
||||
iconv[k - 1] = 0;
|
||||
L810:
|
||||
;
|
||||
}
|
||||
L800:
|
||||
;
|
||||
i1 = isavm1;
|
||||
for (n = 1; n <= i1; ++n) {
|
||||
if (iconv[n - 1] != 0) {
|
||||
nplus1 = n + 1;
|
||||
i2 = *isave;
|
||||
for (k = nplus1; k <= i2; ++k) {
|
||||
if (iconv[k - 1] == 0) {
|
||||
goto L810;
|
||||
}
|
||||
if (ilrate[k] != ilrate[n]) {
|
||||
goto L810;
|
||||
}
|
||||
if (dur[k] != dur[n]) {
|
||||
goto L810;
|
||||
}
|
||||
if (lambda[k] != lambda[n]) {
|
||||
goto L810;
|
||||
}
|
||||
iconv[k - 1] = 0;
|
||||
L810:
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
psum = 0.f;
|
||||
n = 1;
|
||||
i__1 = *isave;
|
||||
for (i__ = 2; i__ <= i__1; ++i__) {
|
||||
if (iconv[i__ - 1] == 0) {
|
||||
goto L900;
|
||||
}
|
||||
++n;
|
||||
lambda[n] = lambda[i__];
|
||||
dur[n] = dur[i__];
|
||||
ilrate[n] = ilrate[i__];
|
||||
blksv1_1.ykkip[n - 1] = blksv1_1.ykkip[i__ - 1];
|
||||
blksv1_1.pkkip[n - 1] = blksv1_1.pkkip[i__ - 1];
|
||||
pathsv[n] = pathsv[i__];
|
||||
sort[n] = sort[i__];
|
||||
p[n] = p[i__];
|
||||
psum += p[n];
|
||||
L900:
|
||||
;
|
||||
i1 = *isave;
|
||||
for (i = 2; i <= i1; ++i) {
|
||||
if (iconv[i - 1] != 0) {
|
||||
++n;
|
||||
lambda[n] = lambda[i];
|
||||
dur[n] = dur[i];
|
||||
ilrate[n] = ilrate[i];
|
||||
blksv1_1.ykkip[n - 1] = blksv1_1.ykkip[i - 1];
|
||||
blksv1_1.pkkip[n - 1] = blksv1_1.pkkip[i - 1];
|
||||
pathsv[n] = pathsv[i];
|
||||
sort[n] = sort[i];
|
||||
p[n] = p[i];
|
||||
psum += p[n];
|
||||
}
|
||||
}
|
||||
/* ALSO OBTAIN HIGHEST PROBABILITY NODE: */
|
||||
*isave = n;
|
||||
*pmax = 0.f;
|
||||
i__1 = *isave;
|
||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||
p[i__] /= psum;
|
||||
if (p[i__] <= *pmax) {
|
||||
goto L950;
|
||||
}
|
||||
*pmax = p[i__];
|
||||
*imax = i__;
|
||||
L950:
|
||||
;
|
||||
i1 = *isave;
|
||||
for (i = 1; i <= i1; ++i) {
|
||||
p[i] /= psum;
|
||||
if (p[i] > *pmax) {
|
||||
*pmax = p[i];
|
||||
*imax = i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
} /* savep_ */
|
||||
|
|
13
src/spdtr.c
13
src/spdtr.c
|
@ -27,8 +27,7 @@ struct {
|
|||
|
||||
#define blkrat_1 blkrat_
|
||||
|
||||
doublereal spdtr_(integer *isrt, integer *ilrt, integer *iselm, integer *
|
||||
ilelm)
|
||||
doublereal spdtr_(integer *isrt, integer *ilrt, integer *iselm, integer *ilelm)
|
||||
{
|
||||
/* System generated locals */
|
||||
real ret_val;
|
||||
|
@ -53,11 +52,11 @@ doublereal spdtr_(integer *isrt, integer *ilrt, integer *iselm, integer *
|
|||
/* THEN THERE CAN BE NO SPEED CHANGE: */
|
||||
|
||||
if (*ilelm != *iselm) {
|
||||
goto L100;
|
||||
goto L100;
|
||||
}
|
||||
ret_val = 1.f;
|
||||
if (*isrt != 3) {
|
||||
ret_val = 0.f;
|
||||
ret_val = 0.f;
|
||||
}
|
||||
goto L300;
|
||||
|
||||
|
@ -67,7 +66,7 @@ L100:
|
|||
idel = blkrat_1.memdel[*ilelm + *iselm * 6 - 7];
|
||||
ind1 = blkspd_1.mempr[*ilelm + *iselm * 6 - 7];
|
||||
if (ind1 != 0) {
|
||||
goto L200;
|
||||
goto L200;
|
||||
}
|
||||
ret_val = 0.f;
|
||||
goto L300;
|
||||
|
@ -76,10 +75,10 @@ L200:
|
|||
ret_val = blkspd_1.rtrans[*isrt + ind1 * 5 - 6];
|
||||
israte = *ilrt + idelsp;
|
||||
if (israte > 60) {
|
||||
ret_val = 0.f;
|
||||
ret_val = 0.f;
|
||||
}
|
||||
if (israte < 10) {
|
||||
ret_val = 0.f;
|
||||
ret_val = 0.f;
|
||||
}
|
||||
L300:
|
||||
return ret_val;
|
||||
|
|
130
src/transl.c
130
src/transl.c
|
@ -1,11 +1,11 @@
|
|||
#include "f2c.h"
|
||||
#include <stdio.h>
|
||||
#include "morse.h"
|
||||
|
||||
extern char debug;
|
||||
struct TREE {
|
||||
int dit,dah;
|
||||
char chr[5];
|
||||
} tree[] = {
|
||||
} tree[] = { // check http://en.wikipedia.org/wiki/Morse_code
|
||||
//dit,dah, chr
|
||||
{1,2, '*'}, // null state
|
||||
{3,4, 'E'}, // .
|
||||
|
@ -25,7 +25,7 @@ struct TREE {
|
|||
{31,32,'H'}, // ....
|
||||
{33,34,'V'}, // ...-
|
||||
{35,36,'F'}, // ..-.
|
||||
{37,38,'Ü'}, // ..--
|
||||
{37,38,'..--'},// ..--
|
||||
{39,40,'L'}, // .-..
|
||||
{41,42,'Ä'}, // .-.-
|
||||
{43,44,'P'}, // .--.
|
||||
|
@ -33,14 +33,14 @@ struct TREE {
|
|||
{47,48,'B'}, // -...
|
||||
{49,50,'X'}, // -..-
|
||||
{51,52,'C'}, // -.-.
|
||||
{53,54,'Y'}, // -.--
|
||||
{53,00,'Y'}, // -.--
|
||||
{55,00,'Z'}, // --..
|
||||
{57,00,'Q'}, // --.-
|
||||
{54,00,'Ö'}, // ---.
|
||||
{56,57,'Š'}, // ----
|
||||
{00,00,'5'}, // .....
|
||||
{00,00,'4'}, // ....-
|
||||
{00,00,'*'}, // ...-.
|
||||
{00,60,'*'}, // ...-.
|
||||
{00,00,'3'}, // ...--
|
||||
{00,00,'É'}, // ..-..
|
||||
{00,00,'*'}, // ..-.-
|
||||
|
@ -48,24 +48,29 @@ struct TREE {
|
|||
{00,00,'2'}, // ..---
|
||||
{00,00,'*'}, //
|
||||
{00,00,'È'}, //
|
||||
{00,00,'+'}, //
|
||||
{00,00,'*'}, //
|
||||
{00,00,'*'}, //
|
||||
{00,00,'*'}, // J ?
|
||||
{00,63,'+'}, // .-.-.
|
||||
{00,00,'*'}, // .-.--
|
||||
{00,00,'*'}, // .--..
|
||||
{59,00,'à'}, // .--.-
|
||||
{00,00,'*'}, // .----
|
||||
{00,00,'1'},
|
||||
{00,00,'6'},
|
||||
{00,00,'/'},
|
||||
{00,00,'*'},
|
||||
{00,00,'Ç'},
|
||||
{00,00,'*'},
|
||||
{00,00,'Ĥ'},
|
||||
{00,00,'Ṅ'},
|
||||
{00,00,'8'},
|
||||
{00,00,'7'},
|
||||
{00,00,'9'},
|
||||
{00,00,'0'},
|
||||
{00,00,'?'}
|
||||
{00,00,'1'}, // .---.
|
||||
{00,00,'6'}, // -....
|
||||
{61,00,'='}, // -...-
|
||||
{00,00,'/'}, // -..-.
|
||||
{00,00,'*'}, // -..--
|
||||
{00,00,'*'}, // -.-..
|
||||
{00,00,'Ĥ'}, // -.-.-
|
||||
{00,00,'Ṅ'}, // -.--.
|
||||
{00,00,'8'}, // ---..
|
||||
{00,00,'7'}, // --...
|
||||
{00,00,'9'}, // ----.
|
||||
{00,00,'0'}, // -----
|
||||
{00,00,'?'}, // ..--..
|
||||
{00,00,'@'}, // .--.-.
|
||||
{00,00,'SK'}, // ...-.-
|
||||
{00,62,'*'}, // -...-.
|
||||
{00,00,'BK'}, // -...-.-
|
||||
{00,00,'.'} // .-.-.-
|
||||
};
|
||||
|
||||
/* Common Block Declarations */
|
||||
|
@ -136,6 +141,86 @@ int transl_(int *ltr)
|
|||
goto L700;
|
||||
}
|
||||
|
||||
if (debug == 't') { // print received tokens
|
||||
switch (*ltr)
|
||||
{
|
||||
/* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
|
||||
/* .^ .~ .w .p -^ -~ -w -p ^. ^- ~. ~- w. w- p. p- */
|
||||
case 16: // p-
|
||||
printf("p-");
|
||||
newstate = tree[curstate].dah;
|
||||
break;
|
||||
case 15: // p.
|
||||
printf("p.");
|
||||
newstate = tree[curstate].dit;
|
||||
break;
|
||||
case 14: // w-
|
||||
printf("w-");
|
||||
newstate = tree[curstate].dah;
|
||||
break;
|
||||
case 13: // w.
|
||||
printf("w.");
|
||||
newstate = tree[curstate].dit;
|
||||
break;
|
||||
case 12: // ~-
|
||||
printf("~-");
|
||||
newstate = tree[curstate].dah;
|
||||
break;
|
||||
case 11: // ~.
|
||||
printf("~.");
|
||||
newstate = tree[curstate].dit;
|
||||
break;
|
||||
case 10: // ^-
|
||||
printf("^-");
|
||||
newstate = tree[curstate].dah;
|
||||
break;
|
||||
case 9: // ^.
|
||||
printf("^.");
|
||||
newstate = tree[curstate].dit;
|
||||
break;
|
||||
case 8:
|
||||
printf("-p");
|
||||
printf("%s ",tree[curstate].chr);
|
||||
newstate = 0;
|
||||
break;
|
||||
case 7:
|
||||
printf("-w");
|
||||
printf("%s ",tree[curstate].chr);
|
||||
newstate = 0;
|
||||
break;
|
||||
case 6:
|
||||
printf("-~");
|
||||
printf("%s",tree[curstate].chr);
|
||||
newstate = 0;
|
||||
break;
|
||||
case 5:
|
||||
printf("-^");
|
||||
break;
|
||||
case 4:
|
||||
printf(".p");
|
||||
printf("%s ",tree[curstate].chr);
|
||||
newstate = 0;
|
||||
break;
|
||||
case 3:
|
||||
printf(".w");
|
||||
printf("%s ",tree[curstate].chr);
|
||||
newstate = 0;
|
||||
break;
|
||||
case 2:
|
||||
printf(".~");
|
||||
printf("%s",tree[curstate].chr);
|
||||
newstate = 0;
|
||||
break;
|
||||
case 1:
|
||||
printf(".^");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
// printf("\nltr: %d %d :", *ltr, elmhat);
|
||||
switch (*ltr)
|
||||
{
|
||||
|
@ -172,6 +257,7 @@ int transl_(int *ltr)
|
|||
// ltrhat = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
L700:
|
||||
curstate = newstate;
|
||||
ixlast = ixl;
|
||||
|
|
450
src/trelis.c
450
src/trelis.c
|
@ -33,163 +33,10 @@ int trelis_(integer *isave, integer *pathsv, integer *lambda, integer *imax, int
|
|||
{
|
||||
/* Initialized data */
|
||||
|
||||
static integer lmdsav[5000] /* was [200][25] */ = { 0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0 };
|
||||
static integer lmdsav[5000]; /* was [200][25] */
|
||||
static integer n = 0;
|
||||
static integer ndelay = 200;
|
||||
static integer ipnod[25] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
|
||||
1,1,1 };
|
||||
static integer ipnod[25] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 };
|
||||
static integer ncall = 0;
|
||||
static integer nmax = 0;
|
||||
static integer mmax = 0;
|
||||
|
@ -202,172 +49,16 @@ int trelis_(integer *isave, integer *pathsv, integer *lambda, integer *imax, int
|
|||
0,0,0,0,0,0,0,0,0,0,0,0,0 };
|
||||
static integer kd = 0;
|
||||
static integer ndelst = 0;
|
||||
static integer pthtrl[5000] /* was [200][25] */ = { 0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0 };
|
||||
static integer pthtrl[5000]; /* was [200][25] */
|
||||
|
||||
|
||||
/* System generated locals */
|
||||
integer i1;
|
||||
|
||||
/* Builtin functions */
|
||||
integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void),
|
||||
s_rsfe(cilist *), e_rsfe(void);
|
||||
|
||||
/* Local variables */
|
||||
static int i, k, ip, ieq, ltr, ndel, retstat;
|
||||
static char wait[1];
|
||||
static int isavg;
|
||||
static int isavg, init=0;
|
||||
static real xsavg, xmmax, xnmax;
|
||||
static int ndlavg;
|
||||
static real xdlavg;
|
||||
|
@ -381,104 +72,106 @@ int trelis_(integer *isave, integer *pathsv, integer *lambda, integer *imax, int
|
|||
/* TO A SINGLE PATH DOES NOT OCCURS, THEN DECODING IS */
|
||||
/* DONE BY READING THE LETTER ON THE PATH WITH HIGHEST */
|
||||
/* PROBABILITY */
|
||||
/* DATA PTHTRL/5000*5/, LMDSAV/ 5000*5/ */
|
||||
|
||||
/* Parameter adjustments */
|
||||
--lambda;
|
||||
--pathsv;
|
||||
|
||||
/* Function Body */
|
||||
if (init ==0) {
|
||||
init = 1;
|
||||
for (i=0; i<5000; i++) {
|
||||
pthtrl[i] = 0;
|
||||
lmdsav[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* KEEP AVERAGE OF ISAVE, NDEL FOR DATA ANALYSIS: */
|
||||
/* CALL VISBUI('PSV', PATHSV) */
|
||||
/* CALL VISBUI('LBD', LAMBDA) */
|
||||
retstat = 1;
|
||||
++ncall;
|
||||
if (blkend_1.iend != 1) {
|
||||
goto L10;
|
||||
if (blkend_1.iend == 1) {
|
||||
isavg = xsavg;
|
||||
ndlavg = xdlavg;
|
||||
blkend_1.iend = 0;
|
||||
printf("\nAVG # OF PATHS SAVED:%4.2f,AVG DECODE DELAY:%4.2f)", xsavg, xdlavg);
|
||||
printf("\nPERCENT OF TIME PATHS = 25: %3.2f, PERCENT OF TIME DELAY = 200: %3.2f", xmmax, xnmax);
|
||||
}
|
||||
isavg = xsavg;
|
||||
ndlavg = xdlavg;
|
||||
blkend_1.iend = 0;
|
||||
|
||||
printf("\nAVG # OF PATHS SAVED:%4.2f,AVG DECODE DELAY:%4.2f)", xsavg, xdlavg);
|
||||
printf("\nPERCENT OF TIME PATHS = 25: %3.2f, PERCENT OF TIME DELAY = 200: %3.2f", xmmax, xnmax);
|
||||
|
||||
L10:
|
||||
xsavg = (xsavg * (ncall - 1) + *isave) / ncall;
|
||||
xdlavg = (xdlavg * (ncall - 1) + ndel) / ncall;
|
||||
if (ndel != ndelay) {
|
||||
goto L20;
|
||||
if (ndel == ndelay) {
|
||||
++nmax;
|
||||
xnmax = (real) nmax;
|
||||
xnmax /= ncall;
|
||||
}
|
||||
++nmax;
|
||||
xnmax = (real) nmax;
|
||||
xnmax /= ncall;
|
||||
L20:
|
||||
if (*isave != 25) {
|
||||
goto L30;
|
||||
if (*isave == 25) {
|
||||
++mmax;
|
||||
xmmax = (real) mmax;
|
||||
xmmax /= ncall;
|
||||
}
|
||||
++mmax;
|
||||
xmmax = (real) mmax;
|
||||
xmmax /= ncall;
|
||||
L30:
|
||||
|
||||
/* STORE PATHSV AND CORRESPONDING LAMBDA IN THE */
|
||||
/* TRELLIS USING A CIRCULAR BUFFER OF LENGTH NDELAY : */
|
||||
++n;
|
||||
if (n == ndelay + 1) {
|
||||
n = 1;
|
||||
n = 1;
|
||||
}
|
||||
i1 = *isave;
|
||||
for (i = 1; i <= i1; ++i) {
|
||||
pthtrl[n + i * 200 - 201] = pathsv[i];
|
||||
lmdsav[n + i * 200 - 201] = lambda[i];
|
||||
/* L100: */
|
||||
pthtrl[n + i * 200 - 201] = pathsv[i];
|
||||
lmdsav[n + i * 200 - 201] = lambda[i];
|
||||
}
|
||||
|
||||
/* PERFORM DYNAMIC PROGRAM ROUTINE TO FIND CONVERGENT PATH: */
|
||||
k = 0;
|
||||
i1 = *isave;
|
||||
for (i = 1; i <= i1; ++i) {
|
||||
ipnod[i - 1] = i;
|
||||
/* L180: */
|
||||
ipnod[i - 1] = i;
|
||||
}
|
||||
L190:
|
||||
++k;
|
||||
if (k == ndelay) {
|
||||
goto L700;
|
||||
goto L700;
|
||||
}
|
||||
|
||||
/* IF IP EQUALS INDEX OF HIGHEST PROBABILITY NODE, STORE NODE TO IPMAX */
|
||||
i1 = *isave;
|
||||
for (ip = 1; ip <= i1; ++ip) {
|
||||
i = n - k + 1;
|
||||
if (i <= 0) {
|
||||
i = ndelay + i;
|
||||
}
|
||||
ipnod[ip - 1] = pthtrl[i + ipnod[ip - 1] * 200 - 201];
|
||||
if (ip == *imax) {
|
||||
*ipmax = ipnod[ip - 1];
|
||||
}
|
||||
/* L200: */
|
||||
i = n - k + 1;
|
||||
if (i <= 0) {
|
||||
i = ndelay + i;
|
||||
}
|
||||
ipnod[ip - 1] = pthtrl[i + ipnod[ip - 1] * 200 - 201];
|
||||
if (ip == *imax) {
|
||||
*ipmax = ipnod[ip - 1];
|
||||
}
|
||||
}
|
||||
/* CALL VISBUI('IPN',IPNOD) */
|
||||
|
||||
/* IF ALL NODES ARE EQUAL,THEN PATHS CONVERGE: */
|
||||
i1 = *isave;
|
||||
for (ieq = 2; ieq <= i1; ++ieq) {
|
||||
if (ipnod[0] != ipnod[ieq - 1]) {
|
||||
goto L190;
|
||||
}
|
||||
/* L300: */
|
||||
if (ipnod[0] != ipnod[ieq - 1]) {
|
||||
goto L190;
|
||||
}
|
||||
}
|
||||
|
||||
/* PATHS CONVERGE; SET NDEL: */
|
||||
ndel = k + 1;
|
||||
|
||||
/* IF POINT OF CONVERGENCE IS SAME AS IT WAS ON */
|
||||
/* LAST CALL, THEN NO NEED TO RE-DECODE SAME NODE: */
|
||||
if (ndel == ndelst + 1) {
|
||||
goto L800;
|
||||
goto L800;
|
||||
}
|
||||
/* IF POINT OF CONVERGENCE OCCURS AT SAME DELAY AS LAST CALL, THEN TRANSLATE: */
|
||||
if (ndel != ndelst) {
|
||||
goto L350;
|
||||
goto L350;
|
||||
}
|
||||
i = n - ndel + 1;
|
||||
if (i <= 0) {
|
||||
i = ndelay + i;
|
||||
i = ndelay + i;
|
||||
}
|
||||
ltr = lmdsav[i + ipnod[0] * 200 - 201];
|
||||
#ifdef DEBUG
|
||||
|
@ -486,6 +179,7 @@ printf("\nSAME DELAY AS LAST: %d",ltr);
|
|||
#endif
|
||||
retstat = transl_(<r);
|
||||
goto L800;
|
||||
|
||||
/* OTHERWISE,POINT OF CONVERGENCE HAS OCCURED */
|
||||
/* EARLIER ON THIS CALL, SO NEED TO TRANSLATE */
|
||||
/* EVERYTHING ON THE CONVERGENT PATH FROM */
|
||||
|
@ -495,28 +189,28 @@ L350:
|
|||
ip = ipnod[0];
|
||||
i1 = ndelst;
|
||||
for (k = ndel; k <= i1; ++k) {
|
||||
++kd;
|
||||
i = n - k + 1;
|
||||
if (i <= 0) {
|
||||
i = ndelay + i;
|
||||
}
|
||||
ltrsv[kd - 1] = lmdsav[i + ip * 200 - 201];
|
||||
ip = pthtrl[i + ip * 200 - 201];
|
||||
/* L400: */
|
||||
++kd;
|
||||
i = n - k + 1;
|
||||
if (i <= 0) {
|
||||
i = ndelay + i;
|
||||
}
|
||||
ltrsv[kd - 1] = lmdsav[i + ip * 200 - 201];
|
||||
ip = pthtrl[i + ip * 200 - 201];
|
||||
}
|
||||
|
||||
/* REVERSE ORDER OF DECODED LETTERS, SINCE THEY */
|
||||
/* WERE OBTAINED FROM THE TRELLIS IN REVERSE; */
|
||||
/* TRANSLATE EACH: */
|
||||
i1 = kd;
|
||||
for (i = 1; i <= i1; ++i) {
|
||||
ltr = ltrsv[kd - i];
|
||||
ltr = ltrsv[kd - i];
|
||||
#ifdef DEBUG
|
||||
printf("\nIN REVERSE ORDER: %d",ltr);
|
||||
printf("\nIN REVERSE ORDER: %d",ltr);
|
||||
#endif
|
||||
retstat = transl_(<r);
|
||||
/* L500: */
|
||||
retstat = transl_(<r);
|
||||
}
|
||||
goto L800;
|
||||
|
||||
L700:
|
||||
/* PATHS HAVE NOT CONVERGED AT MAXIMUM ALLOWABLE */
|
||||
/* DELAY, SO TRANSLATE WHAT IS ON HIGHEST */
|
||||
|
@ -524,7 +218,7 @@ L700:
|
|||
ndel = ndelay;
|
||||
i = n - ndelay + 1;
|
||||
if (i <= 0) {
|
||||
i = ndelay + i;
|
||||
i = ndelay + i;
|
||||
}
|
||||
ltr = lmdsav[i + *ipmax * 200 - 201];
|
||||
#ifdef DEBUG
|
||||
|
@ -534,13 +228,11 @@ printf("\nHIGHEST PROB: %d", ltr);
|
|||
/* PRUNE AWAY NODES WHICH ARE NOT ON THIS PATH: */
|
||||
i1 = *isave;
|
||||
for (k = 1; k <= i1; ++k) {
|
||||
if (ipnod[k - 1] == *ipmax) {
|
||||
goto L750;
|
||||
}
|
||||
lambda[k] = 0;
|
||||
L750:
|
||||
;
|
||||
if (ipnod[k - 1] != *ipmax) {
|
||||
lambda[k] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
L800:
|
||||
ndelst = ndel;
|
||||
return retstat;
|
||||
|
|
34
src/trprob.c
34
src/trprob.c
|
@ -23,7 +23,7 @@ struct {
|
|||
/* Subroutine */ int trprob_(integer *ip, integer *lambda, real *dur, integer
|
||||
*ilrate, real *p)
|
||||
{
|
||||
static integer i__, k, n;
|
||||
static integer i, k, n;
|
||||
static real pin[30];
|
||||
static integer kelm;
|
||||
static real psum, ptrx;
|
||||
|
@ -53,33 +53,31 @@ struct {
|
|||
p -= 26;
|
||||
|
||||
/* Function Body */
|
||||
if (*lambda != 0) {
|
||||
goto L20;
|
||||
if (*lambda == 0) {
|
||||
for (n = 1; n <= 30; ++n) {
|
||||
p[*ip + n * 25] = 0.f;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
for (n = 1; n <= 30; ++n) {
|
||||
p[*ip + n * 25] = 0.f;
|
||||
/* L10: */
|
||||
}
|
||||
goto L200;
|
||||
L20:
|
||||
|
||||
ielem = blklam_1.ilami[blklam_1.ielmst[*lambda - 1] - 1];
|
||||
/* COMPUTE KEYSTATE TRANSITION PROBABILITY: */
|
||||
ptrx = xtrans_(&ielem, dur, ilrate);
|
||||
|
||||
/* FOR EACH STATE, COMPUTE STATE TRANSITION PROBABILITY: */
|
||||
psum = 0.f;
|
||||
for (k = 1; k <= 6; ++k) {
|
||||
for (i__ = 1; i__ <= 5; ++i__) {
|
||||
n = (i__ - 1) * 6 + k;
|
||||
kelm = k;
|
||||
irate = i__;
|
||||
ptrans_(&kelm, &irate, lambda, ilrate, &ptrx, &psum, pin, &n);
|
||||
/* L100: */
|
||||
}
|
||||
for (i = 1; i <= 5; ++i) {
|
||||
n = (i - 1) * 6 + k;
|
||||
kelm = k;
|
||||
irate = i;
|
||||
ptrans_(&kelm, &irate, lambda, ilrate, &ptrx, &psum, pin, &n);
|
||||
}
|
||||
}
|
||||
for (n = 1; n <= 30; ++n) {
|
||||
p[*ip + n * 25] = pin[n - 1] / psum;
|
||||
/* L300: */
|
||||
p[*ip + n * 25] = pin[n - 1] / psum;
|
||||
}
|
||||
|
||||
L200:
|
||||
return 0;
|
||||
} /* trprob_ */
|
||||
|
|
46
src/xtrans.c
46
src/xtrans.c
|
@ -46,38 +46,32 @@ doublereal xtrans_(integer *ielem, real *d0, integer *irate)
|
|||
rscale = 1200.f / *irate;
|
||||
b0 = *d0 / (mscale * rscale);
|
||||
b1 = (*d0 + 5.f) / (mscale * rscale);
|
||||
if (*ielem == 6) {
|
||||
goto L20;
|
||||
|
||||
switch (*ielem) {
|
||||
case 6:
|
||||
alpha = aparm[2] * 14.f;
|
||||
break;
|
||||
case 5:
|
||||
alpha = aparm[1] * 7.f;
|
||||
break;
|
||||
default:
|
||||
alpha = mscale * aparm[0];
|
||||
}
|
||||
if (*ielem == 5) {
|
||||
goto L10;
|
||||
}
|
||||
alpha = mscale * aparm[0];
|
||||
goto L100;
|
||||
L10:
|
||||
alpha = aparm[1] * 7.f;
|
||||
goto L100;
|
||||
L20:
|
||||
alpha = aparm[2] * 14.f;
|
||||
L100:
|
||||
|
||||
if (b1 <= 1.f) {
|
||||
goto L200;
|
||||
p1 = 1.f - exp(alpha * (b1 - 1.f)) * .5f;
|
||||
p0 = 1.f - exp(alpha * (b0 - 1.f)) * .5f;
|
||||
ret_val = p1 / p0;
|
||||
return ret_val;
|
||||
}
|
||||
if (b0 < 1.f && b1 > 1.f) {
|
||||
goto L300;
|
||||
p1 = exp(-alpha * (b1 - 1.f)) * -.5f;
|
||||
p0 = 1.f - exp(alpha * (b0 - 1.f)) * .5f;
|
||||
ret_val = p1 / p0;
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
ret_val = exp(-alpha * (b1 - b0));
|
||||
goto L400;
|
||||
L200:
|
||||
p1 = 1.f - exp(alpha * (b1 - 1.f)) * .5f;
|
||||
p0 = 1.f - exp(alpha * (b0 - 1.f)) * .5f;
|
||||
ret_val = p1 / p0;
|
||||
goto L400;
|
||||
L300:
|
||||
p1 = exp(-alpha * (b1 - 1.f)) * -.5f;
|
||||
p0 = 1.f - exp(alpha * (b0 - 1.f)) * .5f;
|
||||
ret_val = p1 / p0;
|
||||
L400:
|
||||
return ret_val;
|
||||
} /* xtrans_ */
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue