diff options
Diffstat (limited to 'src/System.Private.CoreLib/shared/System/Numerics/Vector.cs')
-rw-r--r-- | src/System.Private.CoreLib/shared/System/Numerics/Vector.cs | 4501 |
1 files changed, 2268 insertions, 2233 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Numerics/Vector.cs b/src/System.Private.CoreLib/shared/System/Numerics/Vector.cs index 5fd286732..31a9114e3 100644 --- a/src/System.Private.CoreLib/shared/System/Numerics/Vector.cs +++ b/src/System.Private.CoreLib/shared/System/Numerics/Vector.cs @@ -2,9 +2,13 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#if netcoreapp +using Internal.Runtime.CompilerServices; +#endif using System.Globalization; using System.Numerics.Hashing; using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; using System.Text; namespace System.Numerics @@ -12,8 +16,8 @@ namespace System.Numerics /* Note: The following patterns are used throughout the code here and are described here * * PATTERN: - * if (typeof(T) == typeof(Int32)) { ... } - * else if (typeof(T) == typeof(Single)) { ... } + * if (typeof(T) == typeof(int)) { ... } + * else if (typeof(T) == typeof(float)) { ... } * EXPLANATION: * At runtime, each instantiation of Vector<T> will be type-specific, and each of these typeof blocks will be eliminated, * as typeof(T) is a (JIT) compile-time constant for each instantiation. This design was chosen to eliminate any overhead from @@ -96,7 +100,7 @@ namespace System.Numerics internal byte _byte; } - // Calculates the size of this struct in bytes, by computing the offset of a field in a structure + // Calculates the size of this struct in bytes, by computing the offset of a field in a structure private static unsafe int InitializeCount() { VectorSizeHelper vsh; @@ -105,45 +109,45 @@ namespace System.Numerics int vectorSizeInBytes = (int)(byteBase - vectorBase); int typeSizeInBytes = -1; - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - typeSizeInBytes = sizeof(Byte); + typeSizeInBytes = sizeof(byte); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - typeSizeInBytes = sizeof(SByte); + typeSizeInBytes = sizeof(sbyte); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - typeSizeInBytes = sizeof(UInt16); + typeSizeInBytes = sizeof(ushort); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - typeSizeInBytes = sizeof(Int16); + typeSizeInBytes = sizeof(short); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - typeSizeInBytes = sizeof(UInt32); + typeSizeInBytes = sizeof(uint); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - typeSizeInBytes = sizeof(Int32); + typeSizeInBytes = sizeof(int); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - typeSizeInBytes = sizeof(UInt64); + typeSizeInBytes = sizeof(ulong); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - typeSizeInBytes = sizeof(Int64); + typeSizeInBytes = sizeof(long); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - typeSizeInBytes = sizeof(Single); + typeSizeInBytes = sizeof(float); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - typeSizeInBytes = sizeof(Double); + typeSizeInBytes = sizeof(double); } else { @@ -164,204 +168,204 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - fixed (Byte* basePtr = &this.register.byte_0) + fixed (byte* basePtr = &this.register.byte_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Byte)(object)value; + *(basePtr + g) = (byte)(object)value; } } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - fixed (SByte* basePtr = &this.register.sbyte_0) + fixed (sbyte* basePtr = &this.register.sbyte_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (SByte)(object)value; + *(basePtr + g) = (sbyte)(object)value; } } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - fixed (UInt16* basePtr = &this.register.uint16_0) + fixed (ushort* basePtr = &this.register.uint16_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (UInt16)(object)value; + *(basePtr + g) = (ushort)(object)value; } } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - fixed (Int16* basePtr = &this.register.int16_0) + fixed (short* basePtr = &this.register.int16_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Int16)(object)value; + *(basePtr + g) = (short)(object)value; } } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - fixed (UInt32* basePtr = &this.register.uint32_0) + fixed (uint* basePtr = &this.register.uint32_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (UInt32)(object)value; + *(basePtr + g) = (uint)(object)value; } } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - fixed (Int32* basePtr = &this.register.int32_0) + fixed (int* basePtr = &this.register.int32_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Int32)(object)value; + *(basePtr + g) = (int)(object)value; } } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - fixed (UInt64* basePtr = &this.register.uint64_0) + fixed (ulong* basePtr = &this.register.uint64_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (UInt64)(object)value; + *(basePtr + g) = (ulong)(object)value; } } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - fixed (Int64* basePtr = &this.register.int64_0) + fixed (long* basePtr = &this.register.int64_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Int64)(object)value; + *(basePtr + g) = (long)(object)value; } } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - fixed (Single* basePtr = &this.register.single_0) + fixed (float* basePtr = &this.register.single_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Single)(object)value; + *(basePtr + g) = (float)(object)value; } } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - fixed (Double* basePtr = &this.register.double_0) + fixed (double* basePtr = &this.register.double_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Double)(object)value; + *(basePtr + g) = (double)(object)value; } } } } else { - if (typeof(T) == typeof(Byte)) - { - register.byte_0 = (Byte)(object)value; - register.byte_1 = (Byte)(object)value; - register.byte_2 = (Byte)(object)value; - register.byte_3 = (Byte)(object)value; - register.byte_4 = (Byte)(object)value; - register.byte_5 = (Byte)(object)value; - register.byte_6 = (Byte)(object)value; - register.byte_7 = (Byte)(object)value; - register.byte_8 = (Byte)(object)value; - register.byte_9 = (Byte)(object)value; - register.byte_10 = (Byte)(object)value; - register.byte_11 = (Byte)(object)value; - register.byte_12 = (Byte)(object)value; - register.byte_13 = (Byte)(object)value; - register.byte_14 = (Byte)(object)value; - register.byte_15 = (Byte)(object)value; - } - else if (typeof(T) == typeof(SByte)) - { - register.sbyte_0 = (SByte)(object)value; - register.sbyte_1 = (SByte)(object)value; - register.sbyte_2 = (SByte)(object)value; - register.sbyte_3 = (SByte)(object)value; - register.sbyte_4 = (SByte)(object)value; - register.sbyte_5 = (SByte)(object)value; - register.sbyte_6 = (SByte)(object)value; - register.sbyte_7 = (SByte)(object)value; - register.sbyte_8 = (SByte)(object)value; - register.sbyte_9 = (SByte)(object)value; - register.sbyte_10 = (SByte)(object)value; - register.sbyte_11 = (SByte)(object)value; - register.sbyte_12 = (SByte)(object)value; - register.sbyte_13 = (SByte)(object)value; - register.sbyte_14 = (SByte)(object)value; - register.sbyte_15 = (SByte)(object)value; - } - else if (typeof(T) == typeof(UInt16)) - { - register.uint16_0 = (UInt16)(object)value; - register.uint16_1 = (UInt16)(object)value; - register.uint16_2 = (UInt16)(object)value; - register.uint16_3 = (UInt16)(object)value; - register.uint16_4 = (UInt16)(object)value; - register.uint16_5 = (UInt16)(object)value; - register.uint16_6 = (UInt16)(object)value; - register.uint16_7 = (UInt16)(object)value; - } - else if (typeof(T) == typeof(Int16)) - { - register.int16_0 = (Int16)(object)value; - register.int16_1 = (Int16)(object)value; - register.int16_2 = (Int16)(object)value; - register.int16_3 = (Int16)(object)value; - register.int16_4 = (Int16)(object)value; - register.int16_5 = (Int16)(object)value; - register.int16_6 = (Int16)(object)value; - register.int16_7 = (Int16)(object)value; - } - else if (typeof(T) == typeof(UInt32)) - { - register.uint32_0 = (UInt32)(object)value; - register.uint32_1 = (UInt32)(object)value; - register.uint32_2 = (UInt32)(object)value; - register.uint32_3 = (UInt32)(object)value; - } - else if (typeof(T) == typeof(Int32)) - { - register.int32_0 = (Int32)(object)value; - register.int32_1 = (Int32)(object)value; - register.int32_2 = (Int32)(object)value; - register.int32_3 = (Int32)(object)value; - } - else if (typeof(T) == typeof(UInt64)) - { - register.uint64_0 = (UInt64)(object)value; - register.uint64_1 = (UInt64)(object)value; - } - else if (typeof(T) == typeof(Int64)) - { - register.int64_0 = (Int64)(object)value; - register.int64_1 = (Int64)(object)value; - } - else if (typeof(T) == typeof(Single)) - { - register.single_0 = (Single)(object)value; - register.single_1 = (Single)(object)value; - register.single_2 = (Single)(object)value; - register.single_3 = (Single)(object)value; - } - else if (typeof(T) == typeof(Double)) - { - register.double_0 = (Double)(object)value; - register.double_1 = (Double)(object)value; + if (typeof(T) == typeof(byte)) + { + register.byte_0 = (byte)(object)value; + register.byte_1 = (byte)(object)value; + register.byte_2 = (byte)(object)value; + register.byte_3 = (byte)(object)value; + register.byte_4 = (byte)(object)value; + register.byte_5 = (byte)(object)value; + register.byte_6 = (byte)(object)value; + register.byte_7 = (byte)(object)value; + register.byte_8 = (byte)(object)value; + register.byte_9 = (byte)(object)value; + register.byte_10 = (byte)(object)value; + register.byte_11 = (byte)(object)value; + register.byte_12 = (byte)(object)value; + register.byte_13 = (byte)(object)value; + register.byte_14 = (byte)(object)value; + register.byte_15 = (byte)(object)value; + } + else if (typeof(T) == typeof(sbyte)) + { + register.sbyte_0 = (sbyte)(object)value; + register.sbyte_1 = (sbyte)(object)value; + register.sbyte_2 = (sbyte)(object)value; + register.sbyte_3 = (sbyte)(object)value; + register.sbyte_4 = (sbyte)(object)value; + register.sbyte_5 = (sbyte)(object)value; + register.sbyte_6 = (sbyte)(object)value; + register.sbyte_7 = (sbyte)(object)value; + register.sbyte_8 = (sbyte)(object)value; + register.sbyte_9 = (sbyte)(object)value; + register.sbyte_10 = (sbyte)(object)value; + register.sbyte_11 = (sbyte)(object)value; + register.sbyte_12 = (sbyte)(object)value; + register.sbyte_13 = (sbyte)(object)value; + register.sbyte_14 = (sbyte)(object)value; + register.sbyte_15 = (sbyte)(object)value; + } + else if (typeof(T) == typeof(ushort)) + { + register.uint16_0 = (ushort)(object)value; + register.uint16_1 = (ushort)(object)value; + register.uint16_2 = (ushort)(object)value; + register.uint16_3 = (ushort)(object)value; + register.uint16_4 = (ushort)(object)value; + register.uint16_5 = (ushort)(object)value; + register.uint16_6 = (ushort)(object)value; + register.uint16_7 = (ushort)(object)value; + } + else if (typeof(T) == typeof(short)) + { + register.int16_0 = (short)(object)value; + register.int16_1 = (short)(object)value; + register.int16_2 = (short)(object)value; + register.int16_3 = (short)(object)value; + register.int16_4 = (short)(object)value; + register.int16_5 = (short)(object)value; + register.int16_6 = (short)(object)value; + register.int16_7 = (short)(object)value; + } + else if (typeof(T) == typeof(uint)) + { + register.uint32_0 = (uint)(object)value; + register.uint32_1 = (uint)(object)value; + register.uint32_2 = (uint)(object)value; + register.uint32_3 = (uint)(object)value; + } + else if (typeof(T) == typeof(int)) + { + register.int32_0 = (int)(object)value; + register.int32_1 = (int)(object)value; + register.int32_2 = (int)(object)value; + register.int32_3 = (int)(object)value; + } + else if (typeof(T) == typeof(ulong)) + { + register.uint64_0 = (ulong)(object)value; + register.uint64_1 = (ulong)(object)value; + } + else if (typeof(T) == typeof(long)) + { + register.int64_0 = (long)(object)value; + register.int64_1 = (long)(object)value; + } + else if (typeof(T) == typeof(float)) + { + register.single_0 = (float)(object)value; + register.single_1 = (float)(object)value; + register.single_2 = (float)(object)value; + register.single_3 = (float)(object)value; + } + else if (typeof(T) == typeof(double)) + { + register.double_0 = (double)(object)value; + register.double_1 = (double)(object)value; } } } @@ -386,238 +390,238 @@ namespace System.Numerics } if (index < 0 || (values.Length - index) < Count) { - throw new IndexOutOfRangeException(); + throw new IndexOutOfRangeException(SR.Format(SR.Arg_InsufficientNumberOfElements, Vector<T>.Count, nameof(values))); } if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - fixed (Byte* basePtr = &this.register.byte_0) + fixed (byte* basePtr = &this.register.byte_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Byte)(object)values[g + index]; + *(basePtr + g) = (byte)(object)values[g + index]; } } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - fixed (SByte* basePtr = &this.register.sbyte_0) + fixed (sbyte* basePtr = &this.register.sbyte_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (SByte)(object)values[g + index]; + *(basePtr + g) = (sbyte)(object)values[g + index]; } } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - fixed (UInt16* basePtr = &this.register.uint16_0) + fixed (ushort* basePtr = &this.register.uint16_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (UInt16)(object)values[g + index]; + *(basePtr + g) = (ushort)(object)values[g + index]; } } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - fixed (Int16* basePtr = &this.register.int16_0) + fixed (short* basePtr = &this.register.int16_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Int16)(object)values[g + index]; + *(basePtr + g) = (short)(object)values[g + index]; } } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - fixed (UInt32* basePtr = &this.register.uint32_0) + fixed (uint* basePtr = &this.register.uint32_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (UInt32)(object)values[g + index]; + *(basePtr + g) = (uint)(object)values[g + index]; } } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - fixed (Int32* basePtr = &this.register.int32_0) + fixed (int* basePtr = &this.register.int32_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Int32)(object)values[g + index]; + *(basePtr + g) = (int)(object)values[g + index]; } } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - fixed (UInt64* basePtr = &this.register.uint64_0) + fixed (ulong* basePtr = &this.register.uint64_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (UInt64)(object)values[g + index]; + *(basePtr + g) = (ulong)(object)values[g + index]; } } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - fixed (Int64* basePtr = &this.register.int64_0) + fixed (long* basePtr = &this.register.int64_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Int64)(object)values[g + index]; + *(basePtr + g) = (long)(object)values[g + index]; } } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - fixed (Single* basePtr = &this.register.single_0) + fixed (float* basePtr = &this.register.single_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Single)(object)values[g + index]; + *(basePtr + g) = (float)(object)values[g + index]; } } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - fixed (Double* basePtr = &this.register.double_0) + fixed (double* basePtr = &this.register.double_0) { for (int g = 0; g < Count; g++) { - *(basePtr + g) = (Double)(object)values[g + index]; + *(basePtr + g) = (double)(object)values[g + index]; } } } } else { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - fixed (Byte* basePtr = &this.register.byte_0) + fixed (byte* basePtr = &this.register.byte_0) { - *(basePtr + 0) = (Byte)(object)values[0 + index]; - *(basePtr + 1) = (Byte)(object)values[1 + index]; - *(basePtr + 2) = (Byte)(object)values[2 + index]; - *(basePtr + 3) = (Byte)(object)values[3 + index]; - *(basePtr + 4) = (Byte)(object)values[4 + index]; - *(basePtr + 5) = (Byte)(object)values[5 + index]; - *(basePtr + 6) = (Byte)(object)values[6 + index]; - *(basePtr + 7) = (Byte)(object)values[7 + index]; - *(basePtr + 8) = (Byte)(object)values[8 + index]; - *(basePtr + 9) = (Byte)(object)values[9 + index]; - *(basePtr + 10) = (Byte)(object)values[10 + index]; - *(basePtr + 11) = (Byte)(object)values[11 + index]; - *(basePtr + 12) = (Byte)(object)values[12 + index]; - *(basePtr + 13) = (Byte)(object)values[13 + index]; - *(basePtr + 14) = (Byte)(object)values[14 + index]; - *(basePtr + 15) = (Byte)(object)values[15 + index]; + *(basePtr + 0) = (byte)(object)values[0 + index]; + *(basePtr + 1) = (byte)(object)values[1 + index]; + *(basePtr + 2) = (byte)(object)values[2 + index]; + *(basePtr + 3) = (byte)(object)values[3 + index]; + *(basePtr + 4) = (byte)(object)values[4 + index]; + *(basePtr + 5) = (byte)(object)values[5 + index]; + *(basePtr + 6) = (byte)(object)values[6 + index]; + *(basePtr + 7) = (byte)(object)values[7 + index]; + *(basePtr + 8) = (byte)(object)values[8 + index]; + *(basePtr + 9) = (byte)(object)values[9 + index]; + *(basePtr + 10) = (byte)(object)values[10 + index]; + *(basePtr + 11) = (byte)(object)values[11 + index]; + *(basePtr + 12) = (byte)(object)values[12 + index]; + *(basePtr + 13) = (byte)(object)values[13 + index]; + *(basePtr + 14) = (byte)(object)values[14 + index]; + *(basePtr + 15) = (byte)(object)values[15 + index]; } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - fixed (SByte* basePtr = &this.register.sbyte_0) + fixed (sbyte* basePtr = &this.register.sbyte_0) { - *(basePtr + 0) = (SByte)(object)values[0 + index]; - *(basePtr + 1) = (SByte)(object)values[1 + index]; - *(basePtr + 2) = (SByte)(object)values[2 + index]; - *(basePtr + 3) = (SByte)(object)values[3 + index]; - *(basePtr + 4) = (SByte)(object)values[4 + index]; - *(basePtr + 5) = (SByte)(object)values[5 + index]; - *(basePtr + 6) = (SByte)(object)values[6 + index]; - *(basePtr + 7) = (SByte)(object)values[7 + index]; - *(basePtr + 8) = (SByte)(object)values[8 + index]; - *(basePtr + 9) = (SByte)(object)values[9 + index]; - *(basePtr + 10) = (SByte)(object)values[10 + index]; - *(basePtr + 11) = (SByte)(object)values[11 + index]; - *(basePtr + 12) = (SByte)(object)values[12 + index]; - *(basePtr + 13) = (SByte)(object)values[13 + index]; - *(basePtr + 14) = (SByte)(object)values[14 + index]; - *(basePtr + 15) = (SByte)(object)values[15 + index]; + *(basePtr + 0) = (sbyte)(object)values[0 + index]; + *(basePtr + 1) = (sbyte)(object)values[1 + index]; + *(basePtr + 2) = (sbyte)(object)values[2 + index]; + *(basePtr + 3) = (sbyte)(object)values[3 + index]; + *(basePtr + 4) = (sbyte)(object)values[4 + index]; + *(basePtr + 5) = (sbyte)(object)values[5 + index]; + *(basePtr + 6) = (sbyte)(object)values[6 + index]; + *(basePtr + 7) = (sbyte)(object)values[7 + index]; + *(basePtr + 8) = (sbyte)(object)values[8 + index]; + *(basePtr + 9) = (sbyte)(object)values[9 + index]; + *(basePtr + 10) = (sbyte)(object)values[10 + index]; + *(basePtr + 11) = (sbyte)(object)values[11 + index]; + *(basePtr + 12) = (sbyte)(object)values[12 + index]; + *(basePtr + 13) = (sbyte)(object)values[13 + index]; + *(basePtr + 14) = (sbyte)(object)values[14 + index]; + *(basePtr + 15) = (sbyte)(object)values[15 + index]; } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - fixed (UInt16* basePtr = &this.register.uint16_0) + fixed (ushort* basePtr = &this.register.uint16_0) { - *(basePtr + 0) = (UInt16)(object)values[0 + index]; - *(basePtr + 1) = (UInt16)(object)values[1 + index]; - *(basePtr + 2) = (UInt16)(object)values[2 + index]; - *(basePtr + 3) = (UInt16)(object)values[3 + index]; - *(basePtr + 4) = (UInt16)(object)values[4 + index]; - *(basePtr + 5) = (UInt16)(object)values[5 + index]; - *(basePtr + 6) = (UInt16)(object)values[6 + index]; - *(basePtr + 7) = (UInt16)(object)values[7 + index]; + *(basePtr + 0) = (ushort)(object)values[0 + index]; + *(basePtr + 1) = (ushort)(object)values[1 + index]; + *(basePtr + 2) = (ushort)(object)values[2 + index]; + *(basePtr + 3) = (ushort)(object)values[3 + index]; + *(basePtr + 4) = (ushort)(object)values[4 + index]; + *(basePtr + 5) = (ushort)(object)values[5 + index]; + *(basePtr + 6) = (ushort)(object)values[6 + index]; + *(basePtr + 7) = (ushort)(object)values[7 + index]; } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - fixed (Int16* basePtr = &this.register.int16_0) + fixed (short* basePtr = &this.register.int16_0) { - *(basePtr + 0) = (Int16)(object)values[0 + index]; - *(basePtr + 1) = (Int16)(object)values[1 + index]; - *(basePtr + 2) = (Int16)(object)values[2 + index]; - *(basePtr + 3) = (Int16)(object)values[3 + index]; - *(basePtr + 4) = (Int16)(object)values[4 + index]; - *(basePtr + 5) = (Int16)(object)values[5 + index]; - *(basePtr + 6) = (Int16)(object)values[6 + index]; - *(basePtr + 7) = (Int16)(object)values[7 + index]; + *(basePtr + 0) = (short)(object)values[0 + index]; + *(basePtr + 1) = (short)(object)values[1 + index]; + *(basePtr + 2) = (short)(object)values[2 + index]; + *(basePtr + 3) = (short)(object)values[3 + index]; + *(basePtr + 4) = (short)(object)values[4 + index]; + *(basePtr + 5) = (short)(object)values[5 + index]; + *(basePtr + 6) = (short)(object)values[6 + index]; + *(basePtr + 7) = (short)(object)values[7 + index]; } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - fixed (UInt32* basePtr = &this.register.uint32_0) + fixed (uint* basePtr = &this.register.uint32_0) { - *(basePtr + 0) = (UInt32)(object)values[0 + index]; - *(basePtr + 1) = (UInt32)(object)values[1 + index]; - *(basePtr + 2) = (UInt32)(object)values[2 + index]; - *(basePtr + 3) = (UInt32)(object)values[3 + index]; + *(basePtr + 0) = (uint)(object)values[0 + index]; + *(basePtr + 1) = (uint)(object)values[1 + index]; + *(basePtr + 2) = (uint)(object)values[2 + index]; + *(basePtr + 3) = (uint)(object)values[3 + index]; } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - fixed (Int32* basePtr = &this.register.int32_0) + fixed (int* basePtr = &this.register.int32_0) { - *(basePtr + 0) = (Int32)(object)values[0 + index]; - *(basePtr + 1) = (Int32)(object)values[1 + index]; - *(basePtr + 2) = (Int32)(object)values[2 + index]; - *(basePtr + 3) = (Int32)(object)values[3 + index]; + *(basePtr + 0) = (int)(object)values[0 + index]; + *(basePtr + 1) = (int)(object)values[1 + index]; + *(basePtr + 2) = (int)(object)values[2 + index]; + *(basePtr + 3) = (int)(object)values[3 + index]; } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - fixed (UInt64* basePtr = &this.register.uint64_0) + fixed (ulong* basePtr = &this.register.uint64_0) { - *(basePtr + 0) = (UInt64)(object)values[0 + index]; - *(basePtr + 1) = (UInt64)(object)values[1 + index]; + *(basePtr + 0) = (ulong)(object)values[0 + index]; + *(basePtr + 1) = (ulong)(object)values[1 + index]; } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - fixed (Int64* basePtr = &this.register.int64_0) + fixed (long* basePtr = &this.register.int64_0) { - *(basePtr + 0) = (Int64)(object)values[0 + index]; - *(basePtr + 1) = (Int64)(object)values[1 + index]; + *(basePtr + 0) = (long)(object)values[0 + index]; + *(basePtr + 1) = (long)(object)values[1 + index]; } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - fixed (Single* basePtr = &this.register.single_0) + fixed (float* basePtr = &this.register.single_0) { - *(basePtr + 0) = (Single)(object)values[0 + index]; - *(basePtr + 1) = (Single)(object)values[1 + index]; - *(basePtr + 2) = (Single)(object)values[2 + index]; - *(basePtr + 3) = (Single)(object)values[3 + index]; + *(basePtr + 0) = (float)(object)values[0 + index]; + *(basePtr + 1) = (float)(object)values[1 + index]; + *(basePtr + 2) = (float)(object)values[2 + index]; + *(basePtr + 3) = (float)(object)values[3 + index]; } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - fixed (Double* basePtr = &this.register.double_0) + fixed (double* basePtr = &this.register.double_0) { - *(basePtr + 0) = (Double)(object)values[0 + index]; - *(basePtr + 1) = (Double)(object)values[1 + index]; + *(basePtr + 0) = (double)(object)values[0 + index]; + *(basePtr + 1) = (double)(object)values[1 + index]; } } } @@ -632,11 +636,11 @@ namespace System.Numerics internal unsafe Vector(void* dataPointer, int offset) : this() { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* castedPtr = (Byte*)dataPointer; + byte* castedPtr = (byte*)dataPointer; castedPtr += offset; - fixed (Byte* registerBase = &this.register.byte_0) + fixed (byte* registerBase = &this.register.byte_0) { for (int g = 0; g < Count; g++) { @@ -644,11 +648,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* castedPtr = (SByte*)dataPointer; + sbyte* castedPtr = (sbyte*)dataPointer; castedPtr += offset; - fixed (SByte* registerBase = &this.register.sbyte_0) + fixed (sbyte* registerBase = &this.register.sbyte_0) { for (int g = 0; g < Count; g++) { @@ -656,11 +660,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* castedPtr = (UInt16*)dataPointer; + ushort* castedPtr = (ushort*)dataPointer; castedPtr += offset; - fixed (UInt16* registerBase = &this.register.uint16_0) + fixed (ushort* registerBase = &this.register.uint16_0) { for (int g = 0; g < Count; g++) { @@ -668,11 +672,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* castedPtr = (Int16*)dataPointer; + short* castedPtr = (short*)dataPointer; castedPtr += offset; - fixed (Int16* registerBase = &this.register.int16_0) + fixed (short* registerBase = &this.register.int16_0) { for (int g = 0; g < Count; g++) { @@ -680,11 +684,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* castedPtr = (UInt32*)dataPointer; + uint* castedPtr = (uint*)dataPointer; castedPtr += offset; - fixed (UInt32* registerBase = &this.register.uint32_0) + fixed (uint* registerBase = &this.register.uint32_0) { for (int g = 0; g < Count; g++) { @@ -692,11 +696,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* castedPtr = (Int32*)dataPointer; + int* castedPtr = (int*)dataPointer; castedPtr += offset; - fixed (Int32* registerBase = &this.register.int32_0) + fixed (int* registerBase = &this.register.int32_0) { for (int g = 0; g < Count; g++) { @@ -704,11 +708,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* castedPtr = (UInt64*)dataPointer; + ulong* castedPtr = (ulong*)dataPointer; castedPtr += offset; - fixed (UInt64* registerBase = &this.register.uint64_0) + fixed (ulong* registerBase = &this.register.uint64_0) { for (int g = 0; g < Count; g++) { @@ -716,11 +720,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* castedPtr = (Int64*)dataPointer; + long* castedPtr = (long*)dataPointer; castedPtr += offset; - fixed (Int64* registerBase = &this.register.int64_0) + fixed (long* registerBase = &this.register.int64_0) { for (int g = 0; g < Count; g++) { @@ -728,11 +732,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* castedPtr = (Single*)dataPointer; + float* castedPtr = (float*)dataPointer; castedPtr += offset; - fixed (Single* registerBase = &this.register.single_0) + fixed (float* registerBase = &this.register.single_0) { for (int g = 0; g < Count; g++) { @@ -740,11 +744,11 @@ namespace System.Numerics } } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* castedPtr = (Double*)dataPointer; + double* castedPtr = (double*)dataPointer; castedPtr += offset; - fixed (Double* registerBase = &this.register.double_0) + fixed (double* registerBase = &this.register.double_0) { for (int g = 0; g < Count; g++) { @@ -763,6 +767,37 @@ namespace System.Numerics { this.register = existingRegister; } + +#if netcoreapp + /// <summary> + /// Constructs a vector from the given span. The span must contain at least Vector'T.Count elements. + /// </summary> + public Vector(Span<T> values) + : this() + { + if ((typeof(T) == typeof(byte)) + || (typeof(T) == typeof(sbyte)) + || (typeof(T) == typeof(ushort)) + || (typeof(T) == typeof(short)) + || (typeof(T) == typeof(uint)) + || (typeof(T) == typeof(int)) + || (typeof(T) == typeof(ulong)) + || (typeof(T) == typeof(long)) + || (typeof(T) == typeof(float)) + || (typeof(T) == typeof(double))) + { + if (values.Length < Count) + { + throw new IndexOutOfRangeException(SR.Format(SR.Arg_InsufficientNumberOfElements, Vector<T>.Count, nameof(values))); + } + this = Unsafe.ReadUnaligned<Vector<T>>(ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(values))); + } + else + { + throw new NotSupportedException(SR.Arg_TypeNotSupported); + } + } +#endif #endregion Constructors #region Public Instance Methods @@ -805,123 +840,123 @@ namespace System.Numerics if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte[] byteArray = (Byte[])(object)destination; - fixed (Byte* destinationBase = byteArray) + byte[] byteArray = (byte[])(object)destination; + fixed (byte* destinationBase = byteArray) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (Byte)(object)this[g]; + destinationBase[startIndex + g] = (byte)(object)this[g]; } } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte[] sbyteArray = (SByte[])(object)destination; - fixed (SByte* destinationBase = sbyteArray) + sbyte[] sbyteArray = (sbyte[])(object)destination; + fixed (sbyte* destinationBase = sbyteArray) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (SByte)(object)this[g]; + destinationBase[startIndex + g] = (sbyte)(object)this[g]; } } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16[] uint16Array = (UInt16[])(object)destination; - fixed (UInt16* destinationBase = uint16Array) + ushort[] uint16Array = (ushort[])(object)destination; + fixed (ushort* destinationBase = uint16Array) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (UInt16)(object)this[g]; + destinationBase[startIndex + g] = (ushort)(object)this[g]; } } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16[] int16Array = (Int16[])(object)destination; - fixed (Int16* destinationBase = int16Array) + short[] int16Array = (short[])(object)destination; + fixed (short* destinationBase = int16Array) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (Int16)(object)this[g]; + destinationBase[startIndex + g] = (short)(object)this[g]; } } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32[] uint32Array = (UInt32[])(object)destination; - fixed (UInt32* destinationBase = uint32Array) + uint[] uint32Array = (uint[])(object)destination; + fixed (uint* destinationBase = uint32Array) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (UInt32)(object)this[g]; + destinationBase[startIndex + g] = (uint)(object)this[g]; } } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32[] int32Array = (Int32[])(object)destination; - fixed (Int32* destinationBase = int32Array) + int[] int32Array = (int[])(object)destination; + fixed (int* destinationBase = int32Array) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (Int32)(object)this[g]; + destinationBase[startIndex + g] = (int)(object)this[g]; } } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64[] uint64Array = (UInt64[])(object)destination; - fixed (UInt64* destinationBase = uint64Array) + ulong[] uint64Array = (ulong[])(object)destination; + fixed (ulong* destinationBase = uint64Array) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (UInt64)(object)this[g]; + destinationBase[startIndex + g] = (ulong)(object)this[g]; } } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64[] int64Array = (Int64[])(object)destination; - fixed (Int64* destinationBase = int64Array) + long[] int64Array = (long[])(object)destination; + fixed (long* destinationBase = int64Array) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (Int64)(object)this[g]; + destinationBase[startIndex + g] = (long)(object)this[g]; } } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single[] singleArray = (Single[])(object)destination; - fixed (Single* destinationBase = singleArray) + float[] singleArray = (float[])(object)destination; + fixed (float* destinationBase = singleArray) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (Single)(object)this[g]; + destinationBase[startIndex + g] = (float)(object)this[g]; } } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double[] doubleArray = (Double[])(object)destination; - fixed (Double* destinationBase = doubleArray) + double[] doubleArray = (double[])(object)destination; + fixed (double* destinationBase = doubleArray) { for (int g = 0; g < Count; g++) { - destinationBase[startIndex + g] = (Double)(object)this[g]; + destinationBase[startIndex + g] = (double)(object)this[g]; } } } } else { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte[] byteArray = (Byte[])(object)destination; - fixed (Byte* destinationBase = byteArray) + byte[] byteArray = (byte[])(object)destination; + fixed (byte* destinationBase = byteArray) { destinationBase[startIndex + 0] = this.register.byte_0; destinationBase[startIndex + 1] = this.register.byte_1; @@ -941,10 +976,10 @@ namespace System.Numerics destinationBase[startIndex + 15] = this.register.byte_15; } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte[] sbyteArray = (SByte[])(object)destination; - fixed (SByte* destinationBase = sbyteArray) + sbyte[] sbyteArray = (sbyte[])(object)destination; + fixed (sbyte* destinationBase = sbyteArray) { destinationBase[startIndex + 0] = this.register.sbyte_0; destinationBase[startIndex + 1] = this.register.sbyte_1; @@ -964,10 +999,10 @@ namespace System.Numerics destinationBase[startIndex + 15] = this.register.sbyte_15; } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16[] uint16Array = (UInt16[])(object)destination; - fixed (UInt16* destinationBase = uint16Array) + ushort[] uint16Array = (ushort[])(object)destination; + fixed (ushort* destinationBase = uint16Array) { destinationBase[startIndex + 0] = this.register.uint16_0; destinationBase[startIndex + 1] = this.register.uint16_1; @@ -979,10 +1014,10 @@ namespace System.Numerics destinationBase[startIndex + 7] = this.register.uint16_7; } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16[] int16Array = (Int16[])(object)destination; - fixed (Int16* destinationBase = int16Array) + short[] int16Array = (short[])(object)destination; + fixed (short* destinationBase = int16Array) { destinationBase[startIndex + 0] = this.register.int16_0; destinationBase[startIndex + 1] = this.register.int16_1; @@ -994,10 +1029,10 @@ namespace System.Numerics destinationBase[startIndex + 7] = this.register.int16_7; } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32[] uint32Array = (UInt32[])(object)destination; - fixed (UInt32* destinationBase = uint32Array) + uint[] uint32Array = (uint[])(object)destination; + fixed (uint* destinationBase = uint32Array) { destinationBase[startIndex + 0] = this.register.uint32_0; destinationBase[startIndex + 1] = this.register.uint32_1; @@ -1005,10 +1040,10 @@ namespace System.Numerics destinationBase[startIndex + 3] = this.register.uint32_3; } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32[] int32Array = (Int32[])(object)destination; - fixed (Int32* destinationBase = int32Array) + int[] int32Array = (int[])(object)destination; + fixed (int* destinationBase = int32Array) { destinationBase[startIndex + 0] = this.register.int32_0; destinationBase[startIndex + 1] = this.register.int32_1; @@ -1016,28 +1051,28 @@ namespace System.Numerics destinationBase[startIndex + 3] = this.register.int32_3; } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64[] uint64Array = (UInt64[])(object)destination; - fixed (UInt64* destinationBase = uint64Array) + ulong[] uint64Array = (ulong[])(object)destination; + fixed (ulong* destinationBase = uint64Array) { destinationBase[startIndex + 0] = this.register.uint64_0; destinationBase[startIndex + 1] = this.register.uint64_1; } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64[] int64Array = (Int64[])(object)destination; - fixed (Int64* destinationBase = int64Array) + long[] int64Array = (long[])(object)destination; + fixed (long* destinationBase = int64Array) { destinationBase[startIndex + 0] = this.register.int64_0; destinationBase[startIndex + 1] = this.register.int64_1; } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single[] singleArray = (Single[])(object)destination; - fixed (Single* destinationBase = singleArray) + float[] singleArray = (float[])(object)destination; + fixed (float* destinationBase = singleArray) { destinationBase[startIndex + 0] = this.register.single_0; destinationBase[startIndex + 1] = this.register.single_1; @@ -1045,10 +1080,10 @@ namespace System.Numerics destinationBase[startIndex + 3] = this.register.single_3; } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double[] doubleArray = (Double[])(object)destination; - fixed (Double* destinationBase = doubleArray) + double[] doubleArray = (double[])(object)destination; + fixed (double* destinationBase = doubleArray) { destinationBase[startIndex + 0] = this.register.double_0; destinationBase[startIndex + 1] = this.register.double_1; @@ -1069,72 +1104,72 @@ namespace System.Numerics { throw new IndexOutOfRangeException(SR.Format(SR.Arg_ArgumentOutOfRangeException, index)); } - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - fixed (Byte* basePtr = &this.register.byte_0) + fixed (byte* basePtr = &this.register.byte_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - fixed (SByte* basePtr = &this.register.sbyte_0) + fixed (sbyte* basePtr = &this.register.sbyte_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - fixed (UInt16* basePtr = &this.register.uint16_0) + fixed (ushort* basePtr = &this.register.uint16_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - fixed (Int16* basePtr = &this.register.int16_0) + fixed (short* basePtr = &this.register.int16_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - fixed (UInt32* basePtr = &this.register.uint32_0) + fixed (uint* basePtr = &this.register.uint32_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - fixed (Int32* basePtr = &this.register.int32_0) + fixed (int* basePtr = &this.register.int32_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - fixed (UInt64* basePtr = &this.register.uint64_0) + fixed (ulong* basePtr = &this.register.uint64_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - fixed (Int64* basePtr = &this.register.int64_0) + fixed (long* basePtr = &this.register.int64_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - fixed (Single* basePtr = &this.register.single_0) + fixed (float* basePtr = &this.register.single_0) { return (T)(object)*(basePtr + index); } } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - fixed (Double* basePtr = &this.register.double_0) + fixed (double* basePtr = &this.register.double_0) { return (T)(object)*(basePtr + index); } @@ -1182,7 +1217,7 @@ namespace System.Numerics } else { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { return this.register.byte_0 == other.register.byte_0 @@ -1202,7 +1237,7 @@ namespace System.Numerics && this.register.byte_14 == other.register.byte_14 && this.register.byte_15 == other.register.byte_15; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { return this.register.sbyte_0 == other.register.sbyte_0 @@ -1222,7 +1257,7 @@ namespace System.Numerics && this.register.sbyte_14 == other.register.sbyte_14 && this.register.sbyte_15 == other.register.sbyte_15; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { return this.register.uint16_0 == other.register.uint16_0 @@ -1234,7 +1269,7 @@ namespace System.Numerics && this.register.uint16_6 == other.register.uint16_6 && this.register.uint16_7 == other.register.uint16_7; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { return this.register.int16_0 == other.register.int16_0 @@ -1246,7 +1281,7 @@ namespace System.Numerics && this.register.int16_6 == other.register.int16_6 && this.register.int16_7 == other.register.int16_7; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { return this.register.uint32_0 == other.register.uint32_0 @@ -1254,7 +1289,7 @@ namespace System.Numerics && this.register.uint32_2 == other.register.uint32_2 && this.register.uint32_3 == other.register.uint32_3; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { return this.register.int32_0 == other.register.int32_0 @@ -1262,19 +1297,19 @@ namespace System.Numerics && this.register.int32_2 == other.register.int32_2 && this.register.int32_3 == other.register.int32_3; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { return this.register.uint64_0 == other.register.uint64_0 && this.register.uint64_1 == other.register.uint64_1; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { return this.register.int64_0 == other.register.int64_0 && this.register.int64_1 == other.register.int64_1; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { return this.register.single_0 == other.register.single_0 @@ -1282,7 +1317,7 @@ namespace System.Numerics && this.register.single_2 == other.register.single_2 && this.register.single_3 == other.register.single_3; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { return this.register.double_0 == other.register.double_0 @@ -1305,83 +1340,83 @@ namespace System.Numerics if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((Byte)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((byte)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((SByte)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((sbyte)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((UInt16)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((ushort)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((Int16)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((short)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((UInt32)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((uint)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((Int32)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((int)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((UInt64)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((ulong)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((Int64)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((long)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((Single)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((float)(object)this[g]).GetHashCode()); } return hash; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { for (int g = 0; g < Count; g++) { - hash = HashHelpers.Combine(hash, ((Double)(object)this[g]).GetHashCode()); + hash = HashHelpers.Combine(hash, ((double)(object)this[g]).GetHashCode()); } return hash; } @@ -1392,7 +1427,7 @@ namespace System.Numerics } else { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { hash = HashHelpers.Combine(hash, this.register.byte_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.byte_1.GetHashCode()); @@ -1412,7 +1447,7 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.byte_15.GetHashCode()); return hash; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { hash = HashHelpers.Combine(hash, this.register.sbyte_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.sbyte_1.GetHashCode()); @@ -1432,7 +1467,7 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.sbyte_15.GetHashCode()); return hash; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { hash = HashHelpers.Combine(hash, this.register.uint16_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.uint16_1.GetHashCode()); @@ -1444,7 +1479,7 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.uint16_7.GetHashCode()); return hash; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { hash = HashHelpers.Combine(hash, this.register.int16_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.int16_1.GetHashCode()); @@ -1456,7 +1491,7 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.int16_7.GetHashCode()); return hash; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { hash = HashHelpers.Combine(hash, this.register.uint32_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.uint32_1.GetHashCode()); @@ -1464,7 +1499,7 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.uint32_3.GetHashCode()); return hash; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { hash = HashHelpers.Combine(hash, this.register.int32_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.int32_1.GetHashCode()); @@ -1472,19 +1507,19 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.int32_3.GetHashCode()); return hash; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { hash = HashHelpers.Combine(hash, this.register.uint64_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.uint64_1.GetHashCode()); return hash; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { hash = HashHelpers.Combine(hash, this.register.int64_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.int64_1.GetHashCode()); return hash; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { hash = HashHelpers.Combine(hash, this.register.single_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.single_1.GetHashCode()); @@ -1492,7 +1527,7 @@ namespace System.Numerics hash = HashHelpers.Combine(hash, this.register.single_3.GetHashCode()); return hash; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { hash = HashHelpers.Combine(hash, this.register.double_0.GetHashCode()); hash = HashHelpers.Combine(hash, this.register.double_1.GetHashCode()); @@ -1562,93 +1597,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Byte)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (byte)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (SByte)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (sbyte)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt16)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (ushort)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int16)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (short)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt32)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (uint)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int32)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (int)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt64)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (ulong)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int64)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (long)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Single)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (float)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Double)(object)ScalarAdd(left[g], right[g]); + dataPtr[g] = (double)(object)ScalarAdd(left[g], right[g]); } return new Vector<T>(dataPtr); } @@ -1660,101 +1695,101 @@ namespace System.Numerics else { Vector<T> sum = new Vector<T>(); - if (typeof(T) == typeof(Byte)) - { - sum.register.byte_0 = (Byte)(left.register.byte_0 + right.register.byte_0); - sum.register.byte_1 = (Byte)(left.register.byte_1 + right.register.byte_1); - sum.register.byte_2 = (Byte)(left.register.byte_2 + right.register.byte_2); - sum.register.byte_3 = (Byte)(left.register.byte_3 + right.register.byte_3); - sum.register.byte_4 = (Byte)(left.register.byte_4 + right.register.byte_4); - sum.register.byte_5 = (Byte)(left.register.byte_5 + right.register.byte_5); - sum.register.byte_6 = (Byte)(left.register.byte_6 + right.register.byte_6); - sum.register.byte_7 = (Byte)(left.register.byte_7 + right.register.byte_7); - sum.register.byte_8 = (Byte)(left.register.byte_8 + right.register.byte_8); - sum.register.byte_9 = (Byte)(left.register.byte_9 + right.register.byte_9); - sum.register.byte_10 = (Byte)(left.register.byte_10 + right.register.byte_10); - sum.register.byte_11 = (Byte)(left.register.byte_11 + right.register.byte_11); - sum.register.byte_12 = (Byte)(left.register.byte_12 + right.register.byte_12); - sum.register.byte_13 = (Byte)(left.register.byte_13 + right.register.byte_13); - sum.register.byte_14 = (Byte)(left.register.byte_14 + right.register.byte_14); - sum.register.byte_15 = (Byte)(left.register.byte_15 + right.register.byte_15); - } - else if (typeof(T) == typeof(SByte)) - { - sum.register.sbyte_0 = (SByte)(left.register.sbyte_0 + right.register.sbyte_0); - sum.register.sbyte_1 = (SByte)(left.register.sbyte_1 + right.register.sbyte_1); - sum.register.sbyte_2 = (SByte)(left.register.sbyte_2 + right.register.sbyte_2); - sum.register.sbyte_3 = (SByte)(left.register.sbyte_3 + right.register.sbyte_3); - sum.register.sbyte_4 = (SByte)(left.register.sbyte_4 + right.register.sbyte_4); - sum.register.sbyte_5 = (SByte)(left.register.sbyte_5 + right.register.sbyte_5); - sum.register.sbyte_6 = (SByte)(left.register.sbyte_6 + right.register.sbyte_6); - sum.register.sbyte_7 = (SByte)(left.register.sbyte_7 + right.register.sbyte_7); - sum.register.sbyte_8 = (SByte)(left.register.sbyte_8 + right.register.sbyte_8); - sum.register.sbyte_9 = (SByte)(left.register.sbyte_9 + right.register.sbyte_9); - sum.register.sbyte_10 = (SByte)(left.register.sbyte_10 + right.register.sbyte_10); - sum.register.sbyte_11 = (SByte)(left.register.sbyte_11 + right.register.sbyte_11); - sum.register.sbyte_12 = (SByte)(left.register.sbyte_12 + right.register.sbyte_12); - sum.register.sbyte_13 = (SByte)(left.register.sbyte_13 + right.register.sbyte_13); - sum.register.sbyte_14 = (SByte)(left.register.sbyte_14 + right.register.sbyte_14); - sum.register.sbyte_15 = (SByte)(left.register.sbyte_15 + right.register.sbyte_15); - } - else if (typeof(T) == typeof(UInt16)) - { - sum.register.uint16_0 = (UInt16)(left.register.uint16_0 + right.register.uint16_0); - sum.register.uint16_1 = (UInt16)(left.register.uint16_1 + right.register.uint16_1); - sum.register.uint16_2 = (UInt16)(left.register.uint16_2 + right.register.uint16_2); - sum.register.uint16_3 = (UInt16)(left.register.uint16_3 + right.register.uint16_3); - sum.register.uint16_4 = (UInt16)(left.register.uint16_4 + right.register.uint16_4); - sum.register.uint16_5 = (UInt16)(left.register.uint16_5 + right.register.uint16_5); - sum.register.uint16_6 = (UInt16)(left.register.uint16_6 + right.register.uint16_6); - sum.register.uint16_7 = (UInt16)(left.register.uint16_7 + right.register.uint16_7); - } - else if (typeof(T) == typeof(Int16)) - { - sum.register.int16_0 = (Int16)(left.register.int16_0 + right.register.int16_0); - sum.register.int16_1 = (Int16)(left.register.int16_1 + right.register.int16_1); - sum.register.int16_2 = (Int16)(left.register.int16_2 + right.register.int16_2); - sum.register.int16_3 = (Int16)(left.register.int16_3 + right.register.int16_3); - sum.register.int16_4 = (Int16)(left.register.int16_4 + right.register.int16_4); - sum.register.int16_5 = (Int16)(left.register.int16_5 + right.register.int16_5); - sum.register.int16_6 = (Int16)(left.register.int16_6 + right.register.int16_6); - sum.register.int16_7 = (Int16)(left.register.int16_7 + right.register.int16_7); - } - else if (typeof(T) == typeof(UInt32)) - { - sum.register.uint32_0 = (UInt32)(left.register.uint32_0 + right.register.uint32_0); - sum.register.uint32_1 = (UInt32)(left.register.uint32_1 + right.register.uint32_1); - sum.register.uint32_2 = (UInt32)(left.register.uint32_2 + right.register.uint32_2); - sum.register.uint32_3 = (UInt32)(left.register.uint32_3 + right.register.uint32_3); - } - else if (typeof(T) == typeof(Int32)) - { - sum.register.int32_0 = (Int32)(left.register.int32_0 + right.register.int32_0); - sum.register.int32_1 = (Int32)(left.register.int32_1 + right.register.int32_1); - sum.register.int32_2 = (Int32)(left.register.int32_2 + right.register.int32_2); - sum.register.int32_3 = (Int32)(left.register.int32_3 + right.register.int32_3); - } - else if (typeof(T) == typeof(UInt64)) - { - sum.register.uint64_0 = (UInt64)(left.register.uint64_0 + right.register.uint64_0); - sum.register.uint64_1 = (UInt64)(left.register.uint64_1 + right.register.uint64_1); - } - else if (typeof(T) == typeof(Int64)) - { - sum.register.int64_0 = (Int64)(left.register.int64_0 + right.register.int64_0); - sum.register.int64_1 = (Int64)(left.register.int64_1 + right.register.int64_1); - } - else if (typeof(T) == typeof(Single)) - { - sum.register.single_0 = (Single)(left.register.single_0 + right.register.single_0); - sum.register.single_1 = (Single)(left.register.single_1 + right.register.single_1); - sum.register.single_2 = (Single)(left.register.single_2 + right.register.single_2); - sum.register.single_3 = (Single)(left.register.single_3 + right.register.single_3); - } - else if (typeof(T) == typeof(Double)) - { - sum.register.double_0 = (Double)(left.register.double_0 + right.register.double_0); - sum.register.double_1 = (Double)(left.register.double_1 + right.register.double_1); + if (typeof(T) == typeof(byte)) + { + sum.register.byte_0 = (byte)(left.register.byte_0 + right.register.byte_0); + sum.register.byte_1 = (byte)(left.register.byte_1 + right.register.byte_1); + sum.register.byte_2 = (byte)(left.register.byte_2 + right.register.byte_2); + sum.register.byte_3 = (byte)(left.register.byte_3 + right.register.byte_3); + sum.register.byte_4 = (byte)(left.register.byte_4 + right.register.byte_4); + sum.register.byte_5 = (byte)(left.register.byte_5 + right.register.byte_5); + sum.register.byte_6 = (byte)(left.register.byte_6 + right.register.byte_6); + sum.register.byte_7 = (byte)(left.register.byte_7 + right.register.byte_7); + sum.register.byte_8 = (byte)(left.register.byte_8 + right.register.byte_8); + sum.register.byte_9 = (byte)(left.register.byte_9 + right.register.byte_9); + sum.register.byte_10 = (byte)(left.register.byte_10 + right.register.byte_10); + sum.register.byte_11 = (byte)(left.register.byte_11 + right.register.byte_11); + sum.register.byte_12 = (byte)(left.register.byte_12 + right.register.byte_12); + sum.register.byte_13 = (byte)(left.register.byte_13 + right.register.byte_13); + sum.register.byte_14 = (byte)(left.register.byte_14 + right.register.byte_14); + sum.register.byte_15 = (byte)(left.register.byte_15 + right.register.byte_15); + } + else if (typeof(T) == typeof(sbyte)) + { + sum.register.sbyte_0 = (sbyte)(left.register.sbyte_0 + right.register.sbyte_0); + sum.register.sbyte_1 = (sbyte)(left.register.sbyte_1 + right.register.sbyte_1); + sum.register.sbyte_2 = (sbyte)(left.register.sbyte_2 + right.register.sbyte_2); + sum.register.sbyte_3 = (sbyte)(left.register.sbyte_3 + right.register.sbyte_3); + sum.register.sbyte_4 = (sbyte)(left.register.sbyte_4 + right.register.sbyte_4); + sum.register.sbyte_5 = (sbyte)(left.register.sbyte_5 + right.register.sbyte_5); + sum.register.sbyte_6 = (sbyte)(left.register.sbyte_6 + right.register.sbyte_6); + sum.register.sbyte_7 = (sbyte)(left.register.sbyte_7 + right.register.sbyte_7); + sum.register.sbyte_8 = (sbyte)(left.register.sbyte_8 + right.register.sbyte_8); + sum.register.sbyte_9 = (sbyte)(left.register.sbyte_9 + right.register.sbyte_9); + sum.register.sbyte_10 = (sbyte)(left.register.sbyte_10 + right.register.sbyte_10); + sum.register.sbyte_11 = (sbyte)(left.register.sbyte_11 + right.register.sbyte_11); + sum.register.sbyte_12 = (sbyte)(left.register.sbyte_12 + right.register.sbyte_12); + sum.register.sbyte_13 = (sbyte)(left.register.sbyte_13 + right.register.sbyte_13); + sum.register.sbyte_14 = (sbyte)(left.register.sbyte_14 + right.register.sbyte_14); + sum.register.sbyte_15 = (sbyte)(left.register.sbyte_15 + right.register.sbyte_15); + } + else if (typeof(T) == typeof(ushort)) + { + sum.register.uint16_0 = (ushort)(left.register.uint16_0 + right.register.uint16_0); + sum.register.uint16_1 = (ushort)(left.register.uint16_1 + right.register.uint16_1); + sum.register.uint16_2 = (ushort)(left.register.uint16_2 + right.register.uint16_2); + sum.register.uint16_3 = (ushort)(left.register.uint16_3 + right.register.uint16_3); + sum.register.uint16_4 = (ushort)(left.register.uint16_4 + right.register.uint16_4); + sum.register.uint16_5 = (ushort)(left.register.uint16_5 + right.register.uint16_5); + sum.register.uint16_6 = (ushort)(left.register.uint16_6 + right.register.uint16_6); + sum.register.uint16_7 = (ushort)(left.register.uint16_7 + right.register.uint16_7); + } + else if (typeof(T) == typeof(short)) + { + sum.register.int16_0 = (short)(left.register.int16_0 + right.register.int16_0); + sum.register.int16_1 = (short)(left.register.int16_1 + right.register.int16_1); + sum.register.int16_2 = (short)(left.register.int16_2 + right.register.int16_2); + sum.register.int16_3 = (short)(left.register.int16_3 + right.register.int16_3); + sum.register.int16_4 = (short)(left.register.int16_4 + right.register.int16_4); + sum.register.int16_5 = (short)(left.register.int16_5 + right.register.int16_5); + sum.register.int16_6 = (short)(left.register.int16_6 + right.register.int16_6); + sum.register.int16_7 = (short)(left.register.int16_7 + right.register.int16_7); + } + else if (typeof(T) == typeof(uint)) + { + sum.register.uint32_0 = (uint)(left.register.uint32_0 + right.register.uint32_0); + sum.register.uint32_1 = (uint)(left.register.uint32_1 + right.register.uint32_1); + sum.register.uint32_2 = (uint)(left.register.uint32_2 + right.register.uint32_2); + sum.register.uint32_3 = (uint)(left.register.uint32_3 + right.register.uint32_3); + } + else if (typeof(T) == typeof(int)) + { + sum.register.int32_0 = (int)(left.register.int32_0 + right.register.int32_0); + sum.register.int32_1 = (int)(left.register.int32_1 + right.register.int32_1); + sum.register.int32_2 = (int)(left.register.int32_2 + right.register.int32_2); + sum.register.int32_3 = (int)(left.register.int32_3 + right.register.int32_3); + } + else if (typeof(T) == typeof(ulong)) + { + sum.register.uint64_0 = (ulong)(left.register.uint64_0 + right.register.uint64_0); + sum.register.uint64_1 = (ulong)(left.register.uint64_1 + right.register.uint64_1); + } + else if (typeof(T) == typeof(long)) + { + sum.register.int64_0 = (long)(left.register.int64_0 + right.register.int64_0); + sum.register.int64_1 = (long)(left.register.int64_1 + right.register.int64_1); + } + else if (typeof(T) == typeof(float)) + { + sum.register.single_0 = (float)(left.register.single_0 + right.register.single_0); + sum.register.single_1 = (float)(left.register.single_1 + right.register.single_1); + sum.register.single_2 = (float)(left.register.single_2 + right.register.single_2); + sum.register.single_3 = (float)(left.register.single_3 + right.register.single_3); + } + else if (typeof(T) == typeof(double)) + { + sum.register.double_0 = (double)(left.register.double_0 + right.register.double_0); + sum.register.double_1 = (double)(left.register.double_1 + right.register.double_1); } return sum; } @@ -1773,93 +1808,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Byte)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (byte)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (SByte)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (sbyte)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt16)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (ushort)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int16)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (short)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt32)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (uint)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int32)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (int)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt64)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (ulong)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int64)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (long)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Single)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (float)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Double)(object)ScalarSubtract(left[g], right[g]); + dataPtr[g] = (double)(object)ScalarSubtract(left[g], right[g]); } return new Vector<T>(dataPtr); } @@ -1871,101 +1906,101 @@ namespace System.Numerics else { Vector<T> difference = new Vector<T>(); - if (typeof(T) == typeof(Byte)) - { - difference.register.byte_0 = (Byte)(left.register.byte_0 - right.register.byte_0); - difference.register.byte_1 = (Byte)(left.register.byte_1 - right.register.byte_1); - difference.register.byte_2 = (Byte)(left.register.byte_2 - right.register.byte_2); - difference.register.byte_3 = (Byte)(left.register.byte_3 - right.register.byte_3); - difference.register.byte_4 = (Byte)(left.register.byte_4 - right.register.byte_4); - difference.register.byte_5 = (Byte)(left.register.byte_5 - right.register.byte_5); - difference.register.byte_6 = (Byte)(left.register.byte_6 - right.register.byte_6); - difference.register.byte_7 = (Byte)(left.register.byte_7 - right.register.byte_7); - difference.register.byte_8 = (Byte)(left.register.byte_8 - right.register.byte_8); - difference.register.byte_9 = (Byte)(left.register.byte_9 - right.register.byte_9); - difference.register.byte_10 = (Byte)(left.register.byte_10 - right.register.byte_10); - difference.register.byte_11 = (Byte)(left.register.byte_11 - right.register.byte_11); - difference.register.byte_12 = (Byte)(left.register.byte_12 - right.register.byte_12); - difference.register.byte_13 = (Byte)(left.register.byte_13 - right.register.byte_13); - difference.register.byte_14 = (Byte)(left.register.byte_14 - right.register.byte_14); - difference.register.byte_15 = (Byte)(left.register.byte_15 - right.register.byte_15); - } - else if (typeof(T) == typeof(SByte)) - { - difference.register.sbyte_0 = (SByte)(left.register.sbyte_0 - right.register.sbyte_0); - difference.register.sbyte_1 = (SByte)(left.register.sbyte_1 - right.register.sbyte_1); - difference.register.sbyte_2 = (SByte)(left.register.sbyte_2 - right.register.sbyte_2); - difference.register.sbyte_3 = (SByte)(left.register.sbyte_3 - right.register.sbyte_3); - difference.register.sbyte_4 = (SByte)(left.register.sbyte_4 - right.register.sbyte_4); - difference.register.sbyte_5 = (SByte)(left.register.sbyte_5 - right.register.sbyte_5); - difference.register.sbyte_6 = (SByte)(left.register.sbyte_6 - right.register.sbyte_6); - difference.register.sbyte_7 = (SByte)(left.register.sbyte_7 - right.register.sbyte_7); - difference.register.sbyte_8 = (SByte)(left.register.sbyte_8 - right.register.sbyte_8); - difference.register.sbyte_9 = (SByte)(left.register.sbyte_9 - right.register.sbyte_9); - difference.register.sbyte_10 = (SByte)(left.register.sbyte_10 - right.register.sbyte_10); - difference.register.sbyte_11 = (SByte)(left.register.sbyte_11 - right.register.sbyte_11); - difference.register.sbyte_12 = (SByte)(left.register.sbyte_12 - right.register.sbyte_12); - difference.register.sbyte_13 = (SByte)(left.register.sbyte_13 - right.register.sbyte_13); - difference.register.sbyte_14 = (SByte)(left.register.sbyte_14 - right.register.sbyte_14); - difference.register.sbyte_15 = (SByte)(left.register.sbyte_15 - right.register.sbyte_15); - } - else if (typeof(T) == typeof(UInt16)) - { - difference.register.uint16_0 = (UInt16)(left.register.uint16_0 - right.register.uint16_0); - difference.register.uint16_1 = (UInt16)(left.register.uint16_1 - right.register.uint16_1); - difference.register.uint16_2 = (UInt16)(left.register.uint16_2 - right.register.uint16_2); - difference.register.uint16_3 = (UInt16)(left.register.uint16_3 - right.register.uint16_3); - difference.register.uint16_4 = (UInt16)(left.register.uint16_4 - right.register.uint16_4); - difference.register.uint16_5 = (UInt16)(left.register.uint16_5 - right.register.uint16_5); - difference.register.uint16_6 = (UInt16)(left.register.uint16_6 - right.register.uint16_6); - difference.register.uint16_7 = (UInt16)(left.register.uint16_7 - right.register.uint16_7); - } - else if (typeof(T) == typeof(Int16)) - { - difference.register.int16_0 = (Int16)(left.register.int16_0 - right.register.int16_0); - difference.register.int16_1 = (Int16)(left.register.int16_1 - right.register.int16_1); - difference.register.int16_2 = (Int16)(left.register.int16_2 - right.register.int16_2); - difference.register.int16_3 = (Int16)(left.register.int16_3 - right.register.int16_3); - difference.register.int16_4 = (Int16)(left.register.int16_4 - right.register.int16_4); - difference.register.int16_5 = (Int16)(left.register.int16_5 - right.register.int16_5); - difference.register.int16_6 = (Int16)(left.register.int16_6 - right.register.int16_6); - difference.register.int16_7 = (Int16)(left.register.int16_7 - right.register.int16_7); - } - else if (typeof(T) == typeof(UInt32)) - { - difference.register.uint32_0 = (UInt32)(left.register.uint32_0 - right.register.uint32_0); - difference.register.uint32_1 = (UInt32)(left.register.uint32_1 - right.register.uint32_1); - difference.register.uint32_2 = (UInt32)(left.register.uint32_2 - right.register.uint32_2); - difference.register.uint32_3 = (UInt32)(left.register.uint32_3 - right.register.uint32_3); - } - else if (typeof(T) == typeof(Int32)) - { - difference.register.int32_0 = (Int32)(left.register.int32_0 - right.register.int32_0); - difference.register.int32_1 = (Int32)(left.register.int32_1 - right.register.int32_1); - difference.register.int32_2 = (Int32)(left.register.int32_2 - right.register.int32_2); - difference.register.int32_3 = (Int32)(left.register.int32_3 - right.register.int32_3); - } - else if (typeof(T) == typeof(UInt64)) - { - difference.register.uint64_0 = (UInt64)(left.register.uint64_0 - right.register.uint64_0); - difference.register.uint64_1 = (UInt64)(left.register.uint64_1 - right.register.uint64_1); - } - else if (typeof(T) == typeof(Int64)) - { - difference.register.int64_0 = (Int64)(left.register.int64_0 - right.register.int64_0); - difference.register.int64_1 = (Int64)(left.register.int64_1 - right.register.int64_1); - } - else if (typeof(T) == typeof(Single)) - { - difference.register.single_0 = (Single)(left.register.single_0 - right.register.single_0); - difference.register.single_1 = (Single)(left.register.single_1 - right.register.single_1); - difference.register.single_2 = (Single)(left.register.single_2 - right.register.single_2); - difference.register.single_3 = (Single)(left.register.single_3 - right.register.single_3); - } - else if (typeof(T) == typeof(Double)) - { - difference.register.double_0 = (Double)(left.register.double_0 - right.register.double_0); - difference.register.double_1 = (Double)(left.register.double_1 - right.register.double_1); + if (typeof(T) == typeof(byte)) + { + difference.register.byte_0 = (byte)(left.register.byte_0 - right.register.byte_0); + difference.register.byte_1 = (byte)(left.register.byte_1 - right.register.byte_1); + difference.register.byte_2 = (byte)(left.register.byte_2 - right.register.byte_2); + difference.register.byte_3 = (byte)(left.register.byte_3 - right.register.byte_3); + difference.register.byte_4 = (byte)(left.register.byte_4 - right.register.byte_4); + difference.register.byte_5 = (byte)(left.register.byte_5 - right.register.byte_5); + difference.register.byte_6 = (byte)(left.register.byte_6 - right.register.byte_6); + difference.register.byte_7 = (byte)(left.register.byte_7 - right.register.byte_7); + difference.register.byte_8 = (byte)(left.register.byte_8 - right.register.byte_8); + difference.register.byte_9 = (byte)(left.register.byte_9 - right.register.byte_9); + difference.register.byte_10 = (byte)(left.register.byte_10 - right.register.byte_10); + difference.register.byte_11 = (byte)(left.register.byte_11 - right.register.byte_11); + difference.register.byte_12 = (byte)(left.register.byte_12 - right.register.byte_12); + difference.register.byte_13 = (byte)(left.register.byte_13 - right.register.byte_13); + difference.register.byte_14 = (byte)(left.register.byte_14 - right.register.byte_14); + difference.register.byte_15 = (byte)(left.register.byte_15 - right.register.byte_15); + } + else if (typeof(T) == typeof(sbyte)) + { + difference.register.sbyte_0 = (sbyte)(left.register.sbyte_0 - right.register.sbyte_0); + difference.register.sbyte_1 = (sbyte)(left.register.sbyte_1 - right.register.sbyte_1); + difference.register.sbyte_2 = (sbyte)(left.register.sbyte_2 - right.register.sbyte_2); + difference.register.sbyte_3 = (sbyte)(left.register.sbyte_3 - right.register.sbyte_3); + difference.register.sbyte_4 = (sbyte)(left.register.sbyte_4 - right.register.sbyte_4); + difference.register.sbyte_5 = (sbyte)(left.register.sbyte_5 - right.register.sbyte_5); + difference.register.sbyte_6 = (sbyte)(left.register.sbyte_6 - right.register.sbyte_6); + difference.register.sbyte_7 = (sbyte)(left.register.sbyte_7 - right.register.sbyte_7); + difference.register.sbyte_8 = (sbyte)(left.register.sbyte_8 - right.register.sbyte_8); + difference.register.sbyte_9 = (sbyte)(left.register.sbyte_9 - right.register.sbyte_9); + difference.register.sbyte_10 = (sbyte)(left.register.sbyte_10 - right.register.sbyte_10); + difference.register.sbyte_11 = (sbyte)(left.register.sbyte_11 - right.register.sbyte_11); + difference.register.sbyte_12 = (sbyte)(left.register.sbyte_12 - right.register.sbyte_12); + difference.register.sbyte_13 = (sbyte)(left.register.sbyte_13 - right.register.sbyte_13); + difference.register.sbyte_14 = (sbyte)(left.register.sbyte_14 - right.register.sbyte_14); + difference.register.sbyte_15 = (sbyte)(left.register.sbyte_15 - right.register.sbyte_15); + } + else if (typeof(T) == typeof(ushort)) + { + difference.register.uint16_0 = (ushort)(left.register.uint16_0 - right.register.uint16_0); + difference.register.uint16_1 = (ushort)(left.register.uint16_1 - right.register.uint16_1); + difference.register.uint16_2 = (ushort)(left.register.uint16_2 - right.register.uint16_2); + difference.register.uint16_3 = (ushort)(left.register.uint16_3 - right.register.uint16_3); + difference.register.uint16_4 = (ushort)(left.register.uint16_4 - right.register.uint16_4); + difference.register.uint16_5 = (ushort)(left.register.uint16_5 - right.register.uint16_5); + difference.register.uint16_6 = (ushort)(left.register.uint16_6 - right.register.uint16_6); + difference.register.uint16_7 = (ushort)(left.register.uint16_7 - right.register.uint16_7); + } + else if (typeof(T) == typeof(short)) + { + difference.register.int16_0 = (short)(left.register.int16_0 - right.register.int16_0); + difference.register.int16_1 = (short)(left.register.int16_1 - right.register.int16_1); + difference.register.int16_2 = (short)(left.register.int16_2 - right.register.int16_2); + difference.register.int16_3 = (short)(left.register.int16_3 - right.register.int16_3); + difference.register.int16_4 = (short)(left.register.int16_4 - right.register.int16_4); + difference.register.int16_5 = (short)(left.register.int16_5 - right.register.int16_5); + difference.register.int16_6 = (short)(left.register.int16_6 - right.register.int16_6); + difference.register.int16_7 = (short)(left.register.int16_7 - right.register.int16_7); + } + else if (typeof(T) == typeof(uint)) + { + difference.register.uint32_0 = (uint)(left.register.uint32_0 - right.register.uint32_0); + difference.register.uint32_1 = (uint)(left.register.uint32_1 - right.register.uint32_1); + difference.register.uint32_2 = (uint)(left.register.uint32_2 - right.register.uint32_2); + difference.register.uint32_3 = (uint)(left.register.uint32_3 - right.register.uint32_3); + } + else if (typeof(T) == typeof(int)) + { + difference.register.int32_0 = (int)(left.register.int32_0 - right.register.int32_0); + difference.register.int32_1 = (int)(left.register.int32_1 - right.register.int32_1); + difference.register.int32_2 = (int)(left.register.int32_2 - right.register.int32_2); + difference.register.int32_3 = (int)(left.register.int32_3 - right.register.int32_3); + } + else if (typeof(T) == typeof(ulong)) + { + difference.register.uint64_0 = (ulong)(left.register.uint64_0 - right.register.uint64_0); + difference.register.uint64_1 = (ulong)(left.register.uint64_1 - right.register.uint64_1); + } + else if (typeof(T) == typeof(long)) + { + difference.register.int64_0 = (long)(left.register.int64_0 - right.register.int64_0); + difference.register.int64_1 = (long)(left.register.int64_1 - right.register.int64_1); + } + else if (typeof(T) == typeof(float)) + { + difference.register.single_0 = (float)(left.register.single_0 - right.register.single_0); + difference.register.single_1 = (float)(left.register.single_1 - right.register.single_1); + difference.register.single_2 = (float)(left.register.single_2 - right.register.single_2); + difference.register.single_3 = (float)(left.register.single_3 - right.register.single_3); + } + else if (typeof(T) == typeof(double)) + { + difference.register.double_0 = (double)(left.register.double_0 - right.register.double_0); + difference.register.double_1 = (double)(left.register.double_1 - right.register.double_1); } return difference; } @@ -1985,93 +2020,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Byte)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (byte)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (SByte)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (sbyte)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt16)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (ushort)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int16)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (short)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt32)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (uint)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int32)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (int)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt64)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (ulong)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int64)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (long)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Single)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (float)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Double)(object)ScalarMultiply(left[g], right[g]); + dataPtr[g] = (double)(object)ScalarMultiply(left[g], right[g]); } return new Vector<T>(dataPtr); } @@ -2083,101 +2118,101 @@ namespace System.Numerics else { Vector<T> product = new Vector<T>(); - if (typeof(T) == typeof(Byte)) - { - product.register.byte_0 = (Byte)(left.register.byte_0 * right.register.byte_0); - product.register.byte_1 = (Byte)(left.register.byte_1 * right.register.byte_1); - product.register.byte_2 = (Byte)(left.register.byte_2 * right.register.byte_2); - product.register.byte_3 = (Byte)(left.register.byte_3 * right.register.byte_3); - product.register.byte_4 = (Byte)(left.register.byte_4 * right.register.byte_4); - product.register.byte_5 = (Byte)(left.register.byte_5 * right.register.byte_5); - product.register.byte_6 = (Byte)(left.register.byte_6 * right.register.byte_6); - product.register.byte_7 = (Byte)(left.register.byte_7 * right.register.byte_7); - product.register.byte_8 = (Byte)(left.register.byte_8 * right.register.byte_8); - product.register.byte_9 = (Byte)(left.register.byte_9 * right.register.byte_9); - product.register.byte_10 = (Byte)(left.register.byte_10 * right.register.byte_10); - product.register.byte_11 = (Byte)(left.register.byte_11 * right.register.byte_11); - product.register.byte_12 = (Byte)(left.register.byte_12 * right.register.byte_12); - product.register.byte_13 = (Byte)(left.register.byte_13 * right.register.byte_13); - product.register.byte_14 = (Byte)(left.register.byte_14 * right.register.byte_14); - product.register.byte_15 = (Byte)(left.register.byte_15 * right.register.byte_15); - } - else if (typeof(T) == typeof(SByte)) - { - product.register.sbyte_0 = (SByte)(left.register.sbyte_0 * right.register.sbyte_0); - product.register.sbyte_1 = (SByte)(left.register.sbyte_1 * right.register.sbyte_1); - product.register.sbyte_2 = (SByte)(left.register.sbyte_2 * right.register.sbyte_2); - product.register.sbyte_3 = (SByte)(left.register.sbyte_3 * right.register.sbyte_3); - product.register.sbyte_4 = (SByte)(left.register.sbyte_4 * right.register.sbyte_4); - product.register.sbyte_5 = (SByte)(left.register.sbyte_5 * right.register.sbyte_5); - product.register.sbyte_6 = (SByte)(left.register.sbyte_6 * right.register.sbyte_6); - product.register.sbyte_7 = (SByte)(left.register.sbyte_7 * right.register.sbyte_7); - product.register.sbyte_8 = (SByte)(left.register.sbyte_8 * right.register.sbyte_8); - product.register.sbyte_9 = (SByte)(left.register.sbyte_9 * right.register.sbyte_9); - product.register.sbyte_10 = (SByte)(left.register.sbyte_10 * right.register.sbyte_10); - product.register.sbyte_11 = (SByte)(left.register.sbyte_11 * right.register.sbyte_11); - product.register.sbyte_12 = (SByte)(left.register.sbyte_12 * right.register.sbyte_12); - product.register.sbyte_13 = (SByte)(left.register.sbyte_13 * right.register.sbyte_13); - product.register.sbyte_14 = (SByte)(left.register.sbyte_14 * right.register.sbyte_14); - product.register.sbyte_15 = (SByte)(left.register.sbyte_15 * right.register.sbyte_15); - } - else if (typeof(T) == typeof(UInt16)) - { - product.register.uint16_0 = (UInt16)(left.register.uint16_0 * right.register.uint16_0); - product.register.uint16_1 = (UInt16)(left.register.uint16_1 * right.register.uint16_1); - product.register.uint16_2 = (UInt16)(left.register.uint16_2 * right.register.uint16_2); - product.register.uint16_3 = (UInt16)(left.register.uint16_3 * right.register.uint16_3); - product.register.uint16_4 = (UInt16)(left.register.uint16_4 * right.register.uint16_4); - product.register.uint16_5 = (UInt16)(left.register.uint16_5 * right.register.uint16_5); - product.register.uint16_6 = (UInt16)(left.register.uint16_6 * right.register.uint16_6); - product.register.uint16_7 = (UInt16)(left.register.uint16_7 * right.register.uint16_7); - } - else if (typeof(T) == typeof(Int16)) - { - product.register.int16_0 = (Int16)(left.register.int16_0 * right.register.int16_0); - product.register.int16_1 = (Int16)(left.register.int16_1 * right.register.int16_1); - product.register.int16_2 = (Int16)(left.register.int16_2 * right.register.int16_2); - product.register.int16_3 = (Int16)(left.register.int16_3 * right.register.int16_3); - product.register.int16_4 = (Int16)(left.register.int16_4 * right.register.int16_4); - product.register.int16_5 = (Int16)(left.register.int16_5 * right.register.int16_5); - product.register.int16_6 = (Int16)(left.register.int16_6 * right.register.int16_6); - product.register.int16_7 = (Int16)(left.register.int16_7 * right.register.int16_7); - } - else if (typeof(T) == typeof(UInt32)) - { - product.register.uint32_0 = (UInt32)(left.register.uint32_0 * right.register.uint32_0); - product.register.uint32_1 = (UInt32)(left.register.uint32_1 * right.register.uint32_1); - product.register.uint32_2 = (UInt32)(left.register.uint32_2 * right.register.uint32_2); - product.register.uint32_3 = (UInt32)(left.register.uint32_3 * right.register.uint32_3); - } - else if (typeof(T) == typeof(Int32)) - { - product.register.int32_0 = (Int32)(left.register.int32_0 * right.register.int32_0); - product.register.int32_1 = (Int32)(left.register.int32_1 * right.register.int32_1); - product.register.int32_2 = (Int32)(left.register.int32_2 * right.register.int32_2); - product.register.int32_3 = (Int32)(left.register.int32_3 * right.register.int32_3); - } - else if (typeof(T) == typeof(UInt64)) - { - product.register.uint64_0 = (UInt64)(left.register.uint64_0 * right.register.uint64_0); - product.register.uint64_1 = (UInt64)(left.register.uint64_1 * right.register.uint64_1); - } - else if (typeof(T) == typeof(Int64)) - { - product.register.int64_0 = (Int64)(left.register.int64_0 * right.register.int64_0); - product.register.int64_1 = (Int64)(left.register.int64_1 * right.register.int64_1); - } - else if (typeof(T) == typeof(Single)) - { - product.register.single_0 = (Single)(left.register.single_0 * right.register.single_0); - product.register.single_1 = (Single)(left.register.single_1 * right.register.single_1); - product.register.single_2 = (Single)(left.register.single_2 * right.register.single_2); - product.register.single_3 = (Single)(left.register.single_3 * right.register.single_3); - } - else if (typeof(T) == typeof(Double)) - { - product.register.double_0 = (Double)(left.register.double_0 * right.register.double_0); - product.register.double_1 = (Double)(left.register.double_1 * right.register.double_1); + if (typeof(T) == typeof(byte)) + { + product.register.byte_0 = (byte)(left.register.byte_0 * right.register.byte_0); + product.register.byte_1 = (byte)(left.register.byte_1 * right.register.byte_1); + product.register.byte_2 = (byte)(left.register.byte_2 * right.register.byte_2); + product.register.byte_3 = (byte)(left.register.byte_3 * right.register.byte_3); + product.register.byte_4 = (byte)(left.register.byte_4 * right.register.byte_4); + product.register.byte_5 = (byte)(left.register.byte_5 * right.register.byte_5); + product.register.byte_6 = (byte)(left.register.byte_6 * right.register.byte_6); + product.register.byte_7 = (byte)(left.register.byte_7 * right.register.byte_7); + product.register.byte_8 = (byte)(left.register.byte_8 * right.register.byte_8); + product.register.byte_9 = (byte)(left.register.byte_9 * right.register.byte_9); + product.register.byte_10 = (byte)(left.register.byte_10 * right.register.byte_10); + product.register.byte_11 = (byte)(left.register.byte_11 * right.register.byte_11); + product.register.byte_12 = (byte)(left.register.byte_12 * right.register.byte_12); + product.register.byte_13 = (byte)(left.register.byte_13 * right.register.byte_13); + product.register.byte_14 = (byte)(left.register.byte_14 * right.register.byte_14); + product.register.byte_15 = (byte)(left.register.byte_15 * right.register.byte_15); + } + else if (typeof(T) == typeof(sbyte)) + { + product.register.sbyte_0 = (sbyte)(left.register.sbyte_0 * right.register.sbyte_0); + product.register.sbyte_1 = (sbyte)(left.register.sbyte_1 * right.register.sbyte_1); + product.register.sbyte_2 = (sbyte)(left.register.sbyte_2 * right.register.sbyte_2); + product.register.sbyte_3 = (sbyte)(left.register.sbyte_3 * right.register.sbyte_3); + product.register.sbyte_4 = (sbyte)(left.register.sbyte_4 * right.register.sbyte_4); + product.register.sbyte_5 = (sbyte)(left.register.sbyte_5 * right.register.sbyte_5); + product.register.sbyte_6 = (sbyte)(left.register.sbyte_6 * right.register.sbyte_6); + product.register.sbyte_7 = (sbyte)(left.register.sbyte_7 * right.register.sbyte_7); + product.register.sbyte_8 = (sbyte)(left.register.sbyte_8 * right.register.sbyte_8); + product.register.sbyte_9 = (sbyte)(left.register.sbyte_9 * right.register.sbyte_9); + product.register.sbyte_10 = (sbyte)(left.register.sbyte_10 * right.register.sbyte_10); + product.register.sbyte_11 = (sbyte)(left.register.sbyte_11 * right.register.sbyte_11); + product.register.sbyte_12 = (sbyte)(left.register.sbyte_12 * right.register.sbyte_12); + product.register.sbyte_13 = (sbyte)(left.register.sbyte_13 * right.register.sbyte_13); + product.register.sbyte_14 = (sbyte)(left.register.sbyte_14 * right.register.sbyte_14); + product.register.sbyte_15 = (sbyte)(left.register.sbyte_15 * right.register.sbyte_15); + } + else if (typeof(T) == typeof(ushort)) + { + product.register.uint16_0 = (ushort)(left.register.uint16_0 * right.register.uint16_0); + product.register.uint16_1 = (ushort)(left.register.uint16_1 * right.register.uint16_1); + product.register.uint16_2 = (ushort)(left.register.uint16_2 * right.register.uint16_2); + product.register.uint16_3 = (ushort)(left.register.uint16_3 * right.register.uint16_3); + product.register.uint16_4 = (ushort)(left.register.uint16_4 * right.register.uint16_4); + product.register.uint16_5 = (ushort)(left.register.uint16_5 * right.register.uint16_5); + product.register.uint16_6 = (ushort)(left.register.uint16_6 * right.register.uint16_6); + product.register.uint16_7 = (ushort)(left.register.uint16_7 * right.register.uint16_7); + } + else if (typeof(T) == typeof(short)) + { + product.register.int16_0 = (short)(left.register.int16_0 * right.register.int16_0); + product.register.int16_1 = (short)(left.register.int16_1 * right.register.int16_1); + product.register.int16_2 = (short)(left.register.int16_2 * right.register.int16_2); + product.register.int16_3 = (short)(left.register.int16_3 * right.register.int16_3); + product.register.int16_4 = (short)(left.register.int16_4 * right.register.int16_4); + product.register.int16_5 = (short)(left.register.int16_5 * right.register.int16_5); + product.register.int16_6 = (short)(left.register.int16_6 * right.register.int16_6); + product.register.int16_7 = (short)(left.register.int16_7 * right.register.int16_7); + } + else if (typeof(T) == typeof(uint)) + { + product.register.uint32_0 = (uint)(left.register.uint32_0 * right.register.uint32_0); + product.register.uint32_1 = (uint)(left.register.uint32_1 * right.register.uint32_1); + product.register.uint32_2 = (uint)(left.register.uint32_2 * right.register.uint32_2); + product.register.uint32_3 = (uint)(left.register.uint32_3 * right.register.uint32_3); + } + else if (typeof(T) == typeof(int)) + { + product.register.int32_0 = (int)(left.register.int32_0 * right.register.int32_0); + product.register.int32_1 = (int)(left.register.int32_1 * right.register.int32_1); + product.register.int32_2 = (int)(left.register.int32_2 * right.register.int32_2); + product.register.int32_3 = (int)(left.register.int32_3 * right.register.int32_3); + } + else if (typeof(T) == typeof(ulong)) + { + product.register.uint64_0 = (ulong)(left.register.uint64_0 * right.register.uint64_0); + product.register.uint64_1 = (ulong)(left.register.uint64_1 * right.register.uint64_1); + } + else if (typeof(T) == typeof(long)) + { + product.register.int64_0 = (long)(left.register.int64_0 * right.register.int64_0); + product.register.int64_1 = (long)(left.register.int64_1 * right.register.int64_1); + } + else if (typeof(T) == typeof(float)) + { + product.register.single_0 = (float)(left.register.single_0 * right.register.single_0); + product.register.single_1 = (float)(left.register.single_1 * right.register.single_1); + product.register.single_2 = (float)(left.register.single_2 * right.register.single_2); + product.register.single_3 = (float)(left.register.single_3 * right.register.single_3); + } + else if (typeof(T) == typeof(double)) + { + product.register.double_0 = (double)(left.register.double_0 * right.register.double_0); + product.register.double_1 = (double)(left.register.double_1 * right.register.double_1); } return product; } @@ -2202,101 +2237,101 @@ namespace System.Numerics else { Vector<T> product = new Vector<T>(); - if (typeof(T) == typeof(Byte)) - { - product.register.byte_0 = (Byte)(value.register.byte_0 * (Byte)(object)factor); - product.register.byte_1 = (Byte)(value.register.byte_1 * (Byte)(object)factor); - product.register.byte_2 = (Byte)(value.register.byte_2 * (Byte)(object)factor); - product.register.byte_3 = (Byte)(value.register.byte_3 * (Byte)(object)factor); - product.register.byte_4 = (Byte)(value.register.byte_4 * (Byte)(object)factor); - product.register.byte_5 = (Byte)(value.register.byte_5 * (Byte)(object)factor); - product.register.byte_6 = (Byte)(value.register.byte_6 * (Byte)(object)factor); - product.register.byte_7 = (Byte)(value.register.byte_7 * (Byte)(object)factor); - product.register.byte_8 = (Byte)(value.register.byte_8 * (Byte)(object)factor); - product.register.byte_9 = (Byte)(value.register.byte_9 * (Byte)(object)factor); - product.register.byte_10 = (Byte)(value.register.byte_10 * (Byte)(object)factor); - product.register.byte_11 = (Byte)(value.register.byte_11 * (Byte)(object)factor); - product.register.byte_12 = (Byte)(value.register.byte_12 * (Byte)(object)factor); - product.register.byte_13 = (Byte)(value.register.byte_13 * (Byte)(object)factor); - product.register.byte_14 = (Byte)(value.register.byte_14 * (Byte)(object)factor); - product.register.byte_15 = (Byte)(value.register.byte_15 * (Byte)(object)factor); - } - else if (typeof(T) == typeof(SByte)) - { - product.register.sbyte_0 = (SByte)(value.register.sbyte_0 * (SByte)(object)factor); - product.register.sbyte_1 = (SByte)(value.register.sbyte_1 * (SByte)(object)factor); - product.register.sbyte_2 = (SByte)(value.register.sbyte_2 * (SByte)(object)factor); - product.register.sbyte_3 = (SByte)(value.register.sbyte_3 * (SByte)(object)factor); - product.register.sbyte_4 = (SByte)(value.register.sbyte_4 * (SByte)(object)factor); - product.register.sbyte_5 = (SByte)(value.register.sbyte_5 * (SByte)(object)factor); - product.register.sbyte_6 = (SByte)(value.register.sbyte_6 * (SByte)(object)factor); - product.register.sbyte_7 = (SByte)(value.register.sbyte_7 * (SByte)(object)factor); - product.register.sbyte_8 = (SByte)(value.register.sbyte_8 * (SByte)(object)factor); - product.register.sbyte_9 = (SByte)(value.register.sbyte_9 * (SByte)(object)factor); - product.register.sbyte_10 = (SByte)(value.register.sbyte_10 * (SByte)(object)factor); - product.register.sbyte_11 = (SByte)(value.register.sbyte_11 * (SByte)(object)factor); - product.register.sbyte_12 = (SByte)(value.register.sbyte_12 * (SByte)(object)factor); - product.register.sbyte_13 = (SByte)(value.register.sbyte_13 * (SByte)(object)factor); - product.register.sbyte_14 = (SByte)(value.register.sbyte_14 * (SByte)(object)factor); - product.register.sbyte_15 = (SByte)(value.register.sbyte_15 * (SByte)(object)factor); - } - else if (typeof(T) == typeof(UInt16)) - { - product.register.uint16_0 = (UInt16)(value.register.uint16_0 * (UInt16)(object)factor); - product.register.uint16_1 = (UInt16)(value.register.uint16_1 * (UInt16)(object)factor); - product.register.uint16_2 = (UInt16)(value.register.uint16_2 * (UInt16)(object)factor); - product.register.uint16_3 = (UInt16)(value.register.uint16_3 * (UInt16)(object)factor); - product.register.uint16_4 = (UInt16)(value.register.uint16_4 * (UInt16)(object)factor); - product.register.uint16_5 = (UInt16)(value.register.uint16_5 * (UInt16)(object)factor); - product.register.uint16_6 = (UInt16)(value.register.uint16_6 * (UInt16)(object)factor); - product.register.uint16_7 = (UInt16)(value.register.uint16_7 * (UInt16)(object)factor); - } - else if (typeof(T) == typeof(Int16)) - { - product.register.int16_0 = (Int16)(value.register.int16_0 * (Int16)(object)factor); - product.register.int16_1 = (Int16)(value.register.int16_1 * (Int16)(object)factor); - product.register.int16_2 = (Int16)(value.register.int16_2 * (Int16)(object)factor); - product.register.int16_3 = (Int16)(value.register.int16_3 * (Int16)(object)factor); - product.register.int16_4 = (Int16)(value.register.int16_4 * (Int16)(object)factor); - product.register.int16_5 = (Int16)(value.register.int16_5 * (Int16)(object)factor); - product.register.int16_6 = (Int16)(value.register.int16_6 * (Int16)(object)factor); - product.register.int16_7 = (Int16)(value.register.int16_7 * (Int16)(object)factor); - } - else if (typeof(T) == typeof(UInt32)) - { - product.register.uint32_0 = (UInt32)(value.register.uint32_0 * (UInt32)(object)factor); - product.register.uint32_1 = (UInt32)(value.register.uint32_1 * (UInt32)(object)factor); - product.register.uint32_2 = (UInt32)(value.register.uint32_2 * (UInt32)(object)factor); - product.register.uint32_3 = (UInt32)(value.register.uint32_3 * (UInt32)(object)factor); - } - else if (typeof(T) == typeof(Int32)) - { - product.register.int32_0 = (Int32)(value.register.int32_0 * (Int32)(object)factor); - product.register.int32_1 = (Int32)(value.register.int32_1 * (Int32)(object)factor); - product.register.int32_2 = (Int32)(value.register.int32_2 * (Int32)(object)factor); - product.register.int32_3 = (Int32)(value.register.int32_3 * (Int32)(object)factor); - } - else if (typeof(T) == typeof(UInt64)) - { - product.register.uint64_0 = (UInt64)(value.register.uint64_0 * (UInt64)(object)factor); - product.register.uint64_1 = (UInt64)(value.register.uint64_1 * (UInt64)(object)factor); - } - else if (typeof(T) == typeof(Int64)) - { - product.register.int64_0 = (Int64)(value.register.int64_0 * (Int64)(object)factor); - product.register.int64_1 = (Int64)(value.register.int64_1 * (Int64)(object)factor); - } - else if (typeof(T) == typeof(Single)) - { - product.register.single_0 = (Single)(value.register.single_0 * (Single)(object)factor); - product.register.single_1 = (Single)(value.register.single_1 * (Single)(object)factor); - product.register.single_2 = (Single)(value.register.single_2 * (Single)(object)factor); - product.register.single_3 = (Single)(value.register.single_3 * (Single)(object)factor); - } - else if (typeof(T) == typeof(Double)) - { - product.register.double_0 = (Double)(value.register.double_0 * (Double)(object)factor); - product.register.double_1 = (Double)(value.register.double_1 * (Double)(object)factor); + if (typeof(T) == typeof(byte)) + { + product.register.byte_0 = (byte)(value.register.byte_0 * (byte)(object)factor); + product.register.byte_1 = (byte)(value.register.byte_1 * (byte)(object)factor); + product.register.byte_2 = (byte)(value.register.byte_2 * (byte)(object)factor); + product.register.byte_3 = (byte)(value.register.byte_3 * (byte)(object)factor); + product.register.byte_4 = (byte)(value.register.byte_4 * (byte)(object)factor); + product.register.byte_5 = (byte)(value.register.byte_5 * (byte)(object)factor); + product.register.byte_6 = (byte)(value.register.byte_6 * (byte)(object)factor); + product.register.byte_7 = (byte)(value.register.byte_7 * (byte)(object)factor); + product.register.byte_8 = (byte)(value.register.byte_8 * (byte)(object)factor); + product.register.byte_9 = (byte)(value.register.byte_9 * (byte)(object)factor); + product.register.byte_10 = (byte)(value.register.byte_10 * (byte)(object)factor); + product.register.byte_11 = (byte)(value.register.byte_11 * (byte)(object)factor); + product.register.byte_12 = (byte)(value.register.byte_12 * (byte)(object)factor); + product.register.byte_13 = (byte)(value.register.byte_13 * (byte)(object)factor); + product.register.byte_14 = (byte)(value.register.byte_14 * (byte)(object)factor); + product.register.byte_15 = (byte)(value.register.byte_15 * (byte)(object)factor); + } + else if (typeof(T) == typeof(sbyte)) + { + product.register.sbyte_0 = (sbyte)(value.register.sbyte_0 * (sbyte)(object)factor); + product.register.sbyte_1 = (sbyte)(value.register.sbyte_1 * (sbyte)(object)factor); + product.register.sbyte_2 = (sbyte)(value.register.sbyte_2 * (sbyte)(object)factor); + product.register.sbyte_3 = (sbyte)(value.register.sbyte_3 * (sbyte)(object)factor); + product.register.sbyte_4 = (sbyte)(value.register.sbyte_4 * (sbyte)(object)factor); + product.register.sbyte_5 = (sbyte)(value.register.sbyte_5 * (sbyte)(object)factor); + product.register.sbyte_6 = (sbyte)(value.register.sbyte_6 * (sbyte)(object)factor); + product.register.sbyte_7 = (sbyte)(value.register.sbyte_7 * (sbyte)(object)factor); + product.register.sbyte_8 = (sbyte)(value.register.sbyte_8 * (sbyte)(object)factor); + product.register.sbyte_9 = (sbyte)(value.register.sbyte_9 * (sbyte)(object)factor); + product.register.sbyte_10 = (sbyte)(value.register.sbyte_10 * (sbyte)(object)factor); + product.register.sbyte_11 = (sbyte)(value.register.sbyte_11 * (sbyte)(object)factor); + product.register.sbyte_12 = (sbyte)(value.register.sbyte_12 * (sbyte)(object)factor); + product.register.sbyte_13 = (sbyte)(value.register.sbyte_13 * (sbyte)(object)factor); + product.register.sbyte_14 = (sbyte)(value.register.sbyte_14 * (sbyte)(object)factor); + product.register.sbyte_15 = (sbyte)(value.register.sbyte_15 * (sbyte)(object)factor); + } + else if (typeof(T) == typeof(ushort)) + { + product.register.uint16_0 = (ushort)(value.register.uint16_0 * (ushort)(object)factor); + product.register.uint16_1 = (ushort)(value.register.uint16_1 * (ushort)(object)factor); + product.register.uint16_2 = (ushort)(value.register.uint16_2 * (ushort)(object)factor); + product.register.uint16_3 = (ushort)(value.register.uint16_3 * (ushort)(object)factor); + product.register.uint16_4 = (ushort)(value.register.uint16_4 * (ushort)(object)factor); + product.register.uint16_5 = (ushort)(value.register.uint16_5 * (ushort)(object)factor); + product.register.uint16_6 = (ushort)(value.register.uint16_6 * (ushort)(object)factor); + product.register.uint16_7 = (ushort)(value.register.uint16_7 * (ushort)(object)factor); + } + else if (typeof(T) == typeof(short)) + { + product.register.int16_0 = (short)(value.register.int16_0 * (short)(object)factor); + product.register.int16_1 = (short)(value.register.int16_1 * (short)(object)factor); + product.register.int16_2 = (short)(value.register.int16_2 * (short)(object)factor); + product.register.int16_3 = (short)(value.register.int16_3 * (short)(object)factor); + product.register.int16_4 = (short)(value.register.int16_4 * (short)(object)factor); + product.register.int16_5 = (short)(value.register.int16_5 * (short)(object)factor); + product.register.int16_6 = (short)(value.register.int16_6 * (short)(object)factor); + product.register.int16_7 = (short)(value.register.int16_7 * (short)(object)factor); + } + else if (typeof(T) == typeof(uint)) + { + product.register.uint32_0 = (uint)(value.register.uint32_0 * (uint)(object)factor); + product.register.uint32_1 = (uint)(value.register.uint32_1 * (uint)(object)factor); + product.register.uint32_2 = (uint)(value.register.uint32_2 * (uint)(object)factor); + product.register.uint32_3 = (uint)(value.register.uint32_3 * (uint)(object)factor); + } + else if (typeof(T) == typeof(int)) + { + product.register.int32_0 = (int)(value.register.int32_0 * (int)(object)factor); + product.register.int32_1 = (int)(value.register.int32_1 * (int)(object)factor); + product.register.int32_2 = (int)(value.register.int32_2 * (int)(object)factor); + product.register.int32_3 = (int)(value.register.int32_3 * (int)(object)factor); + } + else if (typeof(T) == typeof(ulong)) + { + product.register.uint64_0 = (ulong)(value.register.uint64_0 * (ulong)(object)factor); + product.register.uint64_1 = (ulong)(value.register.uint64_1 * (ulong)(object)factor); + } + else if (typeof(T) == typeof(long)) + { + product.register.int64_0 = (long)(value.register.int64_0 * (long)(object)factor); + product.register.int64_1 = (long)(value.register.int64_1 * (long)(object)factor); + } + else if (typeof(T) == typeof(float)) + { + product.register.single_0 = (float)(value.register.single_0 * (float)(object)factor); + product.register.single_1 = (float)(value.register.single_1 * (float)(object)factor); + product.register.single_2 = (float)(value.register.single_2 * (float)(object)factor); + product.register.single_3 = (float)(value.register.single_3 * (float)(object)factor); + } + else if (typeof(T) == typeof(double)) + { + product.register.double_0 = (double)(value.register.double_0 * (double)(object)factor); + product.register.double_1 = (double)(value.register.double_1 * (double)(object)factor); } return product; } @@ -2321,101 +2356,101 @@ namespace System.Numerics else { Vector<T> product = new Vector<T>(); - if (typeof(T) == typeof(Byte)) - { - product.register.byte_0 = (Byte)(value.register.byte_0 * (Byte)(object)factor); - product.register.byte_1 = (Byte)(value.register.byte_1 * (Byte)(object)factor); - product.register.byte_2 = (Byte)(value.register.byte_2 * (Byte)(object)factor); - product.register.byte_3 = (Byte)(value.register.byte_3 * (Byte)(object)factor); - product.register.byte_4 = (Byte)(value.register.byte_4 * (Byte)(object)factor); - product.register.byte_5 = (Byte)(value.register.byte_5 * (Byte)(object)factor); - product.register.byte_6 = (Byte)(value.register.byte_6 * (Byte)(object)factor); - product.register.byte_7 = (Byte)(value.register.byte_7 * (Byte)(object)factor); - product.register.byte_8 = (Byte)(value.register.byte_8 * (Byte)(object)factor); - product.register.byte_9 = (Byte)(value.register.byte_9 * (Byte)(object)factor); - product.register.byte_10 = (Byte)(value.register.byte_10 * (Byte)(object)factor); - product.register.byte_11 = (Byte)(value.register.byte_11 * (Byte)(object)factor); - product.register.byte_12 = (Byte)(value.register.byte_12 * (Byte)(object)factor); - product.register.byte_13 = (Byte)(value.register.byte_13 * (Byte)(object)factor); - product.register.byte_14 = (Byte)(value.register.byte_14 * (Byte)(object)factor); - product.register.byte_15 = (Byte)(value.register.byte_15 * (Byte)(object)factor); - } - else if (typeof(T) == typeof(SByte)) - { - product.register.sbyte_0 = (SByte)(value.register.sbyte_0 * (SByte)(object)factor); - product.register.sbyte_1 = (SByte)(value.register.sbyte_1 * (SByte)(object)factor); - product.register.sbyte_2 = (SByte)(value.register.sbyte_2 * (SByte)(object)factor); - product.register.sbyte_3 = (SByte)(value.register.sbyte_3 * (SByte)(object)factor); - product.register.sbyte_4 = (SByte)(value.register.sbyte_4 * (SByte)(object)factor); - product.register.sbyte_5 = (SByte)(value.register.sbyte_5 * (SByte)(object)factor); - product.register.sbyte_6 = (SByte)(value.register.sbyte_6 * (SByte)(object)factor); - product.register.sbyte_7 = (SByte)(value.register.sbyte_7 * (SByte)(object)factor); - product.register.sbyte_8 = (SByte)(value.register.sbyte_8 * (SByte)(object)factor); - product.register.sbyte_9 = (SByte)(value.register.sbyte_9 * (SByte)(object)factor); - product.register.sbyte_10 = (SByte)(value.register.sbyte_10 * (SByte)(object)factor); - product.register.sbyte_11 = (SByte)(value.register.sbyte_11 * (SByte)(object)factor); - product.register.sbyte_12 = (SByte)(value.register.sbyte_12 * (SByte)(object)factor); - product.register.sbyte_13 = (SByte)(value.register.sbyte_13 * (SByte)(object)factor); - product.register.sbyte_14 = (SByte)(value.register.sbyte_14 * (SByte)(object)factor); - product.register.sbyte_15 = (SByte)(value.register.sbyte_15 * (SByte)(object)factor); - } - else if (typeof(T) == typeof(UInt16)) - { - product.register.uint16_0 = (UInt16)(value.register.uint16_0 * (UInt16)(object)factor); - product.register.uint16_1 = (UInt16)(value.register.uint16_1 * (UInt16)(object)factor); - product.register.uint16_2 = (UInt16)(value.register.uint16_2 * (UInt16)(object)factor); - product.register.uint16_3 = (UInt16)(value.register.uint16_3 * (UInt16)(object)factor); - product.register.uint16_4 = (UInt16)(value.register.uint16_4 * (UInt16)(object)factor); - product.register.uint16_5 = (UInt16)(value.register.uint16_5 * (UInt16)(object)factor); - product.register.uint16_6 = (UInt16)(value.register.uint16_6 * (UInt16)(object)factor); - product.register.uint16_7 = (UInt16)(value.register.uint16_7 * (UInt16)(object)factor); - } - else if (typeof(T) == typeof(Int16)) - { - product.register.int16_0 = (Int16)(value.register.int16_0 * (Int16)(object)factor); - product.register.int16_1 = (Int16)(value.register.int16_1 * (Int16)(object)factor); - product.register.int16_2 = (Int16)(value.register.int16_2 * (Int16)(object)factor); - product.register.int16_3 = (Int16)(value.register.int16_3 * (Int16)(object)factor); - product.register.int16_4 = (Int16)(value.register.int16_4 * (Int16)(object)factor); - product.register.int16_5 = (Int16)(value.register.int16_5 * (Int16)(object)factor); - product.register.int16_6 = (Int16)(value.register.int16_6 * (Int16)(object)factor); - product.register.int16_7 = (Int16)(value.register.int16_7 * (Int16)(object)factor); - } - else if (typeof(T) == typeof(UInt32)) - { - product.register.uint32_0 = (UInt32)(value.register.uint32_0 * (UInt32)(object)factor); - product.register.uint32_1 = (UInt32)(value.register.uint32_1 * (UInt32)(object)factor); - product.register.uint32_2 = (UInt32)(value.register.uint32_2 * (UInt32)(object)factor); - product.register.uint32_3 = (UInt32)(value.register.uint32_3 * (UInt32)(object)factor); - } - else if (typeof(T) == typeof(Int32)) - { - product.register.int32_0 = (Int32)(value.register.int32_0 * (Int32)(object)factor); - product.register.int32_1 = (Int32)(value.register.int32_1 * (Int32)(object)factor); - product.register.int32_2 = (Int32)(value.register.int32_2 * (Int32)(object)factor); - product.register.int32_3 = (Int32)(value.register.int32_3 * (Int32)(object)factor); - } - else if (typeof(T) == typeof(UInt64)) - { - product.register.uint64_0 = (UInt64)(value.register.uint64_0 * (UInt64)(object)factor); - product.register.uint64_1 = (UInt64)(value.register.uint64_1 * (UInt64)(object)factor); - } - else if (typeof(T) == typeof(Int64)) - { - product.register.int64_0 = (Int64)(value.register.int64_0 * (Int64)(object)factor); - product.register.int64_1 = (Int64)(value.register.int64_1 * (Int64)(object)factor); - } - else if (typeof(T) == typeof(Single)) - { - product.register.single_0 = (Single)(value.register.single_0 * (Single)(object)factor); - product.register.single_1 = (Single)(value.register.single_1 * (Single)(object)factor); - product.register.single_2 = (Single)(value.register.single_2 * (Single)(object)factor); - product.register.single_3 = (Single)(value.register.single_3 * (Single)(object)factor); - } - else if (typeof(T) == typeof(Double)) - { - product.register.double_0 = (Double)(value.register.double_0 * (Double)(object)factor); - product.register.double_1 = (Double)(value.register.double_1 * (Double)(object)factor); + if (typeof(T) == typeof(byte)) + { + product.register.byte_0 = (byte)(value.register.byte_0 * (byte)(object)factor); + product.register.byte_1 = (byte)(value.register.byte_1 * (byte)(object)factor); + product.register.byte_2 = (byte)(value.register.byte_2 * (byte)(object)factor); + product.register.byte_3 = (byte)(value.register.byte_3 * (byte)(object)factor); + product.register.byte_4 = (byte)(value.register.byte_4 * (byte)(object)factor); + product.register.byte_5 = (byte)(value.register.byte_5 * (byte)(object)factor); + product.register.byte_6 = (byte)(value.register.byte_6 * (byte)(object)factor); + product.register.byte_7 = (byte)(value.register.byte_7 * (byte)(object)factor); + product.register.byte_8 = (byte)(value.register.byte_8 * (byte)(object)factor); + product.register.byte_9 = (byte)(value.register.byte_9 * (byte)(object)factor); + product.register.byte_10 = (byte)(value.register.byte_10 * (byte)(object)factor); + product.register.byte_11 = (byte)(value.register.byte_11 * (byte)(object)factor); + product.register.byte_12 = (byte)(value.register.byte_12 * (byte)(object)factor); + product.register.byte_13 = (byte)(value.register.byte_13 * (byte)(object)factor); + product.register.byte_14 = (byte)(value.register.byte_14 * (byte)(object)factor); + product.register.byte_15 = (byte)(value.register.byte_15 * (byte)(object)factor); + } + else if (typeof(T) == typeof(sbyte)) + { + product.register.sbyte_0 = (sbyte)(value.register.sbyte_0 * (sbyte)(object)factor); + product.register.sbyte_1 = (sbyte)(value.register.sbyte_1 * (sbyte)(object)factor); + product.register.sbyte_2 = (sbyte)(value.register.sbyte_2 * (sbyte)(object)factor); + product.register.sbyte_3 = (sbyte)(value.register.sbyte_3 * (sbyte)(object)factor); + product.register.sbyte_4 = (sbyte)(value.register.sbyte_4 * (sbyte)(object)factor); + product.register.sbyte_5 = (sbyte)(value.register.sbyte_5 * (sbyte)(object)factor); + product.register.sbyte_6 = (sbyte)(value.register.sbyte_6 * (sbyte)(object)factor); + product.register.sbyte_7 = (sbyte)(value.register.sbyte_7 * (sbyte)(object)factor); + product.register.sbyte_8 = (sbyte)(value.register.sbyte_8 * (sbyte)(object)factor); + product.register.sbyte_9 = (sbyte)(value.register.sbyte_9 * (sbyte)(object)factor); + product.register.sbyte_10 = (sbyte)(value.register.sbyte_10 * (sbyte)(object)factor); + product.register.sbyte_11 = (sbyte)(value.register.sbyte_11 * (sbyte)(object)factor); + product.register.sbyte_12 = (sbyte)(value.register.sbyte_12 * (sbyte)(object)factor); + product.register.sbyte_13 = (sbyte)(value.register.sbyte_13 * (sbyte)(object)factor); + product.register.sbyte_14 = (sbyte)(value.register.sbyte_14 * (sbyte)(object)factor); + product.register.sbyte_15 = (sbyte)(value.register.sbyte_15 * (sbyte)(object)factor); + } + else if (typeof(T) == typeof(ushort)) + { + product.register.uint16_0 = (ushort)(value.register.uint16_0 * (ushort)(object)factor); + product.register.uint16_1 = (ushort)(value.register.uint16_1 * (ushort)(object)factor); + product.register.uint16_2 = (ushort)(value.register.uint16_2 * (ushort)(object)factor); + product.register.uint16_3 = (ushort)(value.register.uint16_3 * (ushort)(object)factor); + product.register.uint16_4 = (ushort)(value.register.uint16_4 * (ushort)(object)factor); + product.register.uint16_5 = (ushort)(value.register.uint16_5 * (ushort)(object)factor); + product.register.uint16_6 = (ushort)(value.register.uint16_6 * (ushort)(object)factor); + product.register.uint16_7 = (ushort)(value.register.uint16_7 * (ushort)(object)factor); + } + else if (typeof(T) == typeof(short)) + { + product.register.int16_0 = (short)(value.register.int16_0 * (short)(object)factor); + product.register.int16_1 = (short)(value.register.int16_1 * (short)(object)factor); + product.register.int16_2 = (short)(value.register.int16_2 * (short)(object)factor); + product.register.int16_3 = (short)(value.register.int16_3 * (short)(object)factor); + product.register.int16_4 = (short)(value.register.int16_4 * (short)(object)factor); + product.register.int16_5 = (short)(value.register.int16_5 * (short)(object)factor); + product.register.int16_6 = (short)(value.register.int16_6 * (short)(object)factor); + product.register.int16_7 = (short)(value.register.int16_7 * (short)(object)factor); + } + else if (typeof(T) == typeof(uint)) + { + product.register.uint32_0 = (uint)(value.register.uint32_0 * (uint)(object)factor); + product.register.uint32_1 = (uint)(value.register.uint32_1 * (uint)(object)factor); + product.register.uint32_2 = (uint)(value.register.uint32_2 * (uint)(object)factor); + product.register.uint32_3 = (uint)(value.register.uint32_3 * (uint)(object)factor); + } + else if (typeof(T) == typeof(int)) + { + product.register.int32_0 = (int)(value.register.int32_0 * (int)(object)factor); + product.register.int32_1 = (int)(value.register.int32_1 * (int)(object)factor); + product.register.int32_2 = (int)(value.register.int32_2 * (int)(object)factor); + product.register.int32_3 = (int)(value.register.int32_3 * (int)(object)factor); + } + else if (typeof(T) == typeof(ulong)) + { + product.register.uint64_0 = (ulong)(value.register.uint64_0 * (ulong)(object)factor); + product.register.uint64_1 = (ulong)(value.register.uint64_1 * (ulong)(object)factor); + } + else if (typeof(T) == typeof(long)) + { + product.register.int64_0 = (long)(value.register.int64_0 * (long)(object)factor); + product.register.int64_1 = (long)(value.register.int64_1 * (long)(object)factor); + } + else if (typeof(T) == typeof(float)) + { + product.register.single_0 = (float)(value.register.single_0 * (float)(object)factor); + product.register.single_1 = (float)(value.register.single_1 * (float)(object)factor); + product.register.single_2 = (float)(value.register.single_2 * (float)(object)factor); + product.register.single_3 = (float)(value.register.single_3 * (float)(object)factor); + } + else if (typeof(T) == typeof(double)) + { + product.register.double_0 = (double)(value.register.double_0 * (double)(object)factor); + product.register.double_1 = (double)(value.register.double_1 * (double)(object)factor); } return product; } @@ -2435,93 +2470,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Byte)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (byte)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (SByte)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (sbyte)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt16)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (ushort)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int16)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (short)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt32)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (uint)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int32)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (int)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (UInt64)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (ulong)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int64)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (long)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Single)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (float)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Double)(object)ScalarDivide(left[g], right[g]); + dataPtr[g] = (double)(object)ScalarDivide(left[g], right[g]); } return new Vector<T>(dataPtr); } @@ -2533,101 +2568,101 @@ namespace System.Numerics else { Vector<T> quotient = new Vector<T>(); - if (typeof(T) == typeof(Byte)) - { - quotient.register.byte_0 = (Byte)(left.register.byte_0 / right.register.byte_0); - quotient.register.byte_1 = (Byte)(left.register.byte_1 / right.register.byte_1); - quotient.register.byte_2 = (Byte)(left.register.byte_2 / right.register.byte_2); - quotient.register.byte_3 = (Byte)(left.register.byte_3 / right.register.byte_3); - quotient.register.byte_4 = (Byte)(left.register.byte_4 / right.register.byte_4); - quotient.register.byte_5 = (Byte)(left.register.byte_5 / right.register.byte_5); - quotient.register.byte_6 = (Byte)(left.register.byte_6 / right.register.byte_6); - quotient.register.byte_7 = (Byte)(left.register.byte_7 / right.register.byte_7); - quotient.register.byte_8 = (Byte)(left.register.byte_8 / right.register.byte_8); - quotient.register.byte_9 = (Byte)(left.register.byte_9 / right.register.byte_9); - quotient.register.byte_10 = (Byte)(left.register.byte_10 / right.register.byte_10); - quotient.register.byte_11 = (Byte)(left.register.byte_11 / right.register.byte_11); - quotient.register.byte_12 = (Byte)(left.register.byte_12 / right.register.byte_12); - quotient.register.byte_13 = (Byte)(left.register.byte_13 / right.register.byte_13); - quotient.register.byte_14 = (Byte)(left.register.byte_14 / right.register.byte_14); - quotient.register.byte_15 = (Byte)(left.register.byte_15 / right.register.byte_15); - } - else if (typeof(T) == typeof(SByte)) - { - quotient.register.sbyte_0 = (SByte)(left.register.sbyte_0 / right.register.sbyte_0); - quotient.register.sbyte_1 = (SByte)(left.register.sbyte_1 / right.register.sbyte_1); - quotient.register.sbyte_2 = (SByte)(left.register.sbyte_2 / right.register.sbyte_2); - quotient.register.sbyte_3 = (SByte)(left.register.sbyte_3 / right.register.sbyte_3); - quotient.register.sbyte_4 = (SByte)(left.register.sbyte_4 / right.register.sbyte_4); - quotient.register.sbyte_5 = (SByte)(left.register.sbyte_5 / right.register.sbyte_5); - quotient.register.sbyte_6 = (SByte)(left.register.sbyte_6 / right.register.sbyte_6); - quotient.register.sbyte_7 = (SByte)(left.register.sbyte_7 / right.register.sbyte_7); - quotient.register.sbyte_8 = (SByte)(left.register.sbyte_8 / right.register.sbyte_8); - quotient.register.sbyte_9 = (SByte)(left.register.sbyte_9 / right.register.sbyte_9); - quotient.register.sbyte_10 = (SByte)(left.register.sbyte_10 / right.register.sbyte_10); - quotient.register.sbyte_11 = (SByte)(left.register.sbyte_11 / right.register.sbyte_11); - quotient.register.sbyte_12 = (SByte)(left.register.sbyte_12 / right.register.sbyte_12); - quotient.register.sbyte_13 = (SByte)(left.register.sbyte_13 / right.register.sbyte_13); - quotient.register.sbyte_14 = (SByte)(left.register.sbyte_14 / right.register.sbyte_14); - quotient.register.sbyte_15 = (SByte)(left.register.sbyte_15 / right.register.sbyte_15); - } - else if (typeof(T) == typeof(UInt16)) - { - quotient.register.uint16_0 = (UInt16)(left.register.uint16_0 / right.register.uint16_0); - quotient.register.uint16_1 = (UInt16)(left.register.uint16_1 / right.register.uint16_1); - quotient.register.uint16_2 = (UInt16)(left.register.uint16_2 / right.register.uint16_2); - quotient.register.uint16_3 = (UInt16)(left.register.uint16_3 / right.register.uint16_3); - quotient.register.uint16_4 = (UInt16)(left.register.uint16_4 / right.register.uint16_4); - quotient.register.uint16_5 = (UInt16)(left.register.uint16_5 / right.register.uint16_5); - quotient.register.uint16_6 = (UInt16)(left.register.uint16_6 / right.register.uint16_6); - quotient.register.uint16_7 = (UInt16)(left.register.uint16_7 / right.register.uint16_7); - } - else if (typeof(T) == typeof(Int16)) - { - quotient.register.int16_0 = (Int16)(left.register.int16_0 / right.register.int16_0); - quotient.register.int16_1 = (Int16)(left.register.int16_1 / right.register.int16_1); - quotient.register.int16_2 = (Int16)(left.register.int16_2 / right.register.int16_2); - quotient.register.int16_3 = (Int16)(left.register.int16_3 / right.register.int16_3); - quotient.register.int16_4 = (Int16)(left.register.int16_4 / right.register.int16_4); - quotient.register.int16_5 = (Int16)(left.register.int16_5 / right.register.int16_5); - quotient.register.int16_6 = (Int16)(left.register.int16_6 / right.register.int16_6); - quotient.register.int16_7 = (Int16)(left.register.int16_7 / right.register.int16_7); - } - else if (typeof(T) == typeof(UInt32)) - { - quotient.register.uint32_0 = (UInt32)(left.register.uint32_0 / right.register.uint32_0); - quotient.register.uint32_1 = (UInt32)(left.register.uint32_1 / right.register.uint32_1); - quotient.register.uint32_2 = (UInt32)(left.register.uint32_2 / right.register.uint32_2); - quotient.register.uint32_3 = (UInt32)(left.register.uint32_3 / right.register.uint32_3); - } - else if (typeof(T) == typeof(Int32)) - { - quotient.register.int32_0 = (Int32)(left.register.int32_0 / right.register.int32_0); - quotient.register.int32_1 = (Int32)(left.register.int32_1 / right.register.int32_1); - quotient.register.int32_2 = (Int32)(left.register.int32_2 / right.register.int32_2); - quotient.register.int32_3 = (Int32)(left.register.int32_3 / right.register.int32_3); - } - else if (typeof(T) == typeof(UInt64)) - { - quotient.register.uint64_0 = (UInt64)(left.register.uint64_0 / right.register.uint64_0); - quotient.register.uint64_1 = (UInt64)(left.register.uint64_1 / right.register.uint64_1); - } - else if (typeof(T) == typeof(Int64)) - { - quotient.register.int64_0 = (Int64)(left.register.int64_0 / right.register.int64_0); - quotient.register.int64_1 = (Int64)(left.register.int64_1 / right.register.int64_1); - } - else if (typeof(T) == typeof(Single)) - { - quotient.register.single_0 = (Single)(left.register.single_0 / right.register.single_0); - quotient.register.single_1 = (Single)(left.register.single_1 / right.register.single_1); - quotient.register.single_2 = (Single)(left.register.single_2 / right.register.single_2); - quotient.register.single_3 = (Single)(left.register.single_3 / right.register.single_3); - } - else if (typeof(T) == typeof(Double)) - { - quotient.register.double_0 = (Double)(left.register.double_0 / right.register.double_0); - quotient.register.double_1 = (Double)(left.register.double_1 / right.register.double_1); + if (typeof(T) == typeof(byte)) + { + quotient.register.byte_0 = (byte)(left.register.byte_0 / right.register.byte_0); + quotient.register.byte_1 = (byte)(left.register.byte_1 / right.register.byte_1); + quotient.register.byte_2 = (byte)(left.register.byte_2 / right.register.byte_2); + quotient.register.byte_3 = (byte)(left.register.byte_3 / right.register.byte_3); + quotient.register.byte_4 = (byte)(left.register.byte_4 / right.register.byte_4); + quotient.register.byte_5 = (byte)(left.register.byte_5 / right.register.byte_5); + quotient.register.byte_6 = (byte)(left.register.byte_6 / right.register.byte_6); + quotient.register.byte_7 = (byte)(left.register.byte_7 / right.register.byte_7); + quotient.register.byte_8 = (byte)(left.register.byte_8 / right.register.byte_8); + quotient.register.byte_9 = (byte)(left.register.byte_9 / right.register.byte_9); + quotient.register.byte_10 = (byte)(left.register.byte_10 / right.register.byte_10); + quotient.register.byte_11 = (byte)(left.register.byte_11 / right.register.byte_11); + quotient.register.byte_12 = (byte)(left.register.byte_12 / right.register.byte_12); + quotient.register.byte_13 = (byte)(left.register.byte_13 / right.register.byte_13); + quotient.register.byte_14 = (byte)(left.register.byte_14 / right.register.byte_14); + quotient.register.byte_15 = (byte)(left.register.byte_15 / right.register.byte_15); + } + else if (typeof(T) == typeof(sbyte)) + { + quotient.register.sbyte_0 = (sbyte)(left.register.sbyte_0 / right.register.sbyte_0); + quotient.register.sbyte_1 = (sbyte)(left.register.sbyte_1 / right.register.sbyte_1); + quotient.register.sbyte_2 = (sbyte)(left.register.sbyte_2 / right.register.sbyte_2); + quotient.register.sbyte_3 = (sbyte)(left.register.sbyte_3 / right.register.sbyte_3); + quotient.register.sbyte_4 = (sbyte)(left.register.sbyte_4 / right.register.sbyte_4); + quotient.register.sbyte_5 = (sbyte)(left.register.sbyte_5 / right.register.sbyte_5); + quotient.register.sbyte_6 = (sbyte)(left.register.sbyte_6 / right.register.sbyte_6); + quotient.register.sbyte_7 = (sbyte)(left.register.sbyte_7 / right.register.sbyte_7); + quotient.register.sbyte_8 = (sbyte)(left.register.sbyte_8 / right.register.sbyte_8); + quotient.register.sbyte_9 = (sbyte)(left.register.sbyte_9 / right.register.sbyte_9); + quotient.register.sbyte_10 = (sbyte)(left.register.sbyte_10 / right.register.sbyte_10); + quotient.register.sbyte_11 = (sbyte)(left.register.sbyte_11 / right.register.sbyte_11); + quotient.register.sbyte_12 = (sbyte)(left.register.sbyte_12 / right.register.sbyte_12); + quotient.register.sbyte_13 = (sbyte)(left.register.sbyte_13 / right.register.sbyte_13); + quotient.register.sbyte_14 = (sbyte)(left.register.sbyte_14 / right.register.sbyte_14); + quotient.register.sbyte_15 = (sbyte)(left.register.sbyte_15 / right.register.sbyte_15); + } + else if (typeof(T) == typeof(ushort)) + { + quotient.register.uint16_0 = (ushort)(left.register.uint16_0 / right.register.uint16_0); + quotient.register.uint16_1 = (ushort)(left.register.uint16_1 / right.register.uint16_1); + quotient.register.uint16_2 = (ushort)(left.register.uint16_2 / right.register.uint16_2); + quotient.register.uint16_3 = (ushort)(left.register.uint16_3 / right.register.uint16_3); + quotient.register.uint16_4 = (ushort)(left.register.uint16_4 / right.register.uint16_4); + quotient.register.uint16_5 = (ushort)(left.register.uint16_5 / right.register.uint16_5); + quotient.register.uint16_6 = (ushort)(left.register.uint16_6 / right.register.uint16_6); + quotient.register.uint16_7 = (ushort)(left.register.uint16_7 / right.register.uint16_7); + } + else if (typeof(T) == typeof(short)) + { + quotient.register.int16_0 = (short)(left.register.int16_0 / right.register.int16_0); + quotient.register.int16_1 = (short)(left.register.int16_1 / right.register.int16_1); + quotient.register.int16_2 = (short)(left.register.int16_2 / right.register.int16_2); + quotient.register.int16_3 = (short)(left.register.int16_3 / right.register.int16_3); + quotient.register.int16_4 = (short)(left.register.int16_4 / right.register.int16_4); + quotient.register.int16_5 = (short)(left.register.int16_5 / right.register.int16_5); + quotient.register.int16_6 = (short)(left.register.int16_6 / right.register.int16_6); + quotient.register.int16_7 = (short)(left.register.int16_7 / right.register.int16_7); + } + else if (typeof(T) == typeof(uint)) + { + quotient.register.uint32_0 = (uint)(left.register.uint32_0 / right.register.uint32_0); + quotient.register.uint32_1 = (uint)(left.register.uint32_1 / right.register.uint32_1); + quotient.register.uint32_2 = (uint)(left.register.uint32_2 / right.register.uint32_2); + quotient.register.uint32_3 = (uint)(left.register.uint32_3 / right.register.uint32_3); + } + else if (typeof(T) == typeof(int)) + { + quotient.register.int32_0 = (int)(left.register.int32_0 / right.register.int32_0); + quotient.register.int32_1 = (int)(left.register.int32_1 / right.register.int32_1); + quotient.register.int32_2 = (int)(left.register.int32_2 / right.register.int32_2); + quotient.register.int32_3 = (int)(left.register.int32_3 / right.register.int32_3); + } + else if (typeof(T) == typeof(ulong)) + { + quotient.register.uint64_0 = (ulong)(left.register.uint64_0 / right.register.uint64_0); + quotient.register.uint64_1 = (ulong)(left.register.uint64_1 / right.register.uint64_1); + } + else if (typeof(T) == typeof(long)) + { + quotient.register.int64_0 = (long)(left.register.int64_0 / right.register.int64_0); + quotient.register.int64_1 = (long)(left.register.int64_1 / right.register.int64_1); + } + else if (typeof(T) == typeof(float)) + { + quotient.register.single_0 = (float)(left.register.single_0 / right.register.single_0); + quotient.register.single_1 = (float)(left.register.single_1 / right.register.single_1); + quotient.register.single_2 = (float)(left.register.single_2 / right.register.single_2); + quotient.register.single_3 = (float)(left.register.single_3 / right.register.single_3); + } + else if (typeof(T) == typeof(double)) + { + quotient.register.double_0 = (double)(left.register.double_0 / right.register.double_0); + quotient.register.double_1 = (double)(left.register.double_1 / right.register.double_1); } return quotient; } @@ -2660,10 +2695,10 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - Int64* resultBase = &result.register.int64_0; - Int64* leftBase = &left.register.int64_0; - Int64* rightBase = &right.register.int64_0; - for (int g = 0; g < Vector<Int64>.Count; g++) + long* resultBase = &result.register.int64_0; + long* leftBase = &left.register.int64_0; + long* rightBase = &right.register.int64_0; + for (int g = 0; g < Vector<long>.Count; g++) { resultBase[g] = leftBase[g] & rightBase[g]; } @@ -2691,10 +2726,10 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - Int64* resultBase = &result.register.int64_0; - Int64* leftBase = &left.register.int64_0; - Int64* rightBase = &right.register.int64_0; - for (int g = 0; g < Vector<Int64>.Count; g++) + long* resultBase = &result.register.int64_0; + long* leftBase = &left.register.int64_0; + long* rightBase = &right.register.int64_0; + for (int g = 0; g < Vector<long>.Count; g++) { resultBase[g] = leftBase[g] | rightBase[g]; } @@ -2722,10 +2757,10 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - Int64* resultBase = &result.register.int64_0; - Int64* leftBase = &left.register.int64_0; - Int64* rightBase = &right.register.int64_0; - for (int g = 0; g < Vector<Int64>.Count; g++) + long* resultBase = &result.register.int64_0; + long* leftBase = &left.register.int64_0; + long* rightBase = &right.register.int64_0; + for (int g = 0; g < Vector<long>.Count; g++) { resultBase[g] = leftBase[g] ^ rightBase[g]; } @@ -2784,9 +2819,9 @@ namespace System.Numerics /// <param name="value">The source vector</param> /// <returns>The reinterpreted vector.</returns> [Intrinsic] - public static explicit operator Vector<Byte>(Vector<T> value) + public static explicit operator Vector<byte>(Vector<T> value) { - return new Vector<Byte>(ref value.register); + return new Vector<byte>(ref value.register); } /// <summary> @@ -2796,9 +2831,9 @@ namespace System.Numerics /// <returns>The reinterpreted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static explicit operator Vector<SByte>(Vector<T> value) + public static explicit operator Vector<sbyte>(Vector<T> value) { - return new Vector<SByte>(ref value.register); + return new Vector<sbyte>(ref value.register); } /// <summary> @@ -2808,9 +2843,9 @@ namespace System.Numerics /// <returns>The reinterpreted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static explicit operator Vector<UInt16>(Vector<T> value) + public static explicit operator Vector<ushort>(Vector<T> value) { - return new Vector<UInt16>(ref value.register); + return new Vector<ushort>(ref value.register); } /// <summary> @@ -2819,9 +2854,9 @@ namespace System.Numerics /// <param name="value">The source vector</param> /// <returns>The reinterpreted vector.</returns> [Intrinsic] - public static explicit operator Vector<Int16>(Vector<T> value) + public static explicit operator Vector<short>(Vector<T> value) { - return new Vector<Int16>(ref value.register); + return new Vector<short>(ref value.register); } /// <summary> @@ -2831,9 +2866,9 @@ namespace System.Numerics /// <returns>The reinterpreted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static explicit operator Vector<UInt32>(Vector<T> value) + public static explicit operator Vector<uint>(Vector<T> value) { - return new Vector<UInt32>(ref value.register); + return new Vector<uint>(ref value.register); } /// <summary> @@ -2842,9 +2877,9 @@ namespace System.Numerics /// <param name="value">The source vector</param> /// <returns>The reinterpreted vector.</returns> [Intrinsic] - public static explicit operator Vector<Int32>(Vector<T> value) + public static explicit operator Vector<int>(Vector<T> value) { - return new Vector<Int32>(ref value.register); + return new Vector<int>(ref value.register); } /// <summary> @@ -2854,9 +2889,9 @@ namespace System.Numerics /// <returns>The reinterpreted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static explicit operator Vector<UInt64>(Vector<T> value) + public static explicit operator Vector<ulong>(Vector<T> value) { - return new Vector<UInt64>(ref value.register); + return new Vector<ulong>(ref value.register); } /// <summary> @@ -2865,9 +2900,9 @@ namespace System.Numerics /// <param name="value">The source vector</param> /// <returns>The reinterpreted vector.</returns> [Intrinsic] - public static explicit operator Vector<Int64>(Vector<T> value) + public static explicit operator Vector<long>(Vector<T> value) { - return new Vector<Int64>(ref value.register); + return new Vector<long>(ref value.register); } /// <summary> @@ -2876,9 +2911,9 @@ namespace System.Numerics /// <param name="value">The source vector</param> /// <returns>The reinterpreted vector.</returns> [Intrinsic] - public static explicit operator Vector<Single>(Vector<T> value) + public static explicit operator Vector<float>(Vector<T> value) { - return new Vector<Single>(ref value.register); + return new Vector<float>(ref value.register); } /// <summary> @@ -2887,9 +2922,9 @@ namespace System.Numerics /// <param name="value">The source vector</param> /// <returns>The reinterpreted vector.</returns> [Intrinsic] - public static explicit operator Vector<Double>(Vector<T> value) + public static explicit operator Vector<double>(Vector<T> value) { - return new Vector<Double>(ref value.register); + return new Vector<double>(ref value.register); } #endregion Conversions @@ -2901,93 +2936,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; + dataPtr[g] = ScalarEquals(left[g], right[g]) ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; } return new Vector<T>(dataPtr); } @@ -2999,110 +3034,110 @@ namespace System.Numerics else { Register register = new Register(); - if (typeof(T) == typeof(Byte)) - { - register.byte_0 = left.register.byte_0 == right.register.byte_0 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_1 = left.register.byte_1 == right.register.byte_1 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_2 = left.register.byte_2 == right.register.byte_2 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_3 = left.register.byte_3 == right.register.byte_3 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_4 = left.register.byte_4 == right.register.byte_4 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_5 = left.register.byte_5 == right.register.byte_5 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_6 = left.register.byte_6 == right.register.byte_6 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_7 = left.register.byte_7 == right.register.byte_7 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_8 = left.register.byte_8 == right.register.byte_8 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_9 = left.register.byte_9 == right.register.byte_9 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_10 = left.register.byte_10 == right.register.byte_10 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_11 = left.register.byte_11 == right.register.byte_11 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_12 = left.register.byte_12 == right.register.byte_12 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_13 = left.register.byte_13 == right.register.byte_13 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_14 = left.register.byte_14 == right.register.byte_14 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_15 = left.register.byte_15 == right.register.byte_15 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; + if (typeof(T) == typeof(byte)) + { + register.byte_0 = left.register.byte_0 == right.register.byte_0 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_1 = left.register.byte_1 == right.register.byte_1 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_2 = left.register.byte_2 == right.register.byte_2 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_3 = left.register.byte_3 == right.register.byte_3 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_4 = left.register.byte_4 == right.register.byte_4 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_5 = left.register.byte_5 == right.register.byte_5 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_6 = left.register.byte_6 == right.register.byte_6 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_7 = left.register.byte_7 == right.register.byte_7 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_8 = left.register.byte_8 == right.register.byte_8 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_9 = left.register.byte_9 == right.register.byte_9 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_10 = left.register.byte_10 == right.register.byte_10 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_11 = left.register.byte_11 == right.register.byte_11 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_12 = left.register.byte_12 == right.register.byte_12 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_13 = left.register.byte_13 == right.register.byte_13 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_14 = left.register.byte_14 == right.register.byte_14 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_15 = left.register.byte_15 == right.register.byte_15 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(SByte)) - { - register.sbyte_0 = left.register.sbyte_0 == right.register.sbyte_0 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_1 = left.register.sbyte_1 == right.register.sbyte_1 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_2 = left.register.sbyte_2 == right.register.sbyte_2 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_3 = left.register.sbyte_3 == right.register.sbyte_3 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_4 = left.register.sbyte_4 == right.register.sbyte_4 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_5 = left.register.sbyte_5 == right.register.sbyte_5 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_6 = left.register.sbyte_6 == right.register.sbyte_6 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_7 = left.register.sbyte_7 == right.register.sbyte_7 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_8 = left.register.sbyte_8 == right.register.sbyte_8 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_9 = left.register.sbyte_9 == right.register.sbyte_9 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_10 = left.register.sbyte_10 == right.register.sbyte_10 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_11 = left.register.sbyte_11 == right.register.sbyte_11 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_12 = left.register.sbyte_12 == right.register.sbyte_12 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_13 = left.register.sbyte_13 == right.register.sbyte_13 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_14 = left.register.sbyte_14 == right.register.sbyte_14 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_15 = left.register.sbyte_15 == right.register.sbyte_15 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; + else if (typeof(T) == typeof(sbyte)) + { + register.sbyte_0 = left.register.sbyte_0 == right.register.sbyte_0 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_1 = left.register.sbyte_1 == right.register.sbyte_1 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_2 = left.register.sbyte_2 == right.register.sbyte_2 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_3 = left.register.sbyte_3 == right.register.sbyte_3 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_4 = left.register.sbyte_4 == right.register.sbyte_4 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_5 = left.register.sbyte_5 == right.register.sbyte_5 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_6 = left.register.sbyte_6 == right.register.sbyte_6 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_7 = left.register.sbyte_7 == right.register.sbyte_7 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_8 = left.register.sbyte_8 == right.register.sbyte_8 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_9 = left.register.sbyte_9 == right.register.sbyte_9 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_10 = left.register.sbyte_10 == right.register.sbyte_10 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_11 = left.register.sbyte_11 == right.register.sbyte_11 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_12 = left.register.sbyte_12 == right.register.sbyte_12 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_13 = left.register.sbyte_13 == right.register.sbyte_13 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_14 = left.register.sbyte_14 == right.register.sbyte_14 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_15 = left.register.sbyte_15 == right.register.sbyte_15 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - register.uint16_0 = left.register.uint16_0 == right.register.uint16_0 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_1 = left.register.uint16_1 == right.register.uint16_1 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_2 = left.register.uint16_2 == right.register.uint16_2 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_3 = left.register.uint16_3 == right.register.uint16_3 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_4 = left.register.uint16_4 == right.register.uint16_4 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_5 = left.register.uint16_5 == right.register.uint16_5 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_6 = left.register.uint16_6 == right.register.uint16_6 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_7 = left.register.uint16_7 == right.register.uint16_7 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; + register.uint16_0 = left.register.uint16_0 == right.register.uint16_0 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_1 = left.register.uint16_1 == right.register.uint16_1 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_2 = left.register.uint16_2 == right.register.uint16_2 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_3 = left.register.uint16_3 == right.register.uint16_3 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_4 = left.register.uint16_4 == right.register.uint16_4 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_5 = left.register.uint16_5 == right.register.uint16_5 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_6 = left.register.uint16_6 == right.register.uint16_6 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_7 = left.register.uint16_7 == right.register.uint16_7 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - register.int16_0 = left.register.int16_0 == right.register.int16_0 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_1 = left.register.int16_1 == right.register.int16_1 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_2 = left.register.int16_2 == right.register.int16_2 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_3 = left.register.int16_3 == right.register.int16_3 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_4 = left.register.int16_4 == right.register.int16_4 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_5 = left.register.int16_5 == right.register.int16_5 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_6 = left.register.int16_6 == right.register.int16_6 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_7 = left.register.int16_7 == right.register.int16_7 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; + register.int16_0 = left.register.int16_0 == right.register.int16_0 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_1 = left.register.int16_1 == right.register.int16_1 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_2 = left.register.int16_2 == right.register.int16_2 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_3 = left.register.int16_3 == right.register.int16_3 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_4 = left.register.int16_4 == right.register.int16_4 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_5 = left.register.int16_5 == right.register.int16_5 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_6 = left.register.int16_6 == right.register.int16_6 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_7 = left.register.int16_7 == right.register.int16_7 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - register.uint32_0 = left.register.uint32_0 == right.register.uint32_0 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_1 = left.register.uint32_1 == right.register.uint32_1 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_2 = left.register.uint32_2 == right.register.uint32_2 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_3 = left.register.uint32_3 == right.register.uint32_3 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; + register.uint32_0 = left.register.uint32_0 == right.register.uint32_0 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_1 = left.register.uint32_1 == right.register.uint32_1 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_2 = left.register.uint32_2 == right.register.uint32_2 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_3 = left.register.uint32_3 == right.register.uint32_3 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - register.int32_0 = left.register.int32_0 == right.register.int32_0 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_1 = left.register.int32_1 == right.register.int32_1 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_2 = left.register.int32_2 == right.register.int32_2 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_3 = left.register.int32_3 == right.register.int32_3 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; + register.int32_0 = left.register.int32_0 == right.register.int32_0 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_1 = left.register.int32_1 == right.register.int32_1 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_2 = left.register.int32_2 == right.register.int32_2 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_3 = left.register.int32_3 == right.register.int32_3 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - register.uint64_0 = left.register.uint64_0 == right.register.uint64_0 ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; - register.uint64_1 = left.register.uint64_1 == right.register.uint64_1 ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; + register.uint64_0 = left.register.uint64_0 == right.register.uint64_0 ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; + register.uint64_1 = left.register.uint64_1 == right.register.uint64_1 ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - register.int64_0 = left.register.int64_0 == right.register.int64_0 ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; - register.int64_1 = left.register.int64_1 == right.register.int64_1 ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; + register.int64_0 = left.register.int64_0 == right.register.int64_0 ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; + register.int64_1 = left.register.int64_1 == right.register.int64_1 ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - register.single_0 = left.register.single_0 == right.register.single_0 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_1 = left.register.single_1 == right.register.single_1 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_2 = left.register.single_2 == right.register.single_2 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_3 = left.register.single_3 == right.register.single_3 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; + register.single_0 = left.register.single_0 == right.register.single_0 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_1 = left.register.single_1 == right.register.single_1 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_2 = left.register.single_2 == right.register.single_2 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_3 = left.register.single_3 == right.register.single_3 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - register.double_0 = left.register.double_0 == right.register.double_0 ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; - register.double_1 = left.register.double_1 == right.register.double_1 ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; + register.double_0 = left.register.double_0 == right.register.double_0 ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; + register.double_1 = left.register.double_1 == right.register.double_1 ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; return new Vector<T>(ref register); } else @@ -3118,93 +3153,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; } return new Vector<T>(dataPtr); } @@ -3216,110 +3251,110 @@ namespace System.Numerics else { Register register = new Register(); - if (typeof(T) == typeof(Byte)) - { - register.byte_0 = left.register.byte_0 < right.register.byte_0 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_1 = left.register.byte_1 < right.register.byte_1 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_2 = left.register.byte_2 < right.register.byte_2 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_3 = left.register.byte_3 < right.register.byte_3 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_4 = left.register.byte_4 < right.register.byte_4 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_5 = left.register.byte_5 < right.register.byte_5 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_6 = left.register.byte_6 < right.register.byte_6 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_7 = left.register.byte_7 < right.register.byte_7 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_8 = left.register.byte_8 < right.register.byte_8 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_9 = left.register.byte_9 < right.register.byte_9 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_10 = left.register.byte_10 < right.register.byte_10 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_11 = left.register.byte_11 < right.register.byte_11 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_12 = left.register.byte_12 < right.register.byte_12 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_13 = left.register.byte_13 < right.register.byte_13 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_14 = left.register.byte_14 < right.register.byte_14 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_15 = left.register.byte_15 < right.register.byte_15 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; + if (typeof(T) == typeof(byte)) + { + register.byte_0 = left.register.byte_0 < right.register.byte_0 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_1 = left.register.byte_1 < right.register.byte_1 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_2 = left.register.byte_2 < right.register.byte_2 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_3 = left.register.byte_3 < right.register.byte_3 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_4 = left.register.byte_4 < right.register.byte_4 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_5 = left.register.byte_5 < right.register.byte_5 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_6 = left.register.byte_6 < right.register.byte_6 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_7 = left.register.byte_7 < right.register.byte_7 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_8 = left.register.byte_8 < right.register.byte_8 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_9 = left.register.byte_9 < right.register.byte_9 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_10 = left.register.byte_10 < right.register.byte_10 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_11 = left.register.byte_11 < right.register.byte_11 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_12 = left.register.byte_12 < right.register.byte_12 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_13 = left.register.byte_13 < right.register.byte_13 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_14 = left.register.byte_14 < right.register.byte_14 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_15 = left.register.byte_15 < right.register.byte_15 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(SByte)) - { - register.sbyte_0 = left.register.sbyte_0 < right.register.sbyte_0 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_1 = left.register.sbyte_1 < right.register.sbyte_1 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_2 = left.register.sbyte_2 < right.register.sbyte_2 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_3 = left.register.sbyte_3 < right.register.sbyte_3 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_4 = left.register.sbyte_4 < right.register.sbyte_4 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_5 = left.register.sbyte_5 < right.register.sbyte_5 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_6 = left.register.sbyte_6 < right.register.sbyte_6 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_7 = left.register.sbyte_7 < right.register.sbyte_7 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_8 = left.register.sbyte_8 < right.register.sbyte_8 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_9 = left.register.sbyte_9 < right.register.sbyte_9 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_10 = left.register.sbyte_10 < right.register.sbyte_10 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_11 = left.register.sbyte_11 < right.register.sbyte_11 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_12 = left.register.sbyte_12 < right.register.sbyte_12 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_13 = left.register.sbyte_13 < right.register.sbyte_13 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_14 = left.register.sbyte_14 < right.register.sbyte_14 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_15 = left.register.sbyte_15 < right.register.sbyte_15 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; + else if (typeof(T) == typeof(sbyte)) + { + register.sbyte_0 = left.register.sbyte_0 < right.register.sbyte_0 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_1 = left.register.sbyte_1 < right.register.sbyte_1 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_2 = left.register.sbyte_2 < right.register.sbyte_2 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_3 = left.register.sbyte_3 < right.register.sbyte_3 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_4 = left.register.sbyte_4 < right.register.sbyte_4 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_5 = left.register.sbyte_5 < right.register.sbyte_5 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_6 = left.register.sbyte_6 < right.register.sbyte_6 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_7 = left.register.sbyte_7 < right.register.sbyte_7 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_8 = left.register.sbyte_8 < right.register.sbyte_8 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_9 = left.register.sbyte_9 < right.register.sbyte_9 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_10 = left.register.sbyte_10 < right.register.sbyte_10 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_11 = left.register.sbyte_11 < right.register.sbyte_11 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_12 = left.register.sbyte_12 < right.register.sbyte_12 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_13 = left.register.sbyte_13 < right.register.sbyte_13 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_14 = left.register.sbyte_14 < right.register.sbyte_14 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_15 = left.register.sbyte_15 < right.register.sbyte_15 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - register.uint16_0 = left.register.uint16_0 < right.register.uint16_0 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_1 = left.register.uint16_1 < right.register.uint16_1 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_2 = left.register.uint16_2 < right.register.uint16_2 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_3 = left.register.uint16_3 < right.register.uint16_3 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_4 = left.register.uint16_4 < right.register.uint16_4 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_5 = left.register.uint16_5 < right.register.uint16_5 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_6 = left.register.uint16_6 < right.register.uint16_6 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_7 = left.register.uint16_7 < right.register.uint16_7 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; + register.uint16_0 = left.register.uint16_0 < right.register.uint16_0 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_1 = left.register.uint16_1 < right.register.uint16_1 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_2 = left.register.uint16_2 < right.register.uint16_2 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_3 = left.register.uint16_3 < right.register.uint16_3 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_4 = left.register.uint16_4 < right.register.uint16_4 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_5 = left.register.uint16_5 < right.register.uint16_5 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_6 = left.register.uint16_6 < right.register.uint16_6 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_7 = left.register.uint16_7 < right.register.uint16_7 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - register.int16_0 = left.register.int16_0 < right.register.int16_0 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_1 = left.register.int16_1 < right.register.int16_1 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_2 = left.register.int16_2 < right.register.int16_2 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_3 = left.register.int16_3 < right.register.int16_3 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_4 = left.register.int16_4 < right.register.int16_4 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_5 = left.register.int16_5 < right.register.int16_5 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_6 = left.register.int16_6 < right.register.int16_6 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_7 = left.register.int16_7 < right.register.int16_7 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; + register.int16_0 = left.register.int16_0 < right.register.int16_0 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_1 = left.register.int16_1 < right.register.int16_1 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_2 = left.register.int16_2 < right.register.int16_2 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_3 = left.register.int16_3 < right.register.int16_3 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_4 = left.register.int16_4 < right.register.int16_4 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_5 = left.register.int16_5 < right.register.int16_5 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_6 = left.register.int16_6 < right.register.int16_6 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_7 = left.register.int16_7 < right.register.int16_7 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - register.uint32_0 = left.register.uint32_0 < right.register.uint32_0 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_1 = left.register.uint32_1 < right.register.uint32_1 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_2 = left.register.uint32_2 < right.register.uint32_2 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_3 = left.register.uint32_3 < right.register.uint32_3 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; + register.uint32_0 = left.register.uint32_0 < right.register.uint32_0 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_1 = left.register.uint32_1 < right.register.uint32_1 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_2 = left.register.uint32_2 < right.register.uint32_2 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_3 = left.register.uint32_3 < right.register.uint32_3 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - register.int32_0 = left.register.int32_0 < right.register.int32_0 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_1 = left.register.int32_1 < right.register.int32_1 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_2 = left.register.int32_2 < right.register.int32_2 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_3 = left.register.int32_3 < right.register.int32_3 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; + register.int32_0 = left.register.int32_0 < right.register.int32_0 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_1 = left.register.int32_1 < right.register.int32_1 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_2 = left.register.int32_2 < right.register.int32_2 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_3 = left.register.int32_3 < right.register.int32_3 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - register.uint64_0 = left.register.uint64_0 < right.register.uint64_0 ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; - register.uint64_1 = left.register.uint64_1 < right.register.uint64_1 ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; + register.uint64_0 = left.register.uint64_0 < right.register.uint64_0 ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; + register.uint64_1 = left.register.uint64_1 < right.register.uint64_1 ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - register.int64_0 = left.register.int64_0 < right.register.int64_0 ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; - register.int64_1 = left.register.int64_1 < right.register.int64_1 ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; + register.int64_0 = left.register.int64_0 < right.register.int64_0 ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; + register.int64_1 = left.register.int64_1 < right.register.int64_1 ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - register.single_0 = left.register.single_0 < right.register.single_0 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_1 = left.register.single_1 < right.register.single_1 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_2 = left.register.single_2 < right.register.single_2 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_3 = left.register.single_3 < right.register.single_3 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; + register.single_0 = left.register.single_0 < right.register.single_0 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_1 = left.register.single_1 < right.register.single_1 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_2 = left.register.single_2 < right.register.single_2 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_3 = left.register.single_3 < right.register.single_3 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - register.double_0 = left.register.double_0 < right.register.double_0 ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; - register.double_1 = left.register.double_1 < right.register.double_1 ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; + register.double_0 = left.register.double_0 < right.register.double_0 ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; + register.double_1 = left.register.double_1 < right.register.double_1 ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; return new Vector<T>(ref register); } else @@ -3335,93 +3370,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; } return new Vector<T>(dataPtr); } @@ -3433,110 +3468,110 @@ namespace System.Numerics else { Register register = new Register(); - if (typeof(T) == typeof(Byte)) - { - register.byte_0 = left.register.byte_0 > right.register.byte_0 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_1 = left.register.byte_1 > right.register.byte_1 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_2 = left.register.byte_2 > right.register.byte_2 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_3 = left.register.byte_3 > right.register.byte_3 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_4 = left.register.byte_4 > right.register.byte_4 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_5 = left.register.byte_5 > right.register.byte_5 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_6 = left.register.byte_6 > right.register.byte_6 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_7 = left.register.byte_7 > right.register.byte_7 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_8 = left.register.byte_8 > right.register.byte_8 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_9 = left.register.byte_9 > right.register.byte_9 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_10 = left.register.byte_10 > right.register.byte_10 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_11 = left.register.byte_11 > right.register.byte_11 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_12 = left.register.byte_12 > right.register.byte_12 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_13 = left.register.byte_13 > right.register.byte_13 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_14 = left.register.byte_14 > right.register.byte_14 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; - register.byte_15 = left.register.byte_15 > right.register.byte_15 ? ConstantHelper.GetByteWithAllBitsSet() : (Byte)0; + if (typeof(T) == typeof(byte)) + { + register.byte_0 = left.register.byte_0 > right.register.byte_0 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_1 = left.register.byte_1 > right.register.byte_1 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_2 = left.register.byte_2 > right.register.byte_2 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_3 = left.register.byte_3 > right.register.byte_3 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_4 = left.register.byte_4 > right.register.byte_4 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_5 = left.register.byte_5 > right.register.byte_5 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_6 = left.register.byte_6 > right.register.byte_6 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_7 = left.register.byte_7 > right.register.byte_7 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_8 = left.register.byte_8 > right.register.byte_8 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_9 = left.register.byte_9 > right.register.byte_9 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_10 = left.register.byte_10 > right.register.byte_10 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_11 = left.register.byte_11 > right.register.byte_11 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_12 = left.register.byte_12 > right.register.byte_12 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_13 = left.register.byte_13 > right.register.byte_13 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_14 = left.register.byte_14 > right.register.byte_14 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; + register.byte_15 = left.register.byte_15 > right.register.byte_15 ? ConstantHelper.GetByteWithAllBitsSet() : (byte)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(SByte)) - { - register.sbyte_0 = left.register.sbyte_0 > right.register.sbyte_0 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_1 = left.register.sbyte_1 > right.register.sbyte_1 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_2 = left.register.sbyte_2 > right.register.sbyte_2 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_3 = left.register.sbyte_3 > right.register.sbyte_3 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_4 = left.register.sbyte_4 > right.register.sbyte_4 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_5 = left.register.sbyte_5 > right.register.sbyte_5 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_6 = left.register.sbyte_6 > right.register.sbyte_6 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_7 = left.register.sbyte_7 > right.register.sbyte_7 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_8 = left.register.sbyte_8 > right.register.sbyte_8 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_9 = left.register.sbyte_9 > right.register.sbyte_9 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_10 = left.register.sbyte_10 > right.register.sbyte_10 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_11 = left.register.sbyte_11 > right.register.sbyte_11 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_12 = left.register.sbyte_12 > right.register.sbyte_12 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_13 = left.register.sbyte_13 > right.register.sbyte_13 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_14 = left.register.sbyte_14 > right.register.sbyte_14 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; - register.sbyte_15 = left.register.sbyte_15 > right.register.sbyte_15 ? ConstantHelper.GetSByteWithAllBitsSet() : (SByte)0; + else if (typeof(T) == typeof(sbyte)) + { + register.sbyte_0 = left.register.sbyte_0 > right.register.sbyte_0 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_1 = left.register.sbyte_1 > right.register.sbyte_1 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_2 = left.register.sbyte_2 > right.register.sbyte_2 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_3 = left.register.sbyte_3 > right.register.sbyte_3 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_4 = left.register.sbyte_4 > right.register.sbyte_4 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_5 = left.register.sbyte_5 > right.register.sbyte_5 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_6 = left.register.sbyte_6 > right.register.sbyte_6 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_7 = left.register.sbyte_7 > right.register.sbyte_7 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_8 = left.register.sbyte_8 > right.register.sbyte_8 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_9 = left.register.sbyte_9 > right.register.sbyte_9 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_10 = left.register.sbyte_10 > right.register.sbyte_10 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_11 = left.register.sbyte_11 > right.register.sbyte_11 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_12 = left.register.sbyte_12 > right.register.sbyte_12 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_13 = left.register.sbyte_13 > right.register.sbyte_13 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_14 = left.register.sbyte_14 > right.register.sbyte_14 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; + register.sbyte_15 = left.register.sbyte_15 > right.register.sbyte_15 ? ConstantHelper.GetSByteWithAllBitsSet() : (sbyte)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - register.uint16_0 = left.register.uint16_0 > right.register.uint16_0 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_1 = left.register.uint16_1 > right.register.uint16_1 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_2 = left.register.uint16_2 > right.register.uint16_2 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_3 = left.register.uint16_3 > right.register.uint16_3 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_4 = left.register.uint16_4 > right.register.uint16_4 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_5 = left.register.uint16_5 > right.register.uint16_5 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_6 = left.register.uint16_6 > right.register.uint16_6 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; - register.uint16_7 = left.register.uint16_7 > right.register.uint16_7 ? ConstantHelper.GetUInt16WithAllBitsSet() : (UInt16)0; + register.uint16_0 = left.register.uint16_0 > right.register.uint16_0 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_1 = left.register.uint16_1 > right.register.uint16_1 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_2 = left.register.uint16_2 > right.register.uint16_2 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_3 = left.register.uint16_3 > right.register.uint16_3 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_4 = left.register.uint16_4 > right.register.uint16_4 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_5 = left.register.uint16_5 > right.register.uint16_5 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_6 = left.register.uint16_6 > right.register.uint16_6 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; + register.uint16_7 = left.register.uint16_7 > right.register.uint16_7 ? ConstantHelper.GetUInt16WithAllBitsSet() : (ushort)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - register.int16_0 = left.register.int16_0 > right.register.int16_0 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_1 = left.register.int16_1 > right.register.int16_1 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_2 = left.register.int16_2 > right.register.int16_2 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_3 = left.register.int16_3 > right.register.int16_3 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_4 = left.register.int16_4 > right.register.int16_4 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_5 = left.register.int16_5 > right.register.int16_5 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_6 = left.register.int16_6 > right.register.int16_6 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; - register.int16_7 = left.register.int16_7 > right.register.int16_7 ? ConstantHelper.GetInt16WithAllBitsSet() : (Int16)0; + register.int16_0 = left.register.int16_0 > right.register.int16_0 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_1 = left.register.int16_1 > right.register.int16_1 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_2 = left.register.int16_2 > right.register.int16_2 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_3 = left.register.int16_3 > right.register.int16_3 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_4 = left.register.int16_4 > right.register.int16_4 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_5 = left.register.int16_5 > right.register.int16_5 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_6 = left.register.int16_6 > right.register.int16_6 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; + register.int16_7 = left.register.int16_7 > right.register.int16_7 ? ConstantHelper.GetInt16WithAllBitsSet() : (short)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - register.uint32_0 = left.register.uint32_0 > right.register.uint32_0 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_1 = left.register.uint32_1 > right.register.uint32_1 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_2 = left.register.uint32_2 > right.register.uint32_2 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; - register.uint32_3 = left.register.uint32_3 > right.register.uint32_3 ? ConstantHelper.GetUInt32WithAllBitsSet() : (UInt32)0; + register.uint32_0 = left.register.uint32_0 > right.register.uint32_0 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_1 = left.register.uint32_1 > right.register.uint32_1 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_2 = left.register.uint32_2 > right.register.uint32_2 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; + register.uint32_3 = left.register.uint32_3 > right.register.uint32_3 ? ConstantHelper.GetUInt32WithAllBitsSet() : (uint)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - register.int32_0 = left.register.int32_0 > right.register.int32_0 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_1 = left.register.int32_1 > right.register.int32_1 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_2 = left.register.int32_2 > right.register.int32_2 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; - register.int32_3 = left.register.int32_3 > right.register.int32_3 ? ConstantHelper.GetInt32WithAllBitsSet() : (Int32)0; + register.int32_0 = left.register.int32_0 > right.register.int32_0 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_1 = left.register.int32_1 > right.register.int32_1 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_2 = left.register.int32_2 > right.register.int32_2 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; + register.int32_3 = left.register.int32_3 > right.register.int32_3 ? ConstantHelper.GetInt32WithAllBitsSet() : (int)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - register.uint64_0 = left.register.uint64_0 > right.register.uint64_0 ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; - register.uint64_1 = left.register.uint64_1 > right.register.uint64_1 ? ConstantHelper.GetUInt64WithAllBitsSet() : (UInt64)0; + register.uint64_0 = left.register.uint64_0 > right.register.uint64_0 ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; + register.uint64_1 = left.register.uint64_1 > right.register.uint64_1 ? ConstantHelper.GetUInt64WithAllBitsSet() : (ulong)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - register.int64_0 = left.register.int64_0 > right.register.int64_0 ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; - register.int64_1 = left.register.int64_1 > right.register.int64_1 ? ConstantHelper.GetInt64WithAllBitsSet() : (Int64)0; + register.int64_0 = left.register.int64_0 > right.register.int64_0 ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; + register.int64_1 = left.register.int64_1 > right.register.int64_1 ? ConstantHelper.GetInt64WithAllBitsSet() : (long)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - register.single_0 = left.register.single_0 > right.register.single_0 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_1 = left.register.single_1 > right.register.single_1 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_2 = left.register.single_2 > right.register.single_2 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; - register.single_3 = left.register.single_3 > right.register.single_3 ? ConstantHelper.GetSingleWithAllBitsSet() : (Single)0; + register.single_0 = left.register.single_0 > right.register.single_0 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_1 = left.register.single_1 > right.register.single_1 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_2 = left.register.single_2 > right.register.single_2 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; + register.single_3 = left.register.single_3 > right.register.single_3 ? ConstantHelper.GetSingleWithAllBitsSet() : (float)0; return new Vector<T>(ref register); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - register.double_0 = left.register.double_0 > right.register.double_0 ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; - register.double_1 = left.register.double_1 > right.register.double_1 ? ConstantHelper.GetDoubleWithAllBitsSet() : (Double)0; + register.double_0 = left.register.double_0 > right.register.double_0 ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; + register.double_1 = left.register.double_1 > right.register.double_1 ? ConstantHelper.GetDoubleWithAllBitsSet() : (double)0; return new Vector<T>(ref register); } else @@ -3569,75 +3604,75 @@ namespace System.Numerics [Intrinsic] internal static unsafe Vector<T> Abs(Vector<T> value) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { return value; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { return value; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { return value; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { return value; } if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(SByte)) + if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (SByte)(object)(Math.Abs((SByte)(object)value[g])); + dataPtr[g] = (sbyte)(object)(Math.Abs((sbyte)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int16)(object)(Math.Abs((Int16)(object)value[g])); + dataPtr[g] = (short)(object)(Math.Abs((short)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int32)(object)(Math.Abs((Int32)(object)value[g])); + dataPtr[g] = (int)(object)(Math.Abs((int)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Int64)(object)(Math.Abs((Int64)(object)value[g])); + dataPtr[g] = (long)(object)(Math.Abs((long)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Single)(object)(Math.Abs((Single)(object)value[g])); + dataPtr[g] = (float)(object)(Math.Abs((float)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = (Double)(object)(Math.Abs((Double)(object)value[g])); + dataPtr[g] = (double)(object)(Math.Abs((double)(object)value[g])); } return new Vector<T>(dataPtr); } @@ -3648,64 +3683,64 @@ namespace System.Numerics } else { - if (typeof(T) == typeof(SByte)) - { - value.register.sbyte_0 = (SByte)(Math.Abs(value.register.sbyte_0)); - value.register.sbyte_1 = (SByte)(Math.Abs(value.register.sbyte_1)); - value.register.sbyte_2 = (SByte)(Math.Abs(value.register.sbyte_2)); - value.register.sbyte_3 = (SByte)(Math.Abs(value.register.sbyte_3)); - value.register.sbyte_4 = (SByte)(Math.Abs(value.register.sbyte_4)); - value.register.sbyte_5 = (SByte)(Math.Abs(value.register.sbyte_5)); - value.register.sbyte_6 = (SByte)(Math.Abs(value.register.sbyte_6)); - value.register.sbyte_7 = (SByte)(Math.Abs(value.register.sbyte_7)); - value.register.sbyte_8 = (SByte)(Math.Abs(value.register.sbyte_8)); - value.register.sbyte_9 = (SByte)(Math.Abs(value.register.sbyte_9)); - value.register.sbyte_10 = (SByte)(Math.Abs(value.register.sbyte_10)); - value.register.sbyte_11 = (SByte)(Math.Abs(value.register.sbyte_11)); - value.register.sbyte_12 = (SByte)(Math.Abs(value.register.sbyte_12)); - value.register.sbyte_13 = (SByte)(Math.Abs(value.register.sbyte_13)); - value.register.sbyte_14 = (SByte)(Math.Abs(value.register.sbyte_14)); - value.register.sbyte_15 = (SByte)(Math.Abs(value.register.sbyte_15)); + if (typeof(T) == typeof(sbyte)) + { + value.register.sbyte_0 = (sbyte)(Math.Abs(value.register.sbyte_0)); + value.register.sbyte_1 = (sbyte)(Math.Abs(value.register.sbyte_1)); + value.register.sbyte_2 = (sbyte)(Math.Abs(value.register.sbyte_2)); + value.register.sbyte_3 = (sbyte)(Math.Abs(value.register.sbyte_3)); + value.register.sbyte_4 = (sbyte)(Math.Abs(value.register.sbyte_4)); + value.register.sbyte_5 = (sbyte)(Math.Abs(value.register.sbyte_5)); + value.register.sbyte_6 = (sbyte)(Math.Abs(value.register.sbyte_6)); + value.register.sbyte_7 = (sbyte)(Math.Abs(value.register.sbyte_7)); + value.register.sbyte_8 = (sbyte)(Math.Abs(value.register.sbyte_8)); + value.register.sbyte_9 = (sbyte)(Math.Abs(value.register.sbyte_9)); + value.register.sbyte_10 = (sbyte)(Math.Abs(value.register.sbyte_10)); + value.register.sbyte_11 = (sbyte)(Math.Abs(value.register.sbyte_11)); + value.register.sbyte_12 = (sbyte)(Math.Abs(value.register.sbyte_12)); + value.register.sbyte_13 = (sbyte)(Math.Abs(value.register.sbyte_13)); + value.register.sbyte_14 = (sbyte)(Math.Abs(value.register.sbyte_14)); + value.register.sbyte_15 = (sbyte)(Math.Abs(value.register.sbyte_15)); return value; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - value.register.int16_0 = (Int16)(Math.Abs(value.register.int16_0)); - value.register.int16_1 = (Int16)(Math.Abs(value.register.int16_1)); - value.register.int16_2 = (Int16)(Math.Abs(value.register.int16_2)); - value.register.int16_3 = (Int16)(Math.Abs(value.register.int16_3)); - value.register.int16_4 = (Int16)(Math.Abs(value.register.int16_4)); - value.register.int16_5 = (Int16)(Math.Abs(value.register.int16_5)); - value.register.int16_6 = (Int16)(Math.Abs(value.register.int16_6)); - value.register.int16_7 = (Int16)(Math.Abs(value.register.int16_7)); + value.register.int16_0 = (short)(Math.Abs(value.register.int16_0)); + value.register.int16_1 = (short)(Math.Abs(value.register.int16_1)); + value.register.int16_2 = (short)(Math.Abs(value.register.int16_2)); + value.register.int16_3 = (short)(Math.Abs(value.register.int16_3)); + value.register.int16_4 = (short)(Math.Abs(value.register.int16_4)); + value.register.int16_5 = (short)(Math.Abs(value.register.int16_5)); + value.register.int16_6 = (short)(Math.Abs(value.register.int16_6)); + value.register.int16_7 = (short)(Math.Abs(value.register.int16_7)); return value; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - value.register.int32_0 = (Int32)(Math.Abs(value.register.int32_0)); - value.register.int32_1 = (Int32)(Math.Abs(value.register.int32_1)); - value.register.int32_2 = (Int32)(Math.Abs(value.register.int32_2)); - value.register.int32_3 = (Int32)(Math.Abs(value.register.int32_3)); + value.register.int32_0 = (int)(Math.Abs(value.register.int32_0)); + value.register.int32_1 = (int)(Math.Abs(value.register.int32_1)); + value.register.int32_2 = (int)(Math.Abs(value.register.int32_2)); + value.register.int32_3 = (int)(Math.Abs(value.register.int32_3)); return value; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - value.register.int64_0 = (Int64)(Math.Abs(value.register.int64_0)); - value.register.int64_1 = (Int64)(Math.Abs(value.register.int64_1)); + value.register.int64_0 = (long)(Math.Abs(value.register.int64_0)); + value.register.int64_1 = (long)(Math.Abs(value.register.int64_1)); return value; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - value.register.single_0 = (Single)(Math.Abs(value.register.single_0)); - value.register.single_1 = (Single)(Math.Abs(value.register.single_1)); - value.register.single_2 = (Single)(Math.Abs(value.register.single_2)); - value.register.single_3 = (Single)(Math.Abs(value.register.single_3)); + value.register.single_0 = (float)(Math.Abs(value.register.single_0)); + value.register.single_1 = (float)(Math.Abs(value.register.single_1)); + value.register.single_2 = (float)(Math.Abs(value.register.single_2)); + value.register.single_3 = (float)(Math.Abs(value.register.single_3)); return value; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - value.register.double_0 = (Double)(Math.Abs(value.register.double_0)); - value.register.double_1 = (Double)(Math.Abs(value.register.double_1)); + value.register.double_0 = (double)(Math.Abs(value.register.double_0)); + value.register.double_1 = (double)(Math.Abs(value.register.double_1)); return value; } else @@ -3720,93 +3755,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (Byte)(object)left[g] : (Byte)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (byte)(object)left[g] : (byte)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (SByte)(object)left[g] : (SByte)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (sbyte)(object)left[g] : (sbyte)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (UInt16)(object)left[g] : (UInt16)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (ushort)(object)left[g] : (ushort)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (Int16)(object)left[g] : (Int16)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (short)(object)left[g] : (short)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (UInt32)(object)left[g] : (UInt32)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (uint)(object)left[g] : (uint)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (Int32)(object)left[g] : (Int32)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (int)(object)left[g] : (int)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (UInt64)(object)left[g] : (UInt64)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (ulong)(object)left[g] : (ulong)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (Int64)(object)left[g] : (Int64)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (long)(object)left[g] : (long)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (Single)(object)left[g] : (Single)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (float)(object)left[g] : (float)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (Double)(object)left[g] : (Double)(object)right[g]; + dataPtr[g] = ScalarLessThan(left[g], right[g]) ? (double)(object)left[g] : (double)(object)right[g]; } return new Vector<T>(dataPtr); } @@ -3818,7 +3853,7 @@ namespace System.Numerics else { Vector<T> vec = new Vector<T>(); - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { vec.register.byte_0 = left.register.byte_0 < right.register.byte_0 ? left.register.byte_0 : right.register.byte_0; vec.register.byte_1 = left.register.byte_1 < right.register.byte_1 ? left.register.byte_1 : right.register.byte_1; @@ -3838,7 +3873,7 @@ namespace System.Numerics vec.register.byte_15 = left.register.byte_15 < right.register.byte_15 ? left.register.byte_15 : right.register.byte_15; return vec; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { vec.register.sbyte_0 = left.register.sbyte_0 < right.register.sbyte_0 ? left.register.sbyte_0 : right.register.sbyte_0; vec.register.sbyte_1 = left.register.sbyte_1 < right.register.sbyte_1 ? left.register.sbyte_1 : right.register.sbyte_1; @@ -3858,7 +3893,7 @@ namespace System.Numerics vec.register.sbyte_15 = left.register.sbyte_15 < right.register.sbyte_15 ? left.register.sbyte_15 : right.register.sbyte_15; return vec; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { vec.register.uint16_0 = left.register.uint16_0 < right.register.uint16_0 ? left.register.uint16_0 : right.register.uint16_0; vec.register.uint16_1 = left.register.uint16_1 < right.register.uint16_1 ? left.register.uint16_1 : right.register.uint16_1; @@ -3870,7 +3905,7 @@ namespace System.Numerics vec.register.uint16_7 = left.register.uint16_7 < right.register.uint16_7 ? left.register.uint16_7 : right.register.uint16_7; return vec; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { vec.register.int16_0 = left.register.int16_0 < right.register.int16_0 ? left.register.int16_0 : right.register.int16_0; vec.register.int16_1 = left.register.int16_1 < right.register.int16_1 ? left.register.int16_1 : right.register.int16_1; @@ -3882,7 +3917,7 @@ namespace System.Numerics vec.register.int16_7 = left.register.int16_7 < right.register.int16_7 ? left.register.int16_7 : right.register.int16_7; return vec; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { vec.register.uint32_0 = left.register.uint32_0 < right.register.uint32_0 ? left.register.uint32_0 : right.register.uint32_0; vec.register.uint32_1 = left.register.uint32_1 < right.register.uint32_1 ? left.register.uint32_1 : right.register.uint32_1; @@ -3890,7 +3925,7 @@ namespace System.Numerics vec.register.uint32_3 = left.register.uint32_3 < right.register.uint32_3 ? left.register.uint32_3 : right.register.uint32_3; return vec; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { vec.register.int32_0 = left.register.int32_0 < right.register.int32_0 ? left.register.int32_0 : right.register.int32_0; vec.register.int32_1 = left.register.int32_1 < right.register.int32_1 ? left.register.int32_1 : right.register.int32_1; @@ -3898,19 +3933,19 @@ namespace System.Numerics vec.register.int32_3 = left.register.int32_3 < right.register.int32_3 ? left.register.int32_3 : right.register.int32_3; return vec; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { vec.register.uint64_0 = left.register.uint64_0 < right.register.uint64_0 ? left.register.uint64_0 : right.register.uint64_0; vec.register.uint64_1 = left.register.uint64_1 < right.register.uint64_1 ? left.register.uint64_1 : right.register.uint64_1; return vec; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { vec.register.int64_0 = left.register.int64_0 < right.register.int64_0 ? left.register.int64_0 : right.register.int64_0; vec.register.int64_1 = left.register.int64_1 < right.register.int64_1 ? left.register.int64_1 : right.register.int64_1; return vec; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { vec.register.single_0 = left.register.single_0 < right.register.single_0 ? left.register.single_0 : right.register.single_0; vec.register.single_1 = left.register.single_1 < right.register.single_1 ? left.register.single_1 : right.register.single_1; @@ -3918,7 +3953,7 @@ namespace System.Numerics vec.register.single_3 = left.register.single_3 < right.register.single_3 ? left.register.single_3 : right.register.single_3; return vec; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { vec.register.double_0 = left.register.double_0 < right.register.double_0 ? left.register.double_0 : right.register.double_0; vec.register.double_1 = left.register.double_1 < right.register.double_1 ? left.register.double_1 : right.register.double_1; @@ -3936,93 +3971,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (Byte)(object)left[g] : (Byte)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (byte)(object)left[g] : (byte)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (SByte)(object)left[g] : (SByte)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (sbyte)(object)left[g] : (sbyte)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (UInt16)(object)left[g] : (UInt16)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (ushort)(object)left[g] : (ushort)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (Int16)(object)left[g] : (Int16)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (short)(object)left[g] : (short)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (UInt32)(object)left[g] : (UInt32)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (uint)(object)left[g] : (uint)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (Int32)(object)left[g] : (Int32)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (int)(object)left[g] : (int)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (UInt64)(object)left[g] : (UInt64)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (ulong)(object)left[g] : (ulong)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (Int64)(object)left[g] : (Int64)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (long)(object)left[g] : (long)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (Single)(object)left[g] : (Single)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (float)(object)left[g] : (float)(object)right[g]; } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (Double)(object)left[g] : (Double)(object)right[g]; + dataPtr[g] = ScalarGreaterThan(left[g], right[g]) ? (double)(object)left[g] : (double)(object)right[g]; } return new Vector<T>(dataPtr); } @@ -4034,7 +4069,7 @@ namespace System.Numerics else { Vector<T> vec = new Vector<T>(); - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { vec.register.byte_0 = left.register.byte_0 > right.register.byte_0 ? left.register.byte_0 : right.register.byte_0; vec.register.byte_1 = left.register.byte_1 > right.register.byte_1 ? left.register.byte_1 : right.register.byte_1; @@ -4054,7 +4089,7 @@ namespace System.Numerics vec.register.byte_15 = left.register.byte_15 > right.register.byte_15 ? left.register.byte_15 : right.register.byte_15; return vec; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { vec.register.sbyte_0 = left.register.sbyte_0 > right.register.sbyte_0 ? left.register.sbyte_0 : right.register.sbyte_0; vec.register.sbyte_1 = left.register.sbyte_1 > right.register.sbyte_1 ? left.register.sbyte_1 : right.register.sbyte_1; @@ -4074,7 +4109,7 @@ namespace System.Numerics vec.register.sbyte_15 = left.register.sbyte_15 > right.register.sbyte_15 ? left.register.sbyte_15 : right.register.sbyte_15; return vec; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { vec.register.uint16_0 = left.register.uint16_0 > right.register.uint16_0 ? left.register.uint16_0 : right.register.uint16_0; vec.register.uint16_1 = left.register.uint16_1 > right.register.uint16_1 ? left.register.uint16_1 : right.register.uint16_1; @@ -4086,7 +4121,7 @@ namespace System.Numerics vec.register.uint16_7 = left.register.uint16_7 > right.register.uint16_7 ? left.register.uint16_7 : right.register.uint16_7; return vec; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { vec.register.int16_0 = left.register.int16_0 > right.register.int16_0 ? left.register.int16_0 : right.register.int16_0; vec.register.int16_1 = left.register.int16_1 > right.register.int16_1 ? left.register.int16_1 : right.register.int16_1; @@ -4098,7 +4133,7 @@ namespace System.Numerics vec.register.int16_7 = left.register.int16_7 > right.register.int16_7 ? left.register.int16_7 : right.register.int16_7; return vec; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { vec.register.uint32_0 = left.register.uint32_0 > right.register.uint32_0 ? left.register.uint32_0 : right.register.uint32_0; vec.register.uint32_1 = left.register.uint32_1 > right.register.uint32_1 ? left.register.uint32_1 : right.register.uint32_1; @@ -4106,7 +4141,7 @@ namespace System.Numerics vec.register.uint32_3 = left.register.uint32_3 > right.register.uint32_3 ? left.register.uint32_3 : right.register.uint32_3; return vec; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { vec.register.int32_0 = left.register.int32_0 > right.register.int32_0 ? left.register.int32_0 : right.register.int32_0; vec.register.int32_1 = left.register.int32_1 > right.register.int32_1 ? left.register.int32_1 : right.register.int32_1; @@ -4114,19 +4149,19 @@ namespace System.Numerics vec.register.int32_3 = left.register.int32_3 > right.register.int32_3 ? left.register.int32_3 : right.register.int32_3; return vec; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { vec.register.uint64_0 = left.register.uint64_0 > right.register.uint64_0 ? left.register.uint64_0 : right.register.uint64_0; vec.register.uint64_1 = left.register.uint64_1 > right.register.uint64_1 ? left.register.uint64_1 : right.register.uint64_1; return vec; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { vec.register.int64_0 = left.register.int64_0 > right.register.int64_0 ? left.register.int64_0 : right.register.int64_0; vec.register.int64_1 = left.register.int64_1 > right.register.int64_1 ? left.register.int64_1 : right.register.int64_1; return vec; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { vec.register.single_0 = left.register.single_0 > right.register.single_0 ? left.register.single_0 : right.register.single_0; vec.register.single_1 = left.register.single_1 > right.register.single_1 ? left.register.single_1 : right.register.single_1; @@ -4134,7 +4169,7 @@ namespace System.Numerics vec.register.single_3 = left.register.single_3 > right.register.single_3 ? left.register.single_3 : right.register.single_3; return vec; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { vec.register.double_0 = left.register.double_0 > right.register.double_0 ? left.register.double_0 : right.register.double_0; vec.register.double_1 = left.register.double_1 > right.register.double_1 ? left.register.double_1 : right.register.double_1; @@ -4161,120 +4196,120 @@ namespace System.Numerics } else { - if (typeof(T) == typeof(Byte)) - { - Byte product = 0; - product += (Byte)(left.register.byte_0 * right.register.byte_0); - product += (Byte)(left.register.byte_1 * right.register.byte_1); - product += (Byte)(left.register.byte_2 * right.register.byte_2); - product += (Byte)(left.register.byte_3 * right.register.byte_3); - product += (Byte)(left.register.byte_4 * right.register.byte_4); - product += (Byte)(left.register.byte_5 * right.register.byte_5); - product += (Byte)(left.register.byte_6 * right.register.byte_6); - product += (Byte)(left.register.byte_7 * right.register.byte_7); - product += (Byte)(left.register.byte_8 * right.register.byte_8); - product += (Byte)(left.register.byte_9 * right.register.byte_9); - product += (Byte)(left.register.byte_10 * right.register.byte_10); - product += (Byte)(left.register.byte_11 * right.register.byte_11); - product += (Byte)(left.register.byte_12 * right.register.byte_12); - product += (Byte)(left.register.byte_13 * right.register.byte_13); - product += (Byte)(left.register.byte_14 * right.register.byte_14); - product += (Byte)(left.register.byte_15 * right.register.byte_15); + if (typeof(T) == typeof(byte)) + { + byte product = 0; + product += (byte)(left.register.byte_0 * right.register.byte_0); + product += (byte)(left.register.byte_1 * right.register.byte_1); + product += (byte)(left.register.byte_2 * right.register.byte_2); + product += (byte)(left.register.byte_3 * right.register.byte_3); + product += (byte)(left.register.byte_4 * right.register.byte_4); + product += (byte)(left.register.byte_5 * right.register.byte_5); + product += (byte)(left.register.byte_6 * right.register.byte_6); + product += (byte)(left.register.byte_7 * right.register.byte_7); + product += (byte)(left.register.byte_8 * right.register.byte_8); + product += (byte)(left.register.byte_9 * right.register.byte_9); + product += (byte)(left.register.byte_10 * right.register.byte_10); + product += (byte)(left.register.byte_11 * right.register.byte_11); + product += (byte)(left.register.byte_12 * right.register.byte_12); + product += (byte)(left.register.byte_13 * right.register.byte_13); + product += (byte)(left.register.byte_14 * right.register.byte_14); + product += (byte)(left.register.byte_15 * right.register.byte_15); return (T)(object)product; } - else if (typeof(T) == typeof(SByte)) - { - SByte product = 0; - product += (SByte)(left.register.sbyte_0 * right.register.sbyte_0); - product += (SByte)(left.register.sbyte_1 * right.register.sbyte_1); - product += (SByte)(left.register.sbyte_2 * right.register.sbyte_2); - product += (SByte)(left.register.sbyte_3 * right.register.sbyte_3); - product += (SByte)(left.register.sbyte_4 * right.register.sbyte_4); - product += (SByte)(left.register.sbyte_5 * right.register.sbyte_5); - product += (SByte)(left.register.sbyte_6 * right.register.sbyte_6); - product += (SByte)(left.register.sbyte_7 * right.register.sbyte_7); - product += (SByte)(left.register.sbyte_8 * right.register.sbyte_8); - product += (SByte)(left.register.sbyte_9 * right.register.sbyte_9); - product += (SByte)(left.register.sbyte_10 * right.register.sbyte_10); - product += (SByte)(left.register.sbyte_11 * right.register.sbyte_11); - product += (SByte)(left.register.sbyte_12 * right.register.sbyte_12); - product += (SByte)(left.register.sbyte_13 * right.register.sbyte_13); - product += (SByte)(left.register.sbyte_14 * right.register.sbyte_14); - product += (SByte)(left.register.sbyte_15 * right.register.sbyte_15); + else if (typeof(T) == typeof(sbyte)) + { + sbyte product = 0; + product += (sbyte)(left.register.sbyte_0 * right.register.sbyte_0); + product += (sbyte)(left.register.sbyte_1 * right.register.sbyte_1); + product += (sbyte)(left.register.sbyte_2 * right.register.sbyte_2); + product += (sbyte)(left.register.sbyte_3 * right.register.sbyte_3); + product += (sbyte)(left.register.sbyte_4 * right.register.sbyte_4); + product += (sbyte)(left.register.sbyte_5 * right.register.sbyte_5); + product += (sbyte)(left.register.sbyte_6 * right.register.sbyte_6); + product += (sbyte)(left.register.sbyte_7 * right.register.sbyte_7); + product += (sbyte)(left.register.sbyte_8 * right.register.sbyte_8); + product += (sbyte)(left.register.sbyte_9 * right.register.sbyte_9); + product += (sbyte)(left.register.sbyte_10 * right.register.sbyte_10); + product += (sbyte)(left.register.sbyte_11 * right.register.sbyte_11); + product += (sbyte)(left.register.sbyte_12 * right.register.sbyte_12); + product += (sbyte)(left.register.sbyte_13 * right.register.sbyte_13); + product += (sbyte)(left.register.sbyte_14 * right.register.sbyte_14); + product += (sbyte)(left.register.sbyte_15 * right.register.sbyte_15); return (T)(object)product; } - else if (typeof(T) == typeof(UInt16)) - { - UInt16 product = 0; - product += (UInt16)(left.register.uint16_0 * right.register.uint16_0); - product += (UInt16)(left.register.uint16_1 * right.register.uint16_1); - product += (UInt16)(left.register.uint16_2 * right.register.uint16_2); - product += (UInt16)(left.register.uint16_3 * right.register.uint16_3); - product += (UInt16)(left.register.uint16_4 * right.register.uint16_4); - product += (UInt16)(left.register.uint16_5 * right.register.uint16_5); - product += (UInt16)(left.register.uint16_6 * right.register.uint16_6); - product += (UInt16)(left.register.uint16_7 * right.register.uint16_7); + else if (typeof(T) == typeof(ushort)) + { + ushort product = 0; + product += (ushort)(left.register.uint16_0 * right.register.uint16_0); + product += (ushort)(left.register.uint16_1 * right.register.uint16_1); + product += (ushort)(left.register.uint16_2 * right.register.uint16_2); + product += (ushort)(left.register.uint16_3 * right.register.uint16_3); + product += (ushort)(left.register.uint16_4 * right.register.uint16_4); + product += (ushort)(left.register.uint16_5 * right.register.uint16_5); + product += (ushort)(left.register.uint16_6 * right.register.uint16_6); + product += (ushort)(left.register.uint16_7 * right.register.uint16_7); return (T)(object)product; } - else if (typeof(T) == typeof(Int16)) - { - Int16 product = 0; - product += (Int16)(left.register.int16_0 * right.register.int16_0); - product += (Int16)(left.register.int16_1 * right.register.int16_1); - product += (Int16)(left.register.int16_2 * right.register.int16_2); - product += (Int16)(left.register.int16_3 * right.register.int16_3); - product += (Int16)(left.register.int16_4 * right.register.int16_4); - product += (Int16)(left.register.int16_5 * right.register.int16_5); - product += (Int16)(left.register.int16_6 * right.register.int16_6); - product += (Int16)(left.register.int16_7 * right.register.int16_7); + else if (typeof(T) == typeof(short)) + { + short product = 0; + product += (short)(left.register.int16_0 * right.register.int16_0); + product += (short)(left.register.int16_1 * right.register.int16_1); + product += (short)(left.register.int16_2 * right.register.int16_2); + product += (short)(left.register.int16_3 * right.register.int16_3); + product += (short)(left.register.int16_4 * right.register.int16_4); + product += (short)(left.register.int16_5 * right.register.int16_5); + product += (short)(left.register.int16_6 * right.register.int16_6); + product += (short)(left.register.int16_7 * right.register.int16_7); return (T)(object)product; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32 product = 0; - product += (UInt32)(left.register.uint32_0 * right.register.uint32_0); - product += (UInt32)(left.register.uint32_1 * right.register.uint32_1); - product += (UInt32)(left.register.uint32_2 * right.register.uint32_2); - product += (UInt32)(left.register.uint32_3 * right.register.uint32_3); + uint product = 0; + product += (uint)(left.register.uint32_0 * right.register.uint32_0); + product += (uint)(left.register.uint32_1 * right.register.uint32_1); + product += (uint)(left.register.uint32_2 * right.register.uint32_2); + product += (uint)(left.register.uint32_3 * right.register.uint32_3); return (T)(object)product; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32 product = 0; - product += (Int32)(left.register.int32_0 * right.register.int32_0); - product += (Int32)(left.register.int32_1 * right.register.int32_1); - product += (Int32)(left.register.int32_2 * right.register.int32_2); - product += (Int32)(left.register.int32_3 * right.register.int32_3); + int product = 0; + product += (int)(left.register.int32_0 * right.register.int32_0); + product += (int)(left.register.int32_1 * right.register.int32_1); + product += (int)(left.register.int32_2 * right.register.int32_2); + product += (int)(left.register.int32_3 * right.register.int32_3); return (T)(object)product; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64 product = 0; - product += (UInt64)(left.register.uint64_0 * right.register.uint64_0); - product += (UInt64)(left.register.uint64_1 * right.register.uint64_1); + ulong product = 0; + product += (ulong)(left.register.uint64_0 * right.register.uint64_0); + product += (ulong)(left.register.uint64_1 * right.register.uint64_1); return (T)(object)product; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64 product = 0; - product += (Int64)(left.register.int64_0 * right.register.int64_0); - product += (Int64)(left.register.int64_1 * right.register.int64_1); + long product = 0; + product += (long)(left.register.int64_0 * right.register.int64_0); + product += (long)(left.register.int64_1 * right.register.int64_1); return (T)(object)product; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single product = 0; - product += (Single)(left.register.single_0 * right.register.single_0); - product += (Single)(left.register.single_1 * right.register.single_1); - product += (Single)(left.register.single_2 * right.register.single_2); - product += (Single)(left.register.single_3 * right.register.single_3); + float product = 0; + product += (float)(left.register.single_0 * right.register.single_0); + product += (float)(left.register.single_1 * right.register.single_1); + product += (float)(left.register.single_2 * right.register.single_2); + product += (float)(left.register.single_3 * right.register.single_3); return (T)(object)product; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double product = 0; - product += (Double)(left.register.double_0 * right.register.double_0); - product += (Double)(left.register.double_1 * right.register.double_1); + double product = 0; + product += (double)(left.register.double_0 * right.register.double_0); + product += (double)(left.register.double_1 * right.register.double_1); return (T)(object)product; } else @@ -4289,93 +4324,93 @@ namespace System.Numerics { if (Vector.IsHardwareAccelerated) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte* dataPtr = stackalloc Byte[Count]; + byte* dataPtr = stackalloc byte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((Byte)Math.Sqrt((Byte)(object)value[g])); + dataPtr[g] = unchecked((byte)Math.Sqrt((byte)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte* dataPtr = stackalloc SByte[Count]; + sbyte* dataPtr = stackalloc sbyte[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((SByte)Math.Sqrt((SByte)(object)value[g])); + dataPtr[g] = unchecked((sbyte)Math.Sqrt((sbyte)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16* dataPtr = stackalloc UInt16[Count]; + ushort* dataPtr = stackalloc ushort[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((UInt16)Math.Sqrt((UInt16)(object)value[g])); + dataPtr[g] = unchecked((ushort)Math.Sqrt((ushort)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16* dataPtr = stackalloc Int16[Count]; + short* dataPtr = stackalloc short[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((Int16)Math.Sqrt((Int16)(object)value[g])); + dataPtr[g] = unchecked((short)Math.Sqrt((short)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32* dataPtr = stackalloc UInt32[Count]; + uint* dataPtr = stackalloc uint[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((UInt32)Math.Sqrt((UInt32)(object)value[g])); + dataPtr[g] = unchecked((uint)Math.Sqrt((uint)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32* dataPtr = stackalloc Int32[Count]; + int* dataPtr = stackalloc int[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((Int32)Math.Sqrt((Int32)(object)value[g])); + dataPtr[g] = unchecked((int)Math.Sqrt((int)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64* dataPtr = stackalloc UInt64[Count]; + ulong* dataPtr = stackalloc ulong[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((UInt64)Math.Sqrt((UInt64)(object)value[g])); + dataPtr[g] = unchecked((ulong)Math.Sqrt((ulong)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64* dataPtr = stackalloc Int64[Count]; + long* dataPtr = stackalloc long[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((Int64)Math.Sqrt((Int64)(object)value[g])); + dataPtr[g] = unchecked((long)Math.Sqrt((long)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single* dataPtr = stackalloc Single[Count]; + float* dataPtr = stackalloc float[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((Single)Math.Sqrt((Single)(object)value[g])); + dataPtr[g] = unchecked((float)Math.Sqrt((float)(object)value[g])); } return new Vector<T>(dataPtr); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double* dataPtr = stackalloc Double[Count]; + double* dataPtr = stackalloc double[Count]; for (int g = 0; g < Count; g++) { - dataPtr[g] = unchecked((Double)Math.Sqrt((Double)(object)value[g])); + dataPtr[g] = unchecked((double)Math.Sqrt((double)(object)value[g])); } return new Vector<T>(dataPtr); } @@ -4386,110 +4421,110 @@ namespace System.Numerics } else { - if (typeof(T) == typeof(Byte)) - { - value.register.byte_0 = (Byte)Math.Sqrt(value.register.byte_0); - value.register.byte_1 = (Byte)Math.Sqrt(value.register.byte_1); - value.register.byte_2 = (Byte)Math.Sqrt(value.register.byte_2); - value.register.byte_3 = (Byte)Math.Sqrt(value.register.byte_3); - value.register.byte_4 = (Byte)Math.Sqrt(value.register.byte_4); - value.register.byte_5 = (Byte)Math.Sqrt(value.register.byte_5); - value.register.byte_6 = (Byte)Math.Sqrt(value.register.byte_6); - value.register.byte_7 = (Byte)Math.Sqrt(value.register.byte_7); - value.register.byte_8 = (Byte)Math.Sqrt(value.register.byte_8); - value.register.byte_9 = (Byte)Math.Sqrt(value.register.byte_9); - value.register.byte_10 = (Byte)Math.Sqrt(value.register.byte_10); - value.register.byte_11 = (Byte)Math.Sqrt(value.register.byte_11); - value.register.byte_12 = (Byte)Math.Sqrt(value.register.byte_12); - value.register.byte_13 = (Byte)Math.Sqrt(value.register.byte_13); - value.register.byte_14 = (Byte)Math.Sqrt(value.register.byte_14); - value.register.byte_15 = (Byte)Math.Sqrt(value.register.byte_15); + if (typeof(T) == typeof(byte)) + { + value.register.byte_0 = (byte)Math.Sqrt(value.register.byte_0); + value.register.byte_1 = (byte)Math.Sqrt(value.register.byte_1); + value.register.byte_2 = (byte)Math.Sqrt(value.register.byte_2); + value.register.byte_3 = (byte)Math.Sqrt(value.register.byte_3); + value.register.byte_4 = (byte)Math.Sqrt(value.register.byte_4); + value.register.byte_5 = (byte)Math.Sqrt(value.register.byte_5); + value.register.byte_6 = (byte)Math.Sqrt(value.register.byte_6); + value.register.byte_7 = (byte)Math.Sqrt(value.register.byte_7); + value.register.byte_8 = (byte)Math.Sqrt(value.register.byte_8); + value.register.byte_9 = (byte)Math.Sqrt(value.register.byte_9); + value.register.byte_10 = (byte)Math.Sqrt(value.register.byte_10); + value.register.byte_11 = (byte)Math.Sqrt(value.register.byte_11); + value.register.byte_12 = (byte)Math.Sqrt(value.register.byte_12); + value.register.byte_13 = (byte)Math.Sqrt(value.register.byte_13); + value.register.byte_14 = (byte)Math.Sqrt(value.register.byte_14); + value.register.byte_15 = (byte)Math.Sqrt(value.register.byte_15); return value; } - else if (typeof(T) == typeof(SByte)) - { - value.register.sbyte_0 = (SByte)Math.Sqrt(value.register.sbyte_0); - value.register.sbyte_1 = (SByte)Math.Sqrt(value.register.sbyte_1); - value.register.sbyte_2 = (SByte)Math.Sqrt(value.register.sbyte_2); - value.register.sbyte_3 = (SByte)Math.Sqrt(value.register.sbyte_3); - value.register.sbyte_4 = (SByte)Math.Sqrt(value.register.sbyte_4); - value.register.sbyte_5 = (SByte)Math.Sqrt(value.register.sbyte_5); - value.register.sbyte_6 = (SByte)Math.Sqrt(value.register.sbyte_6); - value.register.sbyte_7 = (SByte)Math.Sqrt(value.register.sbyte_7); - value.register.sbyte_8 = (SByte)Math.Sqrt(value.register.sbyte_8); - value.register.sbyte_9 = (SByte)Math.Sqrt(value.register.sbyte_9); - value.register.sbyte_10 = (SByte)Math.Sqrt(value.register.sbyte_10); - value.register.sbyte_11 = (SByte)Math.Sqrt(value.register.sbyte_11); - value.register.sbyte_12 = (SByte)Math.Sqrt(value.register.sbyte_12); - value.register.sbyte_13 = (SByte)Math.Sqrt(value.register.sbyte_13); - value.register.sbyte_14 = (SByte)Math.Sqrt(value.register.sbyte_14); - value.register.sbyte_15 = (SByte)Math.Sqrt(value.register.sbyte_15); + else if (typeof(T) == typeof(sbyte)) + { + value.register.sbyte_0 = (sbyte)Math.Sqrt(value.register.sbyte_0); + value.register.sbyte_1 = (sbyte)Math.Sqrt(value.register.sbyte_1); + value.register.sbyte_2 = (sbyte)Math.Sqrt(value.register.sbyte_2); + value.register.sbyte_3 = (sbyte)Math.Sqrt(value.register.sbyte_3); + value.register.sbyte_4 = (sbyte)Math.Sqrt(value.register.sbyte_4); + value.register.sbyte_5 = (sbyte)Math.Sqrt(value.register.sbyte_5); + value.register.sbyte_6 = (sbyte)Math.Sqrt(value.register.sbyte_6); + value.register.sbyte_7 = (sbyte)Math.Sqrt(value.register.sbyte_7); + value.register.sbyte_8 = (sbyte)Math.Sqrt(value.register.sbyte_8); + value.register.sbyte_9 = (sbyte)Math.Sqrt(value.register.sbyte_9); + value.register.sbyte_10 = (sbyte)Math.Sqrt(value.register.sbyte_10); + value.register.sbyte_11 = (sbyte)Math.Sqrt(value.register.sbyte_11); + value.register.sbyte_12 = (sbyte)Math.Sqrt(value.register.sbyte_12); + value.register.sbyte_13 = (sbyte)Math.Sqrt(value.register.sbyte_13); + value.register.sbyte_14 = (sbyte)Math.Sqrt(value.register.sbyte_14); + value.register.sbyte_15 = (sbyte)Math.Sqrt(value.register.sbyte_15); return value; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - value.register.uint16_0 = (UInt16)Math.Sqrt(value.register.uint16_0); - value.register.uint16_1 = (UInt16)Math.Sqrt(value.register.uint16_1); - value.register.uint16_2 = (UInt16)Math.Sqrt(value.register.uint16_2); - value.register.uint16_3 = (UInt16)Math.Sqrt(value.register.uint16_3); - value.register.uint16_4 = (UInt16)Math.Sqrt(value.register.uint16_4); - value.register.uint16_5 = (UInt16)Math.Sqrt(value.register.uint16_5); - value.register.uint16_6 = (UInt16)Math.Sqrt(value.register.uint16_6); - value.register.uint16_7 = (UInt16)Math.Sqrt(value.register.uint16_7); + value.register.uint16_0 = (ushort)Math.Sqrt(value.register.uint16_0); + value.register.uint16_1 = (ushort)Math.Sqrt(value.register.uint16_1); + value.register.uint16_2 = (ushort)Math.Sqrt(value.register.uint16_2); + value.register.uint16_3 = (ushort)Math.Sqrt(value.register.uint16_3); + value.register.uint16_4 = (ushort)Math.Sqrt(value.register.uint16_4); + value.register.uint16_5 = (ushort)Math.Sqrt(value.register.uint16_5); + value.register.uint16_6 = (ushort)Math.Sqrt(value.register.uint16_6); + value.register.uint16_7 = (ushort)Math.Sqrt(value.register.uint16_7); return value; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - value.register.int16_0 = (Int16)Math.Sqrt(value.register.int16_0); - value.register.int16_1 = (Int16)Math.Sqrt(value.register.int16_1); - value.register.int16_2 = (Int16)Math.Sqrt(value.register.int16_2); - value.register.int16_3 = (Int16)Math.Sqrt(value.register.int16_3); - value.register.int16_4 = (Int16)Math.Sqrt(value.register.int16_4); - value.register.int16_5 = (Int16)Math.Sqrt(value.register.int16_5); - value.register.int16_6 = (Int16)Math.Sqrt(value.register.int16_6); - value.register.int16_7 = (Int16)Math.Sqrt(value.register.int16_7); + value.register.int16_0 = (short)Math.Sqrt(value.register.int16_0); + value.register.int16_1 = (short)Math.Sqrt(value.register.int16_1); + value.register.int16_2 = (short)Math.Sqrt(value.register.int16_2); + value.register.int16_3 = (short)Math.Sqrt(value.register.int16_3); + value.register.int16_4 = (short)Math.Sqrt(value.register.int16_4); + value.register.int16_5 = (short)Math.Sqrt(value.register.int16_5); + value.register.int16_6 = (short)Math.Sqrt(value.register.int16_6); + value.register.int16_7 = (short)Math.Sqrt(value.register.int16_7); return value; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - value.register.uint32_0 = (UInt32)Math.Sqrt(value.register.uint32_0); - value.register.uint32_1 = (UInt32)Math.Sqrt(value.register.uint32_1); - value.register.uint32_2 = (UInt32)Math.Sqrt(value.register.uint32_2); - value.register.uint32_3 = (UInt32)Math.Sqrt(value.register.uint32_3); + value.register.uint32_0 = (uint)Math.Sqrt(value.register.uint32_0); + value.register.uint32_1 = (uint)Math.Sqrt(value.register.uint32_1); + value.register.uint32_2 = (uint)Math.Sqrt(value.register.uint32_2); + value.register.uint32_3 = (uint)Math.Sqrt(value.register.uint32_3); return value; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - value.register.int32_0 = (Int32)Math.Sqrt(value.register.int32_0); - value.register.int32_1 = (Int32)Math.Sqrt(value.register.int32_1); - value.register.int32_2 = (Int32)Math.Sqrt(value.register.int32_2); - value.register.int32_3 = (Int32)Math.Sqrt(value.register.int32_3); + value.register.int32_0 = (int)Math.Sqrt(value.register.int32_0); + value.register.int32_1 = (int)Math.Sqrt(value.register.int32_1); + value.register.int32_2 = (int)Math.Sqrt(value.register.int32_2); + value.register.int32_3 = (int)Math.Sqrt(value.register.int32_3); return value; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - value.register.uint64_0 = (UInt64)Math.Sqrt(value.register.uint64_0); - value.register.uint64_1 = (UInt64)Math.Sqrt(value.register.uint64_1); + value.register.uint64_0 = (ulong)Math.Sqrt(value.register.uint64_0); + value.register.uint64_1 = (ulong)Math.Sqrt(value.register.uint64_1); return value; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - value.register.int64_0 = (Int64)Math.Sqrt(value.register.int64_0); - value.register.int64_1 = (Int64)Math.Sqrt(value.register.int64_1); + value.register.int64_0 = (long)Math.Sqrt(value.register.int64_0); + value.register.int64_1 = (long)Math.Sqrt(value.register.int64_1); return value; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - value.register.single_0 = (Single)Math.Sqrt(value.register.single_0); - value.register.single_1 = (Single)Math.Sqrt(value.register.single_1); - value.register.single_2 = (Single)Math.Sqrt(value.register.single_2); - value.register.single_3 = (Single)Math.Sqrt(value.register.single_3); + value.register.single_0 = (float)Math.Sqrt(value.register.single_0); + value.register.single_1 = (float)Math.Sqrt(value.register.single_1); + value.register.single_2 = (float)Math.Sqrt(value.register.single_2); + value.register.single_3 = (float)Math.Sqrt(value.register.single_3); return value; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - value.register.double_0 = (Double)Math.Sqrt(value.register.double_0); - value.register.double_1 = (Double)Math.Sqrt(value.register.double_1); + value.register.double_0 = (double)Math.Sqrt(value.register.double_0); + value.register.double_1 = (double)Math.Sqrt(value.register.double_1); return value; } else @@ -4504,45 +4539,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static bool ScalarEquals(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (Byte)(object)left == (Byte)(object)right; + return (byte)(object)left == (byte)(object)right; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (SByte)(object)left == (SByte)(object)right; + return (sbyte)(object)left == (sbyte)(object)right; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (UInt16)(object)left == (UInt16)(object)right; + return (ushort)(object)left == (ushort)(object)right; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (Int16)(object)left == (Int16)(object)right; + return (short)(object)left == (short)(object)right; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (UInt32)(object)left == (UInt32)(object)right; + return (uint)(object)left == (uint)(object)right; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (Int32)(object)left == (Int32)(object)right; + return (int)(object)left == (int)(object)right; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (UInt64)(object)left == (UInt64)(object)right; + return (ulong)(object)left == (ulong)(object)right; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (Int64)(object)left == (Int64)(object)right; + return (long)(object)left == (long)(object)right; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (Single)(object)left == (Single)(object)right; + return (float)(object)left == (float)(object)right; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (Double)(object)left == (Double)(object)right; + return (double)(object)left == (double)(object)right; } else { @@ -4553,45 +4588,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static bool ScalarLessThan(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (Byte)(object)left < (Byte)(object)right; + return (byte)(object)left < (byte)(object)right; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (SByte)(object)left < (SByte)(object)right; + return (sbyte)(object)left < (sbyte)(object)right; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (UInt16)(object)left < (UInt16)(object)right; + return (ushort)(object)left < (ushort)(object)right; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (Int16)(object)left < (Int16)(object)right; + return (short)(object)left < (short)(object)right; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (UInt32)(object)left < (UInt32)(object)right; + return (uint)(object)left < (uint)(object)right; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (Int32)(object)left < (Int32)(object)right; + return (int)(object)left < (int)(object)right; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (UInt64)(object)left < (UInt64)(object)right; + return (ulong)(object)left < (ulong)(object)right; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (Int64)(object)left < (Int64)(object)right; + return (long)(object)left < (long)(object)right; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (Single)(object)left < (Single)(object)right; + return (float)(object)left < (float)(object)right; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (Double)(object)left < (Double)(object)right; + return (double)(object)left < (double)(object)right; } else { @@ -4602,45 +4637,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static bool ScalarGreaterThan(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (Byte)(object)left > (Byte)(object)right; + return (byte)(object)left > (byte)(object)right; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (SByte)(object)left > (SByte)(object)right; + return (sbyte)(object)left > (sbyte)(object)right; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (UInt16)(object)left > (UInt16)(object)right; + return (ushort)(object)left > (ushort)(object)right; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (Int16)(object)left > (Int16)(object)right; + return (short)(object)left > (short)(object)right; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (UInt32)(object)left > (UInt32)(object)right; + return (uint)(object)left > (uint)(object)right; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (Int32)(object)left > (Int32)(object)right; + return (int)(object)left > (int)(object)right; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (UInt64)(object)left > (UInt64)(object)right; + return (ulong)(object)left > (ulong)(object)right; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (Int64)(object)left > (Int64)(object)right; + return (long)(object)left > (long)(object)right; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (Single)(object)left > (Single)(object)right; + return (float)(object)left > (float)(object)right; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (Double)(object)left > (Double)(object)right; + return (double)(object)left > (double)(object)right; } else { @@ -4651,45 +4686,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static T ScalarAdd(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (T)(object)unchecked((Byte)((Byte)(object)left + (Byte)(object)right)); + return (T)(object)unchecked((byte)((byte)(object)left + (byte)(object)right)); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (T)(object)unchecked((SByte)((SByte)(object)left + (SByte)(object)right)); + return (T)(object)unchecked((sbyte)((sbyte)(object)left + (sbyte)(object)right)); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (T)(object)unchecked((UInt16)((UInt16)(object)left + (UInt16)(object)right)); + return (T)(object)unchecked((ushort)((ushort)(object)left + (ushort)(object)right)); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (T)(object)unchecked((Int16)((Int16)(object)left + (Int16)(object)right)); + return (T)(object)unchecked((short)((short)(object)left + (short)(object)right)); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (T)(object)unchecked((UInt32)((UInt32)(object)left + (UInt32)(object)right)); + return (T)(object)unchecked((uint)((uint)(object)left + (uint)(object)right)); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (T)(object)unchecked((Int32)((Int32)(object)left + (Int32)(object)right)); + return (T)(object)unchecked((int)((int)(object)left + (int)(object)right)); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (T)(object)unchecked((UInt64)((UInt64)(object)left + (UInt64)(object)right)); + return (T)(object)unchecked((ulong)((ulong)(object)left + (ulong)(object)right)); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (T)(object)unchecked((Int64)((Int64)(object)left + (Int64)(object)right)); + return (T)(object)unchecked((long)((long)(object)left + (long)(object)right)); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (T)(object)unchecked((Single)((Single)(object)left + (Single)(object)right)); + return (T)(object)unchecked((float)((float)(object)left + (float)(object)right)); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (T)(object)unchecked((Double)((Double)(object)left + (Double)(object)right)); + return (T)(object)unchecked((double)((double)(object)left + (double)(object)right)); } else { @@ -4700,45 +4735,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static T ScalarSubtract(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (T)(object)(Byte)((Byte)(object)left - (Byte)(object)right); + return (T)(object)(byte)((byte)(object)left - (byte)(object)right); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (T)(object)(SByte)((SByte)(object)left - (SByte)(object)right); + return (T)(object)(sbyte)((sbyte)(object)left - (sbyte)(object)right); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (T)(object)(UInt16)((UInt16)(object)left - (UInt16)(object)right); + return (T)(object)(ushort)((ushort)(object)left - (ushort)(object)right); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (T)(object)(Int16)((Int16)(object)left - (Int16)(object)right); + return (T)(object)(short)((short)(object)left - (short)(object)right); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (T)(object)(UInt32)((UInt32)(object)left - (UInt32)(object)right); + return (T)(object)(uint)((uint)(object)left - (uint)(object)right); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (T)(object)(Int32)((Int32)(object)left - (Int32)(object)right); + return (T)(object)(int)((int)(object)left - (int)(object)right); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (T)(object)(UInt64)((UInt64)(object)left - (UInt64)(object)right); + return (T)(object)(ulong)((ulong)(object)left - (ulong)(object)right); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (T)(object)(Int64)((Int64)(object)left - (Int64)(object)right); + return (T)(object)(long)((long)(object)left - (long)(object)right); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (T)(object)(Single)((Single)(object)left - (Single)(object)right); + return (T)(object)(float)((float)(object)left - (float)(object)right); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (T)(object)(Double)((Double)(object)left - (Double)(object)right); + return (T)(object)(double)((double)(object)left - (double)(object)right); } else { @@ -4749,45 +4784,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static T ScalarMultiply(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (T)(object)unchecked((Byte)((Byte)(object)left * (Byte)(object)right)); + return (T)(object)unchecked((byte)((byte)(object)left * (byte)(object)right)); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (T)(object)unchecked((SByte)((SByte)(object)left * (SByte)(object)right)); + return (T)(object)unchecked((sbyte)((sbyte)(object)left * (sbyte)(object)right)); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (T)(object)unchecked((UInt16)((UInt16)(object)left * (UInt16)(object)right)); + return (T)(object)unchecked((ushort)((ushort)(object)left * (ushort)(object)right)); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (T)(object)unchecked((Int16)((Int16)(object)left * (Int16)(object)right)); + return (T)(object)unchecked((short)((short)(object)left * (short)(object)right)); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (T)(object)unchecked((UInt32)((UInt32)(object)left * (UInt32)(object)right)); + return (T)(object)unchecked((uint)((uint)(object)left * (uint)(object)right)); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (T)(object)unchecked((Int32)((Int32)(object)left * (Int32)(object)right)); + return (T)(object)unchecked((int)((int)(object)left * (int)(object)right)); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (T)(object)unchecked((UInt64)((UInt64)(object)left * (UInt64)(object)right)); + return (T)(object)unchecked((ulong)((ulong)(object)left * (ulong)(object)right)); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (T)(object)unchecked((Int64)((Int64)(object)left * (Int64)(object)right)); + return (T)(object)unchecked((long)((long)(object)left * (long)(object)right)); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (T)(object)unchecked((Single)((Single)(object)left * (Single)(object)right)); + return (T)(object)unchecked((float)((float)(object)left * (float)(object)right)); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (T)(object)unchecked((Double)((Double)(object)left * (Double)(object)right)); + return (T)(object)unchecked((double)((double)(object)left * (double)(object)right)); } else { @@ -4798,45 +4833,45 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static T ScalarDivide(T left, T right) { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - return (T)(object)(Byte)((Byte)(object)left / (Byte)(object)right); + return (T)(object)(byte)((byte)(object)left / (byte)(object)right); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - return (T)(object)(SByte)((SByte)(object)left / (SByte)(object)right); + return (T)(object)(sbyte)((sbyte)(object)left / (sbyte)(object)right); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - return (T)(object)(UInt16)((UInt16)(object)left / (UInt16)(object)right); + return (T)(object)(ushort)((ushort)(object)left / (ushort)(object)right); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - return (T)(object)(Int16)((Int16)(object)left / (Int16)(object)right); + return (T)(object)(short)((short)(object)left / (short)(object)right); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - return (T)(object)(UInt32)((UInt32)(object)left / (UInt32)(object)right); + return (T)(object)(uint)((uint)(object)left / (uint)(object)right); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - return (T)(object)(Int32)((Int32)(object)left / (Int32)(object)right); + return (T)(object)(int)((int)(object)left / (int)(object)right); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - return (T)(object)(UInt64)((UInt64)(object)left / (UInt64)(object)right); + return (T)(object)(ulong)((ulong)(object)left / (ulong)(object)right); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - return (T)(object)(Int64)((Int64)(object)left / (Int64)(object)right); + return (T)(object)(long)((long)(object)left / (long)(object)right); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - return (T)(object)(Single)((Single)(object)left / (Single)(object)right); + return (T)(object)(float)((float)(object)left / (float)(object)right); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - return (T)(object)(Double)((Double)(object)left / (Double)(object)right); + return (T)(object)(double)((double)(object)left / (double)(object)right); } else { @@ -4847,54 +4882,54 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static T GetOneValue() { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { - Byte value = 1; + byte value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { - SByte value = 1; + sbyte value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { - UInt16 value = 1; + ushort value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { - Int16 value = 1; + short value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { - UInt32 value = 1; + uint value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { - Int32 value = 1; + int value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { - UInt64 value = 1; + ulong value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { - Int64 value = 1; + long value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { - Single value = 1; + float value = 1; return (T)(object)value; } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { - Double value = 1; + double value = 1; return (T)(object)value; } else @@ -4906,43 +4941,43 @@ namespace System.Numerics [MethodImplAttribute(MethodImplOptions.AggressiveInlining)] private static T GetAllBitsSetValue() { - if (typeof(T) == typeof(Byte)) + if (typeof(T) == typeof(byte)) { return (T)(object)ConstantHelper.GetByteWithAllBitsSet(); } - else if (typeof(T) == typeof(SByte)) + else if (typeof(T) == typeof(sbyte)) { return (T)(object)ConstantHelper.GetSByteWithAllBitsSet(); } - else if (typeof(T) == typeof(UInt16)) + else if (typeof(T) == typeof(ushort)) { return (T)(object)ConstantHelper.GetUInt16WithAllBitsSet(); } - else if (typeof(T) == typeof(Int16)) + else if (typeof(T) == typeof(short)) { return (T)(object)ConstantHelper.GetInt16WithAllBitsSet(); } - else if (typeof(T) == typeof(UInt32)) + else if (typeof(T) == typeof(uint)) { return (T)(object)ConstantHelper.GetUInt32WithAllBitsSet(); } - else if (typeof(T) == typeof(Int32)) + else if (typeof(T) == typeof(int)) { return (T)(object)ConstantHelper.GetInt32WithAllBitsSet(); } - else if (typeof(T) == typeof(UInt64)) + else if (typeof(T) == typeof(ulong)) { return (T)(object)ConstantHelper.GetUInt64WithAllBitsSet(); } - else if (typeof(T) == typeof(Int64)) + else if (typeof(T) == typeof(long)) { return (T)(object)ConstantHelper.GetInt64WithAllBitsSet(); } - else if (typeof(T) == typeof(Single)) + else if (typeof(T) == typeof(float)) { return (T)(object)ConstantHelper.GetSingleWithAllBitsSet(); } - else if (typeof(T) == typeof(Double)) + else if (typeof(T) == typeof(double)) { return (T)(object)ConstantHelper.GetDoubleWithAllBitsSet(); } @@ -4966,22 +5001,22 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe void Widen(Vector<Byte> source, out Vector<UInt16> low, out Vector<UInt16> high) + public static unsafe void Widen(Vector<byte> source, out Vector<ushort> low, out Vector<ushort> high) { - int elements = Vector<Byte>.Count; - UInt16* lowPtr = stackalloc UInt16[elements / 2]; + int elements = Vector<byte>.Count; + ushort* lowPtr = stackalloc ushort[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (UInt16)source[i]; + lowPtr[i] = (ushort)source[i]; } - UInt16* highPtr = stackalloc UInt16[elements / 2]; + ushort* highPtr = stackalloc ushort[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (UInt16)source[i + (elements / 2)]; + highPtr[i] = (ushort)source[i + (elements / 2)]; } - low = new Vector<UInt16>(lowPtr); - high = new Vector<UInt16>(highPtr); + low = new Vector<ushort>(lowPtr); + high = new Vector<ushort>(highPtr); } /// <summary> @@ -4992,22 +5027,22 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe void Widen(Vector<UInt16> source, out Vector<UInt32> low, out Vector<UInt32> high) + public static unsafe void Widen(Vector<ushort> source, out Vector<uint> low, out Vector<uint> high) { - int elements = Vector<UInt16>.Count; - UInt32* lowPtr = stackalloc UInt32[elements / 2]; + int elements = Vector<ushort>.Count; + uint* lowPtr = stackalloc uint[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (UInt32)source[i]; + lowPtr[i] = (uint)source[i]; } - UInt32* highPtr = stackalloc UInt32[elements / 2]; + uint* highPtr = stackalloc uint[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (UInt32)source[i + (elements / 2)]; + highPtr[i] = (uint)source[i + (elements / 2)]; } - low = new Vector<UInt32>(lowPtr); - high = new Vector<UInt32>(highPtr); + low = new Vector<uint>(lowPtr); + high = new Vector<uint>(highPtr); } /// <summary> @@ -5018,22 +5053,22 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe void Widen(Vector<UInt32> source, out Vector<UInt64> low, out Vector<UInt64> high) + public static unsafe void Widen(Vector<uint> source, out Vector<ulong> low, out Vector<ulong> high) { - int elements = Vector<UInt32>.Count; - UInt64* lowPtr = stackalloc UInt64[elements / 2]; + int elements = Vector<uint>.Count; + ulong* lowPtr = stackalloc ulong[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (UInt64)source[i]; + lowPtr[i] = (ulong)source[i]; } - UInt64* highPtr = stackalloc UInt64[elements / 2]; + ulong* highPtr = stackalloc ulong[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (UInt64)source[i + (elements / 2)]; + highPtr[i] = (ulong)source[i + (elements / 2)]; } - low = new Vector<UInt64>(lowPtr); - high = new Vector<UInt64>(highPtr); + low = new Vector<ulong>(lowPtr); + high = new Vector<ulong>(highPtr); } /// <summary> @@ -5044,22 +5079,22 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe void Widen(Vector<SByte> source, out Vector<Int16> low, out Vector<Int16> high) + public static unsafe void Widen(Vector<sbyte> source, out Vector<short> low, out Vector<short> high) { - int elements = Vector<SByte>.Count; - Int16* lowPtr = stackalloc Int16[elements / 2]; + int elements = Vector<sbyte>.Count; + short* lowPtr = stackalloc short[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (Int16)source[i]; + lowPtr[i] = (short)source[i]; } - Int16* highPtr = stackalloc Int16[elements / 2]; + short* highPtr = stackalloc short[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (Int16)source[i + (elements / 2)]; + highPtr[i] = (short)source[i + (elements / 2)]; } - low = new Vector<Int16>(lowPtr); - high = new Vector<Int16>(highPtr); + low = new Vector<short>(lowPtr); + high = new Vector<short>(highPtr); } /// <summary> @@ -5069,22 +5104,22 @@ namespace System.Numerics /// <param name="high">The second output vector, whose elements will contain the widened elements from higher indices in the source vector.</param> /// </summary> [Intrinsic] - public static unsafe void Widen(Vector<Int16> source, out Vector<Int32> low, out Vector<Int32> high) + public static unsafe void Widen(Vector<short> source, out Vector<int> low, out Vector<int> high) { - int elements = Vector<Int16>.Count; - Int32* lowPtr = stackalloc Int32[elements / 2]; + int elements = Vector<short>.Count; + int* lowPtr = stackalloc int[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (Int32)source[i]; + lowPtr[i] = (int)source[i]; } - Int32* highPtr = stackalloc Int32[elements / 2]; + int* highPtr = stackalloc int[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (Int32)source[i + (elements / 2)]; + highPtr[i] = (int)source[i + (elements / 2)]; } - low = new Vector<Int32>(lowPtr); - high = new Vector<Int32>(highPtr); + low = new Vector<int>(lowPtr); + high = new Vector<int>(highPtr); } /// <summary> @@ -5094,22 +5129,22 @@ namespace System.Numerics /// <param name="high">The second output vector, whose elements will contain the widened elements from higher indices in the source vector.</param> /// </summary> [Intrinsic] - public static unsafe void Widen(Vector<Int32> source, out Vector<Int64> low, out Vector<Int64> high) + public static unsafe void Widen(Vector<int> source, out Vector<long> low, out Vector<long> high) { - int elements = Vector<Int32>.Count; - Int64* lowPtr = stackalloc Int64[elements / 2]; + int elements = Vector<int>.Count; + long* lowPtr = stackalloc long[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (Int64)source[i]; + lowPtr[i] = (long)source[i]; } - Int64* highPtr = stackalloc Int64[elements / 2]; + long* highPtr = stackalloc long[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (Int64)source[i + (elements / 2)]; + highPtr[i] = (long)source[i + (elements / 2)]; } - low = new Vector<Int64>(lowPtr); - high = new Vector<Int64>(highPtr); + low = new Vector<long>(lowPtr); + high = new Vector<long>(highPtr); } /// <summary> @@ -5119,22 +5154,22 @@ namespace System.Numerics /// <param name="high">The second output vector, whose elements will contain the widened elements from higher indices in the source vector.</param> /// </summary> [Intrinsic] - public static unsafe void Widen(Vector<Single> source, out Vector<Double> low, out Vector<Double> high) + public static unsafe void Widen(Vector<float> source, out Vector<double> low, out Vector<double> high) { - int elements = Vector<Single>.Count; - Double* lowPtr = stackalloc Double[elements / 2]; + int elements = Vector<float>.Count; + double* lowPtr = stackalloc double[elements / 2]; for (int i = 0; i < elements / 2; i++) { - lowPtr[i] = (Double)source[i]; + lowPtr[i] = (double)source[i]; } - Double* highPtr = stackalloc Double[elements / 2]; + double* highPtr = stackalloc double[elements / 2]; for (int i = 0; i < elements / 2; i++) { - highPtr[i] = (Double)source[i + (elements / 2)]; + highPtr[i] = (double)source[i + (elements / 2)]; } - low = new Vector<Double>(lowPtr); - high = new Vector<Double>(highPtr); + low = new Vector<double>(lowPtr); + high = new Vector<double>(highPtr); } /// <summary> @@ -5145,23 +5180,23 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<Byte> Narrow(Vector<UInt16> low, Vector<UInt16> high) + public static unsafe Vector<byte> Narrow(Vector<ushort> low, Vector<ushort> high) { - unchecked - { - int elements = Vector<Byte>.Count; - Byte* retPtr = stackalloc Byte[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (Byte)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (Byte)high[i]; - } + unchecked + { + int elements = Vector<byte>.Count; + byte* retPtr = stackalloc byte[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (byte)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (byte)high[i]; + } - return new Vector<Byte>(retPtr); - } + return new Vector<byte>(retPtr); + } } /// <summary> @@ -5172,23 +5207,23 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<UInt16> Narrow(Vector<UInt32> low, Vector<UInt32> high) + public static unsafe Vector<ushort> Narrow(Vector<uint> low, Vector<uint> high) { - unchecked - { - int elements = Vector<UInt16>.Count; - UInt16* retPtr = stackalloc UInt16[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (UInt16)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (UInt16)high[i]; - } + unchecked + { + int elements = Vector<ushort>.Count; + ushort* retPtr = stackalloc ushort[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (ushort)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (ushort)high[i]; + } - return new Vector<UInt16>(retPtr); - } + return new Vector<ushort>(retPtr); + } } /// <summary> @@ -5199,23 +5234,23 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<UInt32> Narrow(Vector<UInt64> low, Vector<UInt64> high) + public static unsafe Vector<uint> Narrow(Vector<ulong> low, Vector<ulong> high) { - unchecked - { - int elements = Vector<UInt32>.Count; - UInt32* retPtr = stackalloc UInt32[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (UInt32)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (UInt32)high[i]; - } + unchecked + { + int elements = Vector<uint>.Count; + uint* retPtr = stackalloc uint[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (uint)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (uint)high[i]; + } - return new Vector<UInt32>(retPtr); - } + return new Vector<uint>(retPtr); + } } /// <summary> @@ -5226,23 +5261,23 @@ namespace System.Numerics /// </summary> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<SByte> Narrow(Vector<Int16> low, Vector<Int16> high) + public static unsafe Vector<sbyte> Narrow(Vector<short> low, Vector<short> high) { - unchecked - { - int elements = Vector<SByte>.Count; - SByte* retPtr = stackalloc SByte[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (SByte)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (SByte)high[i]; - } + unchecked + { + int elements = Vector<sbyte>.Count; + sbyte* retPtr = stackalloc sbyte[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (sbyte)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (sbyte)high[i]; + } - return new Vector<SByte>(retPtr); - } + return new Vector<sbyte>(retPtr); + } } /// <summary> @@ -5252,23 +5287,23 @@ namespace System.Numerics /// <returns>A Vector{Int16} containing elements narrowed from the source vectors.</returns> /// </summary> [Intrinsic] - public static unsafe Vector<Int16> Narrow(Vector<Int32> low, Vector<Int32> high) + public static unsafe Vector<short> Narrow(Vector<int> low, Vector<int> high) { - unchecked - { - int elements = Vector<Int16>.Count; - Int16* retPtr = stackalloc Int16[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (Int16)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (Int16)high[i]; - } + unchecked + { + int elements = Vector<short>.Count; + short* retPtr = stackalloc short[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (short)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (short)high[i]; + } - return new Vector<Int16>(retPtr); - } + return new Vector<short>(retPtr); + } } /// <summary> @@ -5278,23 +5313,23 @@ namespace System.Numerics /// <returns>A Vector{Int32} containing elements narrowed from the source vectors.</returns> /// </summary> [Intrinsic] - public static unsafe Vector<Int32> Narrow(Vector<Int64> low, Vector<Int64> high) + public static unsafe Vector<int> Narrow(Vector<long> low, Vector<long> high) { - unchecked - { - int elements = Vector<Int32>.Count; - Int32* retPtr = stackalloc Int32[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (Int32)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (Int32)high[i]; - } + unchecked + { + int elements = Vector<int>.Count; + int* retPtr = stackalloc int[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (int)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (int)high[i]; + } - return new Vector<Int32>(retPtr); - } + return new Vector<int>(retPtr); + } } /// <summary> @@ -5304,23 +5339,23 @@ namespace System.Numerics /// <returns>A Vector{Single} containing elements narrowed from the source vectors.</returns> /// </summary> [Intrinsic] - public static unsafe Vector<Single> Narrow(Vector<Double> low, Vector<Double> high) + public static unsafe Vector<float> Narrow(Vector<double> low, Vector<double> high) { - unchecked - { - int elements = Vector<Single>.Count; - Single* retPtr = stackalloc Single[elements]; - for (int i = 0; i < elements / 2; i++) - { - retPtr[i] = (Single)low[i]; - } - for (int i = 0; i < elements / 2; i++) - { - retPtr[i + (elements / 2)] = (Single)high[i]; - } + unchecked + { + int elements = Vector<float>.Count; + float* retPtr = stackalloc float[elements]; + for (int i = 0; i < elements / 2; i++) + { + retPtr[i] = (float)low[i]; + } + for (int i = 0; i < elements / 2; i++) + { + retPtr[i + (elements / 2)] = (float)high[i]; + } - return new Vector<Single>(retPtr); - } + return new Vector<float>(retPtr); + } } #endregion Widen/Narrow @@ -5332,19 +5367,19 @@ namespace System.Numerics /// <param name="value">The source vector.</param> /// <returns>The converted vector.</returns> [Intrinsic] - public static unsafe Vector<Single> ConvertToSingle(Vector<Int32> value) + public static unsafe Vector<float> ConvertToSingle(Vector<int> value) { - unchecked - { - int elements = Vector<Single>.Count; - Single* retPtr = stackalloc Single[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (Single)value[i]; - } + unchecked + { + int elements = Vector<float>.Count; + float* retPtr = stackalloc float[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (float)value[i]; + } - return new Vector<Single>(retPtr); - } + return new Vector<float>(retPtr); + } } /// <summary> @@ -5354,19 +5389,19 @@ namespace System.Numerics /// <returns>The converted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<Single> ConvertToSingle(Vector<UInt32> value) + public static unsafe Vector<float> ConvertToSingle(Vector<uint> value) { - unchecked - { - int elements = Vector<Single>.Count; - Single* retPtr = stackalloc Single[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (Single)value[i]; - } + unchecked + { + int elements = Vector<float>.Count; + float* retPtr = stackalloc float[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (float)value[i]; + } - return new Vector<Single>(retPtr); - } + return new Vector<float>(retPtr); + } } /// <summary> @@ -5375,19 +5410,19 @@ namespace System.Numerics /// <param name="value">The source vector.</param> /// <returns>The converted vector.</returns> [Intrinsic] - public static unsafe Vector<Double> ConvertToDouble(Vector<Int64> value) + public static unsafe Vector<double> ConvertToDouble(Vector<long> value) { - unchecked - { - int elements = Vector<Double>.Count; - Double* retPtr = stackalloc Double[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (Double)value[i]; - } + unchecked + { + int elements = Vector<double>.Count; + double* retPtr = stackalloc double[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (double)value[i]; + } - return new Vector<Double>(retPtr); - } + return new Vector<double>(retPtr); + } } /// <summary> @@ -5397,19 +5432,19 @@ namespace System.Numerics /// <returns>The converted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<Double> ConvertToDouble(Vector<UInt64> value) + public static unsafe Vector<double> ConvertToDouble(Vector<ulong> value) { - unchecked - { - int elements = Vector<Double>.Count; - Double* retPtr = stackalloc Double[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (Double)value[i]; - } + unchecked + { + int elements = Vector<double>.Count; + double* retPtr = stackalloc double[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (double)value[i]; + } - return new Vector<Double>(retPtr); - } + return new Vector<double>(retPtr); + } } /// <summary> @@ -5418,19 +5453,19 @@ namespace System.Numerics /// <param name="value">The source vector.</param> /// <returns>The converted vector.</returns> [Intrinsic] - public static unsafe Vector<Int32> ConvertToInt32(Vector<Single> value) + public static unsafe Vector<int> ConvertToInt32(Vector<float> value) { - unchecked - { - int elements = Vector<Int32>.Count; - Int32* retPtr = stackalloc Int32[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (Int32)value[i]; - } + unchecked + { + int elements = Vector<int>.Count; + int* retPtr = stackalloc int[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (int)value[i]; + } - return new Vector<Int32>(retPtr); - } + return new Vector<int>(retPtr); + } } /// <summary> @@ -5440,19 +5475,19 @@ namespace System.Numerics /// <returns>The converted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<UInt32> ConvertToUInt32(Vector<Single> value) + public static unsafe Vector<uint> ConvertToUInt32(Vector<float> value) { - unchecked - { - int elements = Vector<UInt32>.Count; - UInt32* retPtr = stackalloc UInt32[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (UInt32)value[i]; - } + unchecked + { + int elements = Vector<uint>.Count; + uint* retPtr = stackalloc uint[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (uint)value[i]; + } - return new Vector<UInt32>(retPtr); - } + return new Vector<uint>(retPtr); + } } /// <summary> @@ -5461,19 +5496,19 @@ namespace System.Numerics /// <param name="value">The source vector.</param> /// <returns>The converted vector.</returns> [Intrinsic] - public static unsafe Vector<Int64> ConvertToInt64(Vector<Double> value) + public static unsafe Vector<long> ConvertToInt64(Vector<double> value) { - unchecked - { - int elements = Vector<Int64>.Count; - Int64* retPtr = stackalloc Int64[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (Int64)value[i]; - } + unchecked + { + int elements = Vector<long>.Count; + long* retPtr = stackalloc long[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (long)value[i]; + } - return new Vector<Int64>(retPtr); - } + return new Vector<long>(retPtr); + } } /// <summary> @@ -5483,19 +5518,19 @@ namespace System.Numerics /// <returns>The converted vector.</returns> [CLSCompliant(false)] [Intrinsic] - public static unsafe Vector<UInt64> ConvertToUInt64(Vector<Double> value) + public static unsafe Vector<ulong> ConvertToUInt64(Vector<double> value) { - unchecked - { - int elements = Vector<UInt64>.Count; - UInt64* retPtr = stackalloc UInt64[elements]; - for (int i = 0; i < elements; i++) - { - retPtr[i] = (UInt64)value[i]; - } + unchecked + { + int elements = Vector<ulong>.Count; + ulong* retPtr = stackalloc ulong[elements]; + for (int i = 0; i < elements; i++) + { + retPtr[i] = (ulong)value[i]; + } - return new Vector<UInt64>(retPtr); - } + return new Vector<ulong>(retPtr); + } } #endregion Same-Size Conversion |