G5A7WNRVGFKY2ZBULA4LKS5F7X4VTCMNOKLQCTGKSCKBKE26E23QC
return less<T>(x.val, y.val) ||
(equal_to<T>(x.val, y.val) && less<T>(x.eps, y.eps));
if (less<T>(x.val, y.val))
return true;
if (less<T>(y.val, x.val))
return false;
if (less<T>(x.eps, y.eps))
return true;
if (less<T>(y.eps, x.eps))
return false;
return false;
return sqrt(pow2(x));
// return sqrt(pow2(x));
return {fabs(x.val), copysign(T{1}, x.val) * x.eps};
}
template <typename T> constexpr dual<T> pow(const dual<T> &x, const int n) {
if (n == 0)
return {1, 0};
return {pow(x.val, n), n * pow(x.val, n - 1) * x.eps};