rename max/min to maximum/minimum
specialize min/max functors to mitigate performance issues in reduction