public static Real Min(this Real d1, Real d2) => d1 > d2 ? d2 : d1;
public static bool IsFinite(this Real d) => double.IsFinite(d.Data);
public static Real Truncate(this Real d) => Math.Truncate(d.Data);
public static Real Acosh(this Real x) => Math.Acosh(x.Data);
protected override Real create(Real xr) { return(create(xr.Numer, xr.Denom)); }
public static Real Cosh(this Real a) => Math.Cosh(a.Data);
public static Real Asin(this Real x) => Math.Asin(x.Data);
public static Real Exp(Real d) => d.Exp;
public static Real Log(Real d) => d.Log;
public static Real Sqrt(Real d) => d.Sqrt;
public static Real Cbrt(Real d) => Math.Cbrt(d.Data);
public static Real Abs(Real d) => d.Abs;
public static int Sign(Real d) => d.Sign;
public static bool IsPositiveInfinity(this Real d) => double.IsPositiveInfinity(d.Data);
public static Real Max(this Real d1, Real d2) => d1 < d2 ? d2 : d1;
public static Real Log10(Real d) => d.Log10;
public static Real Sinh(this Real a) => Math.Sinh(a.Data);
public static Real Logx(Real d, Real newBase) => d.Logx(newBase);
public static Real Tanh(this Real a) => Math.Tanh(a.Data);
public static Real Floor(this Real d) => Math.Floor(d.Data);
public static Real Atan2(this Real y, Real x) => Math.Atan2(y.Data, x.Data);
public static Real Ceiling(this Real d) => Math.Ceiling(d.Data);
public static Real Atanh(this Real x) => Math.Atanh(x.Data);
public static Real Round(this Real d) => Math.Round(d.Data);
public static Real ToReal(Real r) => r;
public static bool IsSubnormal(this Real d) => double.IsSubnormal(d.Data);