From 8c61d303bfbb1a9594e3dabbacf23e348a6f22ef Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 7 Feb 2024 11:40:25 -0500 Subject: [PATCH] WIP on superfox test progs. --- lib/superfox/Makefile | 2 +- lib/superfox/librs.a | Bin 99342 -> 0 bytes lib/superfox/rs_sf.c | 12 +--------- lib/superfox/rst8.f90 | 15 +++++++------ lib/superfox/rstest.f90 | 45 ++++++++++++++++++++++++-------------- lib/superfox/sfoxtest.f90 | 2 +- lib/superfox/wrap_rs_8.c | 4 ++++ 7 files changed, 43 insertions(+), 37 deletions(-) delete mode 100644 lib/superfox/librs.a diff --git a/lib/superfox/Makefile b/lib/superfox/Makefile index a9bf9b593..a6064d381 100644 --- a/lib/superfox/Makefile +++ b/lib/superfox/Makefile @@ -15,7 +15,7 @@ CFLAGS= -O9 -Wall %.o: %.F90 ${FC} ${FFLAGS} -c $< -all: rs_sf.a rstest rs_125_49 rst8 +all: rs_sf.a rstest OBJS1 = rstest.o ran1.o rs_sf.a rstest: $(OBJS1) diff --git a/lib/superfox/librs.a b/lib/superfox/librs.a deleted file mode 100644 index 7acb1d5d037c86352355b7c3786561740b80c4cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99342 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 diff --git a/lib/superfox/rs_sf.c b/lib/superfox/rs_sf.c index 6b3154d11..7634f62e4 100644 --- a/lib/superfox/rs_sf.c +++ b/lib/superfox/rs_sf.c @@ -37,17 +37,7 @@ void rs_encode_sf_(int *dgen, int *sent) } } -void rs_decode_sf_(int *recd, int *era_pos, int *numera, int *decoded, - int *nerr) -/* -Decode received data recd[NN], producing decoded[KK]. Positiions of -erased symbols are specified in array era_pos[numera]. The number of -corrected errors is *nerr; if the data are uncorrectable, *nerr=-1 -is returned. -*/ +void rs_decode_sf_(int *recd, int *era_pos, int *numera, int *nerr) { *nerr=decode_rs_sf(rs_sf,recd,era_pos,*numera); - for(int i=0; i +void encode_rs_8(unsigned char *data, unsigned char *parity, int pad); + +int decode_rs_8(unsigned char *data, int *eras_pos, int no_eras, int pad); + void encode_rs_8_(unsigned char data[], unsigned char parity[], int *npad) { encode_rs_8(data,parity,*npad); //Compute the parity symbols