why are you using `std::numeric_limits<double>::min()` instead of `std::numeric_limits<double>::epsilon()`? i'm just curious in which case we should use `min()`...