int main(){ #ifdef _WIN32 MAIN_LOOP(false); #else main_loop_(false); #endif }
static void mlib_VolumeWindowLevel1( mlib_u8 *dst, const mlib_s16 *src, mlib_s32 window, mlib_s32 level, mlib_s32 gmax, mlib_s32 gmin, mlib_s32 len) { INIT_VARS; mlib_s32 ia4[1]; mlib_f32 A; while (2 * a < 1 && scale < 7) { a *= 2; scale++; } vis_write_gsr((7 - scale) << 3); ia = a * 256.0 + 0.5; if (ia > MLIB_U8_MAX) ia = MLIB_U8_MAX; ia4[0] = (ia << 24) | (ia << 16) | (ia << 8) | ia; A = *(mlib_f32 *)ia4; dgmin = vis_to_double_dup(((gmin << 16) | gmin) << scale); if (window >= (1 << 15)) { dwin = 0; ia = ((gmax + gmin) << scale) * 0.5 - level * a; dgmin = vis_to_double_dup((ia << 16) | (ia & 0xFFFF)); } PRE_LOOP(MLIB_CALC1); #pragma pipeloop(0) MAIN_LOOP(MLIB_CALC1); END_LOOP(MLIB_CALC1); }
static void mlib_VolumeWindowLevel2( mlib_u8 *dst, const mlib_s16 *src, mlib_s32 window, mlib_s32 level, mlib_s32 gmax, mlib_s32 gmin, mlib_s32 len) { INIT_VARS; mlib_d64 A; while (2 * a < (1 << 7) && scale < 7) { a *= 2; scale++; } vis_write_gsr((7 - scale) << 3); WRITE_BMASK(0x13579BDF); ia = a * 256.0 + 0.5; if (ia > MLIB_S16_MAX) ia = MLIB_S16_MAX; A = vis_to_double_dup((ia << 16) | (ia & 0xFFFF)); dgmin = vis_to_double_dup(((gmin << 16) | gmin) << scale); PRE_LOOP(MLIB_CALC2); #pragma pipeloop(0) MAIN_LOOP(MLIB_CALC2); END_LOOP(MLIB_CALC2); }