go back to separate task_abs, since gcc will inline fabs
fix/improvement to ifelse