643 lines
47 KiB
C#
643 lines
47 KiB
C#
//namespace QWERTYkez.Mensura.Units;
|
||
|
||
//[JsonConverter(typeof(UnitJsonConverter<XXXXXXXX>))]
|
||
//public readonly partial record struct XXXXXXXX : IMensuraUnit<XXXXXXXX>, IEquatable<XXXXXXXX>, IMensuraUnit
|
||
//{
|
||
// [JsonInclude, DataMember, JsonPropertyName("v"), Obsolete] // для JSON / EF на случай сбоев, если пробелма с _Value
|
||
// internal double Value { get => _Value; init => _Value = value; }
|
||
// internal readonly double _Value;
|
||
// internal XXXXXXXX(double value) => _Value = value;
|
||
|
||
// public override int GetHashCode() => _Value.GetHashCode();
|
||
// public int CompareTo(XXXXXXXX? other) => _Value.CompareTo(other is null ? 0d : other.Value._Value);
|
||
// public int CompareTo(XXXXXXXX other) => _Value.CompareTo(other._Value);
|
||
|
||
// public bool Equals(XXXXXXXX? other) => _Value.Equals(other?._Value);
|
||
|
||
|
||
// public static explicit operator XXXXXXXX(double val) => Unsafe.As<double, XXXXXXXX>(ref val);
|
||
// public static explicit operator double(XXXXXXXX unit) => unit._Value;
|
||
|
||
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||
// public XXXXXXXX Abs() => new(Math.Abs(_Value));
|
||
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||
// internal R Pow2_Internal<R>() where R : struct, IMensuraUnit, IEquatable<R> => (_Value * _Value).ToUnit<R>();
|
||
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||
// internal R Sqrt_Internal<R>() where R : struct, IMensuraUnit, IEquatable<R> => Math.Sqrt(_Value).ToUnit<R>();
|
||
|
||
|
||
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsPositive => _Value >= 0;
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsGreaterThanZero => _Value > 0;
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsNegative => double.IsNegative(_Value);
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsZero => _Value == 0;
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsNaN => double.IsNaN(_Value);
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsFinite => double.IsFinite(_Value);
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsInfinity => double.IsInfinity(_Value);
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsPositiveInfinity => double.IsPositiveInfinity(_Value);
|
||
// [JsonIgnore, IgnoreDataMember] public bool IsNegativeInfinity => double.IsNegativeInfinity(_Value);
|
||
|
||
|
||
// public static XXXXXXXX Zero { get; } = new(0d);
|
||
// public static XXXXXXXX Min { get; } = new(double.MinValue);
|
||
// public static XXXXXXXX Max { get; } = new(double.MaxValue);
|
||
// public static XXXXXXXX NegativeInfinity { get; } = new(double.NegativeInfinity);
|
||
// public static XXXXXXXX PositiveInfinity { get; } = new(double.PositiveInfinity);
|
||
|
||
// public static bool operator ==(XXXXXXXX? T1, XXXXXXXX? T2) => T1.Protected() == T2.Protected();
|
||
// public static bool operator !=(XXXXXXXX? T1, XXXXXXXX? T2) => T1.Protected() != T2.Protected();
|
||
|
||
// public static bool operator <(XXXXXXXX? T1, XXXXXXXX? T2) => T1.Protected() < T2.Protected();
|
||
// public static bool operator <=(XXXXXXXX? T1, XXXXXXXX? T2) => T1.Protected() <= T2.Protected();
|
||
// public static bool operator >(XXXXXXXX? T1, XXXXXXXX? T2) => T1.Protected() > T2.Protected();
|
||
// public static bool operator >=(XXXXXXXX? T1, XXXXXXXX? T2) => T1.Protected() >= T2.Protected();
|
||
|
||
|
||
// public static XXXXXXXX operator +(XXXXXXXX T2) => new(+T2._Value);
|
||
// public static XXXXXXXX operator +(XXXXXXXX T1, XXXXXXXX T2) => new(T1._Value + T2._Value);
|
||
// public static XXXXXXXX operator -(XXXXXXXX T2) => new(-T2._Value);
|
||
// public static XXXXXXXX operator -(XXXXXXXX T1, XXXXXXXX T2) => new(T1._Value - T2._Value);
|
||
|
||
|
||
// // double
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, double T2) => new(T1._Value * T2);
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, double? T2) => T1 * (T2 ?? 0d);
|
||
// public static XXXXXXXX operator *(double T1, XXXXXXXX T2) => new(T1 * T2._Value);
|
||
// public static XXXXXXXX operator *(double? T1, XXXXXXXX T2) => (T1 ?? 0d) * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, double T2) => new(T1._Value / T2);
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, double? T2) => T1 / (T2 ?? 0d);
|
||
// public static double operator /(XXXXXXXX T1, XXXXXXXX T2) => T1._Value / T2._Value;
|
||
|
||
// // sbyte
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, sbyte T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, sbyte? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(sbyte T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(sbyte? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, sbyte T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, sbyte? T2) => T1 / T2.ToDouble();
|
||
|
||
// // short
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, short T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, short? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(short T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(short? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, short T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, short? T2) => T1 / T2.ToDouble();
|
||
|
||
// // int
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, int T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, int? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(int T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(int? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, int T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, int? T2) => T1 / T2.ToDouble();
|
||
|
||
// // long
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, long T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, long? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(long T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(long? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, long T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, long? T2) => T1 / T2.ToDouble();
|
||
|
||
// // byte
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, byte T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, byte? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(byte T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(byte? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, byte T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, byte? T2) => T1 / T2.ToDouble();
|
||
|
||
// // ushort
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, ushort T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, ushort? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(ushort T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(ushort? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, ushort T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, ushort? T2) => T1 / T2.ToDouble();
|
||
|
||
// // uint
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, uint T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, uint? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(uint T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(uint? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, uint T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, uint? T2) => T1 / T2.ToDouble();
|
||
|
||
// // ulong
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, ulong T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, ulong? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(ulong T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(ulong? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, ulong T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, ulong? T2) => T1 / T2.ToDouble();
|
||
|
||
// // nint
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, nint T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, nint? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(nint T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(nint? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, nint T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, nint? T2) => T1 / T2.ToDouble();
|
||
|
||
// // nuint
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, nuint T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, nuint? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(nuint T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(nuint? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, nuint T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, nuint? T2) => T1 / T2.ToDouble();
|
||
|
||
// // float
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, float T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, float? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(float T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(float? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, float T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, float? T2) => T1 / T2.ToDouble();
|
||
|
||
// // decimal
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, decimal T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, decimal? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(decimal T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(decimal? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, decimal T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, decimal? T2) => T1 / T2.ToDouble();
|
||
|
||
//#if NET7_0_OR_GREATER
|
||
// // Int128
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, Int128 T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, Int128? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(Int128 T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(Int128? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, Int128 T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, Int128? T2) => T1 / T2.ToDouble();
|
||
|
||
// // UInt128
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, UInt128 T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(XXXXXXXX T1, UInt128? T2) => T1 * T2.ToDouble();
|
||
// public static XXXXXXXX operator *(UInt128 T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator *(UInt128? T1, XXXXXXXX T2) => T1.ToDouble() * T2;
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, UInt128 T2) => T1 / T2.ToDouble();
|
||
// public static XXXXXXXX operator /(XXXXXXXX T1, UInt128? T2) => T1 / T2.ToDouble();
|
||
//#endif
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// public static XXXXXXXX[] operator +(XXXXXXXX[] T1, XXXXXXXX T2) => T1.Plus(T2._Value);
|
||
// public static XXXXXXXX?[] operator +(XXXXXXXX?[] T1, XXXXXXXX T2) => T1.Plus(T2._Value);
|
||
// public static XXXXXXXX[] operator +(XXXXXXXX T1, XXXXXXXX[] T2) => T1._Value.Plus(T2);
|
||
// public static XXXXXXXX?[] operator +(XXXXXXXX T1, XXXXXXXX?[] T2) => T1._Value.Plus(T2);
|
||
// public static XXXXXXXX[] operator +(XXXXXXXX[] T1, XXXXXXXX? T2) => T1.Plus(T2.Protected());
|
||
// public static XXXXXXXX?[] operator +(XXXXXXXX?[] T1, XXXXXXXX? T2) => T1.Plus(T2.Protected());
|
||
// public static XXXXXXXX[] operator +(XXXXXXXX? T1, XXXXXXXX[] T2) => T1.Protected().Plus(T2);
|
||
// public static XXXXXXXX?[] operator +(XXXXXXXX? T1, XXXXXXXX?[] T2) => T1.Protected().Plus(T2);
|
||
|
||
// public static XXXXXXXX[] operator -(XXXXXXXX[] T1, XXXXXXXX T2) => T1.Minus(T2._Value);
|
||
// public static XXXXXXXX?[] operator -(XXXXXXXX?[] T1, XXXXXXXX T2) => T1.Minus(T2._Value);
|
||
// public static XXXXXXXX[] operator -(XXXXXXXX T1, XXXXXXXX[] T2) => T1._Value.Minus(T2);
|
||
// public static XXXXXXXX?[] operator -(XXXXXXXX T1, XXXXXXXX?[] T2) => T1._Value.Minus(T2);
|
||
// public static XXXXXXXX[] operator -(XXXXXXXX[] T1, XXXXXXXX? T2) => T1.Minus(T2.Protected());
|
||
// public static XXXXXXXX?[] operator -(XXXXXXXX?[] T1, XXXXXXXX? T2) => T1.Minus(T2.Protected());
|
||
// public static XXXXXXXX[] operator -(XXXXXXXX? T1, XXXXXXXX[] T2) => T1.Protected().Minus(T2);
|
||
// public static XXXXXXXX?[] operator -(XXXXXXXX? T1, XXXXXXXX?[] T2) => T1.Protected().Minus(T2);
|
||
|
||
// public static double[] operator /(XXXXXXXX T1, XXXXXXXX[] T2) => T1.Div(T2);
|
||
// public static double?[] operator /(XXXXXXXX T1, XXXXXXXX?[] T2) => T1.Div(T2);
|
||
// public static double[] operator /(XXXXXXXX[] T1, XXXXXXXX T2) => T1.Div(T2);
|
||
// public static double?[] operator /(XXXXXXXX?[] T1, XXXXXXXX T2) => T1.Div(T2);
|
||
// public static double[] operator /(XXXXXXXX? T1, XXXXXXXX[] T2) => T1.ProtectedU().Div(T2);
|
||
// public static double?[] operator /(XXXXXXXX? T1, XXXXXXXX?[] T2) => T1.ProtectedU().Div(T2);
|
||
// public static double[] operator /(XXXXXXXX[] T1, XXXXXXXX? T2) => T1.Div(T2.ProtectedU());
|
||
// public static double?[] operator /(XXXXXXXX?[] T1, XXXXXXXX? T2) => T1.Div(T2.ProtectedU());
|
||
|
||
|
||
// // double
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, double[] T2) => T1.Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, double?[] T2) => T1.Mul(T2);
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, double[] T2) => T1.ProtectedU().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, double?[] T2) => T1.ProtectedU().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(double[] T1, XXXXXXXX T2) => T1.Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(double?[] T1, XXXXXXXX T2) => T1.Mul(T2);
|
||
// public static XXXXXXXX[] operator *(double[] T1, XXXXXXXX? T2) => T1.Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(double?[] T1, XXXXXXXX? T2) => T1.Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, double[] T2) => T1.Div(T2);
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, double?[] T2) => T1.Div(T2);
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, double[] T2) => T1.ProtectedU().Div(T2);
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, double?[] T2) => T1.ProtectedU().Div(T2);
|
||
|
||
// // sbyte
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, sbyte[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, sbyte?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, sbyte[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, sbyte?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(sbyte[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(sbyte?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(sbyte[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(sbyte?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, sbyte[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, sbyte?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, sbyte[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, sbyte?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // short
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, short[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, short?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, short[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, short?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(short[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(short?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(short[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(short?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, short[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, short?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, short[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, short?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // int
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, int[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, int?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, int[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, int?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(int[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(int?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(int[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(int?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, int[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, int?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, int[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, int?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // long
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, long[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, long?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, long[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, long?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(long[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(long?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(long[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(long?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, long[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, long?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, long[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, long?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // byte
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, byte[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, byte?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, byte[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, byte?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(byte[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(byte?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(byte[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(byte?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, byte[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, byte?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, byte[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, byte?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // ushort
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, ushort[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, ushort?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, ushort[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, ushort?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(ushort[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(ushort?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(ushort[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(ushort?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, ushort[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, ushort?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, ushort[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, ushort?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // uint
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, uint[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, uint?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, uint[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, uint?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(uint[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(uint?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(uint[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(uint?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, uint[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, uint?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, uint[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, uint?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // ulong
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, ulong[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, ulong?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, ulong[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, ulong?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(ulong[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(ulong?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(ulong[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(ulong?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, ulong[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, ulong?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, ulong[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, ulong?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // nint
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, nint[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, nint?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, nint[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, nint?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(nint[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(nint?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(nint[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(nint?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, nint[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, nint?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, nint[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, nint?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // nuint
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, nuint[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, nuint?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, nuint[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, nuint?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(nuint[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(nuint?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(nuint[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(nuint?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, nuint[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, nuint?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, nuint[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, nuint?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // float
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, float[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, float?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, float[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, float?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(float[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(float?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(float[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(float?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, float[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, float?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, float[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, float?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // decimal
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, decimal[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, decimal?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, decimal[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, decimal?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(decimal[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(decimal?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(decimal[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(decimal?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, decimal[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, decimal?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, decimal[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, decimal?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
//#if NET7_0_OR_GREATER
|
||
// // Int128
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, Int128[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, Int128?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, Int128[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, Int128?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(Int128[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(Int128?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(Int128[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(Int128?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, Int128[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, Int128?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, Int128[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, Int128?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
|
||
// // UInt128
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX T1, UInt128[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX T1, UInt128?[] T2) => T1.Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(XXXXXXXX? T1, UInt128[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator *(XXXXXXXX? T1, UInt128?[] T2) => T1.ProtectedU().Mul(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator *(UInt128[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX?[] operator *(UInt128?[] T1, XXXXXXXX T2) => T1.ToDouble().Mul(T2);
|
||
// public static XXXXXXXX[] operator *(UInt128[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX?[] operator *(UInt128?[] T1, XXXXXXXX? T2) => T1.ToDouble().Mul(T2.ProtectedU());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX T1, UInt128[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX T1, UInt128?[] T2) => T1.Div(T2.ToDouble());
|
||
// public static XXXXXXXX[] operator /(XXXXXXXX? T1, UInt128[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
// public static XXXXXXXX?[] operator /(XXXXXXXX? T1, UInt128?[] T2) => T1.ProtectedU().Div(T2.ToDouble());
|
||
//#endif
|
||
//}
|
||
|
||
//public static class XXXXXXXXExtensions
|
||
//{
|
||
// internal static double Protected(this XXXXXXXX? unit) => unit is null ? 0d : unit.Value._Value;
|
||
// internal static XXXXXXXX ProtectedU(this XXXXXXXX? unit) => unit is null ? XXXXXXXX.Zero : unit.Value;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// // === ReadOnlySpan
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this ReadOnlySpan<XXXXXXXX> units,
|
||
// double divisor, Span<XXXXXXXX> destination) => units.Div<XXXXXXXX>(divisor, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this ReadOnlySpan<XXXXXXXX?> units,
|
||
// double divisor, Span<XXXXXXXX?> destination) => units.Div<XXXXXXXX>(divisor, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this double dividend,
|
||
// ReadOnlySpan<XXXXXXXX> units, Span<XXXXXXXX> destination) => dividend.Div<XXXXXXXX>(units, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this double dividend,
|
||
// ReadOnlySpan<XXXXXXXX?> units, Span<XXXXXXXX?> destination) => dividend.Div<XXXXXXXX>(units, destination);
|
||
|
||
// // === Array ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]public static XXXXXXXX[] Div(
|
||
// this XXXXXXXX[] units, double divisor) => units.Div<XXXXXXXX>(divisor);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static XXXXXXXX?[] Div(
|
||
// this XXXXXXXX?[] units, double divisor) => units.Div<XXXXXXXX>(divisor);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static XXXXXXXX[] Div(
|
||
// this double dividend, XXXXXXXX[] units) => dividend.Div<XXXXXXXX>(units);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static XXXXXXXX?[] Div(
|
||
// this double dividend, XXXXXXXX?[] units) => dividend.Div<XXXXXXXX>(units);
|
||
|
||
// // === List<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX> Div(
|
||
// this List<XXXXXXXX> units, double divisor) => units.Div<XXXXXXXX>(divisor);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX?> Div(
|
||
// this List<XXXXXXXX?> units, double divisor) => units.Div<XXXXXXXX>(divisor);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX> Div(
|
||
// this double dividend, List<XXXXXXXX> units) => dividend.Div<XXXXXXXX>(units);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX?> Div(
|
||
// this double dividend, List<XXXXXXXX?> units) => dividend.Div<XXXXXXXX>(units);
|
||
|
||
// // === ICollection<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this ICollection<XXXXXXXX> units,
|
||
// double divisor, Span<XXXXXXXX> destination) => units.Div<XXXXXXXX>(divisor, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this ICollection<XXXXXXXX?> units,
|
||
// double divisor, Span<XXXXXXXX?> destination) => units.Div<XXXXXXXX>(divisor, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this double dividend,
|
||
// ICollection<XXXXXXXX> units, Span<XXXXXXXX> destination) => dividend.Div<XXXXXXXX>(units, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this double dividend,
|
||
// ICollection<XXXXXXXX?> units, Span<XXXXXXXX?> destination) => dividend.Div<XXXXXXXX>(units, destination);
|
||
|
||
// // === IReadOnlyCollection<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]public static void Div(this IReadOnlyCollection<XXXXXXXX> units,
|
||
// double divisor, Span<XXXXXXXX> destination) => units.Div<XXXXXXXX>(divisor, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]public static void Div(this IReadOnlyCollection<XXXXXXXX?> units,
|
||
// double divisor, Span<XXXXXXXX?> destination) => units.Div<XXXXXXXX>(divisor, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this double dividend,
|
||
// IReadOnlyCollection<XXXXXXXX> units, Span<XXXXXXXX> destination) => dividend.Div<XXXXXXXX>(units, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Div(this double dividend,
|
||
// IReadOnlyCollection<XXXXXXXX?> units, Span<XXXXXXXX?> destination) => dividend.Div<XXXXXXXX>(units, destination);
|
||
|
||
// // === IEnumerable<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX> Div(
|
||
// this IEnumerable<XXXXXXXX> units, double divisor) => units.Div<XXXXXXXX>(divisor);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX?> Div(
|
||
// this IEnumerable<XXXXXXXX?> units, double divisor) => units.Div<XXXXXXXX>(divisor);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX> Div(
|
||
// this double dividend, IEnumerable<XXXXXXXX> units) => dividend.Div<XXXXXXXX>(units);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX?> Div(
|
||
// this double dividend, IEnumerable<XXXXXXXX?> units) => dividend.Div<XXXXXXXX>(units);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// // === ReadOnlySpan
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this ReadOnlySpan<XXXXXXXX> units,
|
||
// double multiplicator, Span<XXXXXXXX> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this ReadOnlySpan<XXXXXXXX?> units,
|
||
// double multiplicator, Span<XXXXXXXX?> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this double multiplicator,
|
||
// ReadOnlySpan<XXXXXXXX> units, Span<XXXXXXXX> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this double multiplicator,
|
||
// ReadOnlySpan<XXXXXXXX?> units, Span<XXXXXXXX?> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
|
||
// // === Array ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]public static XXXXXXXX[] Mul(
|
||
// this XXXXXXXX[] units, double multiplicator) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static XXXXXXXX?[] Mul(
|
||
// this XXXXXXXX?[] units, double multiplicator) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static XXXXXXXX[] Mul(
|
||
// this double multiplicator, XXXXXXXX[] units) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static XXXXXXXX?[] Mul(
|
||
// this double multiplicator, XXXXXXXX?[] units) => units.Mul<XXXXXXXX>(multiplicator);
|
||
|
||
// // === List<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX> Mul(
|
||
// this List<XXXXXXXX> units, double multiplicator) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX?> Mul(
|
||
// this List<XXXXXXXX?> units, double multiplicator) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX> Mul(
|
||
// this double multiplicator, List<XXXXXXXX> units) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static List<XXXXXXXX?> Mul(
|
||
// this double multiplicator, List<XXXXXXXX?> units) => units.Mul<XXXXXXXX>(multiplicator);
|
||
|
||
// // === ICollection<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this ICollection<XXXXXXXX> units,
|
||
// double multiplicator, Span<XXXXXXXX> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this ICollection<XXXXXXXX?> units,
|
||
// double multiplicator, Span<XXXXXXXX?> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this double multiplicator,
|
||
// ICollection<XXXXXXXX> units, Span<XXXXXXXX> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this double multiplicator,
|
||
// ICollection<XXXXXXXX?> units, Span<XXXXXXXX?> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
|
||
// // === IReadOnlyCollection<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]public static void Mul(this IReadOnlyCollection<XXXXXXXX> units,
|
||
// double multiplicator, Span<XXXXXXXX> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)]public static void Mul(this IReadOnlyCollection<XXXXXXXX?> units,
|
||
// double multiplicator, Span<XXXXXXXX?> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this double multiplicator,
|
||
// IReadOnlyCollection<XXXXXXXX> units, Span<XXXXXXXX> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Mul(this double multiplicator,
|
||
// IReadOnlyCollection<XXXXXXXX?> units, Span<XXXXXXXX?> destination) => units.Mul<XXXXXXXX>(multiplicator, destination);
|
||
|
||
// // === IEnumerable<T> ===
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX> Mul(
|
||
// this IEnumerable<XXXXXXXX> units, double multiplicator) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX?> Mul(
|
||
// this IEnumerable<XXXXXXXX?> units, double multiplicator) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX> Mul(
|
||
// this double multiplicator, IEnumerable<XXXXXXXX> units) => units.Mul<XXXXXXXX>(multiplicator);
|
||
// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable<XXXXXXXX?> Mul(
|
||
// this double multiplicator, IEnumerable<XXXXXXXX?> units) => units.Mul<XXXXXXXX>(multiplicator);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// // Sum Avg Max Min (не nullable) ==========================================
|
||
|
||
|
||
// // === ReadOnlySpan === SIMD
|
||
// public static XXXXXXXX Sum(this ReadOnlySpan<XXXXXXXX> units) => AggregateUnitExtensions.Sum(units);
|
||
// public static XXXXXXXX Avg(this ReadOnlySpan<XXXXXXXX> units) => AggregateUnitExtensions.Avg(units);
|
||
// public static XXXXXXXX Max(this ReadOnlySpan<XXXXXXXX> units) => AggregateUnitExtensions.Max(units);
|
||
// public static XXXXXXXX Min(this ReadOnlySpan<XXXXXXXX> units) => AggregateUnitExtensions.Min(units);
|
||
|
||
// // === List<T> ===
|
||
// public static XXXXXXXX Sum(this List<XXXXXXXX> list) => AggregateUnitExtensions.Sum(list);
|
||
// public static XXXXXXXX Avg(this List<XXXXXXXX> list) => AggregateUnitExtensions.Avg(list);
|
||
// public static XXXXXXXX Max(this List<XXXXXXXX> list) => AggregateUnitExtensions.Max(list);
|
||
// public static XXXXXXXX Min(this List<XXXXXXXX> list) => AggregateUnitExtensions.Min(list);
|
||
|
||
// // === ICollection<T> ===
|
||
// public static XXXXXXXX Sum(this ICollection<XXXXXXXX> collection) => AggregateUnitExtensions.Sum(collection);
|
||
// public static XXXXXXXX Avg(this ICollection<XXXXXXXX> collection) => AggregateUnitExtensions.Avg(collection);
|
||
// public static XXXXXXXX Max(this ICollection<XXXXXXXX> collection) => AggregateUnitExtensions.Max(collection);
|
||
// public static XXXXXXXX Min(this ICollection<XXXXXXXX> collection) => AggregateUnitExtensions.Min(collection);
|
||
|
||
// // === IReadOnlyCollection<T> ===
|
||
// public static XXXXXXXX Sum(this IReadOnlyCollection<XXXXXXXX> collection) => AggregateUnitExtensions.Sum(collection);
|
||
// public static XXXXXXXX Avg(this IReadOnlyCollection<XXXXXXXX> collection) => AggregateUnitExtensions.Avg(collection);
|
||
// public static XXXXXXXX Max(this IReadOnlyCollection<XXXXXXXX> collection) => AggregateUnitExtensions.Max(collection);
|
||
// public static XXXXXXXX Min(this IReadOnlyCollection<XXXXXXXX> collection) => AggregateUnitExtensions.Min(collection);
|
||
|
||
|
||
// // === IEnumerable<T> ===
|
||
// public static XXXXXXXX Sum(this IEnumerable<XXXXXXXX> collection) => AggregateUnitExtensions.Sum(collection);
|
||
// public static XXXXXXXX Avg(this IEnumerable<XXXXXXXX> collection) => AggregateUnitExtensions.Avg(collection);
|
||
// public static XXXXXXXX Max(this IEnumerable<XXXXXXXX> collection) => AggregateUnitExtensions.Max(collection);
|
||
// public static XXXXXXXX Min(this IEnumerable<XXXXXXXX> collection) => AggregateUnitExtensions.Min(collection);
|
||
|
||
|
||
|
||
// // Sum Avg Max Min (nullable) ==========================================
|
||
|
||
|
||
// // === ReadOnlySpan ===
|
||
// public static XXXXXXXX Sum(this ReadOnlySpan<XXXXXXXX?> units) => AggregateUnitExtensions.Sum(units);
|
||
// public static XXXXXXXX Avg(this ReadOnlySpan<XXXXXXXX?> units) => AggregateUnitExtensions.Avg(units);
|
||
// public static XXXXXXXX Max(this ReadOnlySpan<XXXXXXXX?> units) => AggregateUnitExtensions.Max(units);
|
||
// public static XXXXXXXX Min(this ReadOnlySpan<XXXXXXXX?> units) => AggregateUnitExtensions.Min(units);
|
||
|
||
// // === List<T> ===
|
||
// public static XXXXXXXX Sum(this List<XXXXXXXX?> list) => AggregateUnitExtensions.Sum(list);
|
||
// public static XXXXXXXX Avg(this List<XXXXXXXX?> list) => AggregateUnitExtensions.Avg(list);
|
||
// public static XXXXXXXX Max(this List<XXXXXXXX?> list) => AggregateUnitExtensions.Max(list);
|
||
// public static XXXXXXXX Min(this List<XXXXXXXX?> list) => AggregateUnitExtensions.Min(list);
|
||
|
||
// // === ICollection<T> ===
|
||
// public static XXXXXXXX Sum(this ICollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Sum(collection);
|
||
// public static XXXXXXXX Avg(this ICollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Avg(collection);
|
||
// public static XXXXXXXX Max(this ICollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Max(collection);
|
||
// public static XXXXXXXX Min(this ICollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Min(collection);
|
||
|
||
// // === IReadOnlyCollection<T> ===
|
||
// public static XXXXXXXX Sum(this IReadOnlyCollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Sum(collection);
|
||
// public static XXXXXXXX Avg(this IReadOnlyCollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Avg(collection);
|
||
// public static XXXXXXXX Max(this IReadOnlyCollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Max(collection);
|
||
// public static XXXXXXXX Min(this IReadOnlyCollection<XXXXXXXX?> collection) => AggregateUnitExtensions.Min(collection);
|
||
|
||
// // === IEnumerable<T> ===
|
||
// public static XXXXXXXX Sum(this IEnumerable<XXXXXXXX?> collection) => AggregateUnitExtensions.Sum(collection);
|
||
// public static XXXXXXXX Avg(this IEnumerable<XXXXXXXX?> collection) => AggregateUnitExtensions.Avg(collection);
|
||
// public static XXXXXXXX Max(this IEnumerable<XXXXXXXX?> collection) => AggregateUnitExtensions.Max(collection);
|
||
// public static XXXXXXXX Min(this IEnumerable<XXXXXXXX?> collection) => AggregateUnitExtensions.Min(collection);
|
||
//} |