optimized evaluation function - no ceil()