MCPcopy Create free account
hub / github.com/F-Stack/f-stack / parseFastCoverParameters

Function parseFastCoverParameters

freebsd/contrib/zstd/programs/zstdcli.c:432–464  ·  view source on GitHub ↗

* parseFastCoverParameters() : * reads fastcover parameters from *stringPtr (e.g. "--train-fastcover=k=48,d=8,f=20,steps=32,accel=2") into *params * @return 1 means that fastcover parameters were correct * @return 0 in case of malformed parameters */

Source from the content-addressed store, hash-verified

430 * @return 0 in case of malformed parameters
431 */
432static unsigned parseFastCoverParameters(const char* stringPtr, ZDICT_fastCover_params_t* params)
433{
434 memset(params, 0, sizeof(*params));
435 for (; ;) {
436 if (longCommandWArg(&stringPtr, "k=")) { params->k = readU32FromChar(&stringPtr); if (stringPtr[0]==',') { stringPtr++; continue; } else break; }
437 if (longCommandWArg(&stringPtr, "d=")) { params->d = readU32FromChar(&stringPtr); if (stringPtr[0]==',') { stringPtr++; continue; } else break; }
438 if (longCommandWArg(&stringPtr, "f=")) { params->f = readU32FromChar(&stringPtr); if (stringPtr[0]==',') { stringPtr++; continue; } else break; }
439 if (longCommandWArg(&stringPtr, "steps=")) { params->steps = readU32FromChar(&stringPtr); if (stringPtr[0]==',') { stringPtr++; continue; } else break; }
440 if (longCommandWArg(&stringPtr, "accel=")) { params->accel = readU32FromChar(&stringPtr); if (stringPtr[0]==',') { stringPtr++; continue; } else break; }
441 if (longCommandWArg(&stringPtr, "split=")) {
442 unsigned splitPercentage = readU32FromChar(&stringPtr);
443 params->splitPoint = (double)splitPercentage / 100.0;
444 if (stringPtr[0]==',') { stringPtr++; continue; } else break;
445 }
446 if (longCommandWArg(&stringPtr, "shrink")) {
447 params->shrinkDictMaxRegression = kDefaultRegression;
448 params->shrinkDict = 1;
449 if (stringPtr[0]=='=') {
450 stringPtr++;
451 params->shrinkDictMaxRegression = readU32FromChar(&stringPtr);
452 }
453 if (stringPtr[0]==',') {
454 stringPtr++;
455 continue;
456 }
457 else break;
458 }
459 return 0;
460 }
461 if (stringPtr[0] != 0) return 0;
462 DISPLAYLEVEL(4, "cover: k=%u\nd=%u\nf=%u\nsteps=%u\nsplit=%u\naccel=%u\nshrink=%u\n", params->k, params->d, params->f, params->steps, (unsigned)(params->splitPoint * 100), params->accel, params->shrinkDictMaxRegression);
463 return 1;
464}
465
466/**
467 * parseLegacyParameters() :

Callers 1

mainFunction · 0.85

Calls 3

memsetFunction · 0.85
longCommandWArgFunction · 0.85
readU32FromCharFunction · 0.70

Tested by

no test coverage detected