diff --git a/lib/ldpc/Makefile.msk_osx b/lib/ldpc/Makefile.msk_osx index 265871ec6..c5a475bb7 100644 --- a/lib/ldpc/Makefile.msk_osx +++ b/lib/ldpc/Makefile.msk_osx @@ -27,7 +27,7 @@ all: msksim OBJS = msksim.o alloc.o rcode.o channel.o dec.o enc.o \ intio.o blockio.o check.o open.o mod2dense.o \ - mod2sparse.o mod2convert.o distrib.o rand.o + mod2sparse.o mod2convert.o distrib.o rand.o gran.o msksim: $(OBJS) $(FC) -o msksim $(OBJS) diff --git a/lib/ldpc/dec.c b/lib/ldpc/dec.c index 2a5e21479..431518d8f 100755 --- a/lib/ldpc/dec.c +++ b/lib/ldpc/dec.c @@ -384,19 +384,23 @@ void iterprp } } -void ldpc_decode_ ( double *lratio, char *dblk, char *pchk, double *bprb ) +void ldpc_decode_ ( double lratio[], char decoded[], int *max_iterations, int *niterations) { - int i, n; - n = prprp_decode ( H, lratio, dblk, pchk, bprb ); - printf("in ldpc_decode n=%d\n"); - printf("dblk: "); - for( i=0; i<128; i++) { - printf("%d",dblk[i]); + int i, j, valid; + char dblk[N],pchk[M]; + double bprb[N]; + + max_iter=*max_iterations; + *niterations = prprp_decode ( H, lratio, dblk, pchk, bprb ); + valid = check( H, dblk, pchk )==0; + if( !valid ) { + *niterations=-1; + }; + + j=0; + for( i=M; i