/* This is a check routine for Benchmark #8, part b, large sparse matrices. It will verify that the Lg Path Probability is correct for the path given in B. Parameters: Provided by the calling routine: N = The size of the A matrices K = The number of A matrices L = Number of non-zeros in each row and column of each A matrix T = The length of D, and one less than the length of B A = K long array of N by N matrices, packed into N by L arrays. IA = N by L array of indices for the packing of A B = T+1 long array containing the best path D = T long array of integers between 1 and K used to select the appropriate A matrix. Z = The probability of this path ZZ = Expected probability of path Returned by this routine: IER = Error code */ #include "s8s.h" /* CVS info */ /* \$Date: 2005/01/10 20:56:31 \$ */ /* \$Revision: 1.2 \$ */ /* \$RCSfile: c8sc.c,v \$ */ /* \$Name: rel_5 \$ */ static char cvs_info[] = "BMARKGRP \$Date: 2005/01/10 20:56:31 \$ \$Revision: 1.2 \$ \$RCSfile: c8sc.c,v \$ \$Name: rel_5 \$"; void c8s(int n, int k, int l, int t, double a[NMATRICES][NONZERO][MATRIXSIZE], long ia[NONZERO][MATRIXSIZE], long b[DLEN+1], long d[DLEN], double z, double *zz, int *ier) { int i,j; double fabs(); #define DELTA .00002 /* An allowable difference in score */ *ier = 0; /* First check the score */ *zz = 0; for (i=0;i DELTA) { *ier = 2; return; } /* Path Probability ok */ return; }