paramgrill: fixed a bunch of div-by-zero
they were pretty easy to trigger by the way, just start an extended paramgrill session to find a compression table based on any sample, it would necessarily happen at some point.
This commit is contained in:
+25
-18
@@ -468,7 +468,7 @@ static void paramVariation(paramValues_t* ptr, memoTable_t* mtAll, const U32 nbC
|
|||||||
static paramValues_t randomParams(void)
|
static paramValues_t randomParams(void)
|
||||||
{
|
{
|
||||||
varInds_t v; paramValues_t p;
|
varInds_t v; paramValues_t p;
|
||||||
for(v = 0; v <= NUM_PARAMS; v++) {
|
for(v = 0; v < NUM_PARAMS; v++) {
|
||||||
p.vals[v] = rangeMap(v, FUZ_rand(&g_rand) % rangetable[v]);
|
p.vals[v] = rangeMap(v, FUZ_rand(&g_rand) % rangetable[v]);
|
||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
@@ -632,32 +632,39 @@ static void BMK_translateAdvancedParams(FILE* f, const paramValues_t params) {
|
|||||||
varInds_t v;
|
varInds_t v;
|
||||||
int first = 1;
|
int first = 1;
|
||||||
fprintf(f,"--zstd=");
|
fprintf(f,"--zstd=");
|
||||||
for(v = 0; v < NUM_PARAMS; v++) {
|
for (v = 0; v < NUM_PARAMS; v++) {
|
||||||
if(g_silenceParams[v]) { continue; }
|
if (g_silenceParams[v]) { continue; }
|
||||||
if(!first) { fprintf(f, ","); }
|
if (!first) { fprintf(f, ","); }
|
||||||
fprintf(f,"%s=", g_paramNames[v]);
|
fprintf(f,"%s=", g_paramNames[v]);
|
||||||
|
|
||||||
if(v == strt_ind) { fprintf(f,"%u", params.vals[v]); }
|
if (v == strt_ind) { fprintf(f,"%u", params.vals[v]); }
|
||||||
else { displayParamVal(f, v, params.vals[v], 0); }
|
else { displayParamVal(f, v, params.vals[v], 0); }
|
||||||
first = 0;
|
first = 0;
|
||||||
}
|
}
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BMK_displayOneResult(FILE* f, winnerInfo_t res, const size_t srcSize) {
|
static void BMK_displayOneResult(FILE* f, winnerInfo_t res, const size_t srcSize)
|
||||||
varInds_t v;
|
{
|
||||||
int first = 1;
|
varInds_t v;
|
||||||
res.params = cParamUnsetMin(res.params);
|
int first = 1;
|
||||||
fprintf(f," {");
|
res.params = cParamUnsetMin(res.params);
|
||||||
for(v = 0; v < NUM_PARAMS; v++) {
|
fprintf(f, " {");
|
||||||
if(g_silenceParams[v]) { continue; }
|
for (v = 0; v < NUM_PARAMS; v++) {
|
||||||
if(!first) { fprintf(f, ","); }
|
if (g_silenceParams[v]) { continue; }
|
||||||
displayParamVal(f, v, res.params.vals[v], 3);
|
if (!first) { fprintf(f, ","); }
|
||||||
first = 0;
|
displayParamVal(f, v, res.params.vals[v], 3);
|
||||||
}
|
first = 0;
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(f, " }, /* R:%5.3f at %5.1f MB/s - %5.1f MB/s */\n",
|
{ double const ratio = res.result.cSize ?
|
||||||
(double)srcSize / res.result.cSize, (double)res.result.cSpeed / MB_UNIT, (double)res.result.dSpeed / MB_UNIT);
|
(double)srcSize / res.result.cSize : 0;
|
||||||
|
double const cSpeedMBps = (double)res.result.cSpeed / MB_UNIT;
|
||||||
|
double const dSpeedMBps = (double)res.result.dSpeed / MB_UNIT;
|
||||||
|
|
||||||
|
fprintf(f, " }, /* R:%5.3f at %5.1f MB/s - %5.1f MB/s */\n",
|
||||||
|
ratio, cSpeedMBps, dSpeedMBps);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Writes to f the results of a parameter benchmark */
|
/* Writes to f the results of a parameter benchmark */
|
||||||
|
|||||||
Reference in New Issue
Block a user