/*! * l_dnaGetIValue() * * Input: da * index (into l_dna) * &ival (<return> integer value; 0 on error) * Return: 0 if OK; 1 on error * * Notes: * (1) Caller may need to check the function return value to * decide if a 0 in the returned ival is valid. */ l_int32 l_dnaGetIValue(L_DNA *da, l_int32 index, l_int32 *pival) { l_float64 val; PROCNAME("l_dnaGetIValue"); if (!pival) return ERROR_INT("&ival not defined", procName, 1); *pival = 0; if (!da) return ERROR_INT("da not defined", procName, 1); if (index < 0 || index >= da->n) return ERROR_INT("index not valid", procName, 1); val = da->array[index]; *pival = (l_int32)(val + L_SIGN(val) * 0.5); return 0; }
/*! * numaGetIValue() * * Input: na * index (into numa) * &ival (<return> integer value; 0 on error) * Return: 0 if OK; 1 on error * * Notes: * (1) Caller may need to check the function return value to * decide if a 0 in the returned ival is valid. */ l_int32 numaGetIValue(NUMA *na, l_int32 index, l_int32 *pival) { l_float32 val; PROCNAME("numaGetIValue"); if (!pival) return ERROR_INT("&ival not defined", procName, 1); *pival = 0; if (!na) return ERROR_INT("na not defined", procName, 1); if (index < 0 || index >= na->n) return ERROR_INT("index not valid", procName, 1); val = na->array[index]; *pival = (l_int32)(val + L_SIGN(val) * 0.5); return 0; }