using System.Threading.Tasks;
public static void Main()
float[] array1 = new float[] { 1.1F, 2.0F, 3.0F, 4.0F, 5.0F };
float[] array2 = new float[] { 6.1F, 7.0F, 8.0F };
float[,] final_array = new float[array1.Length, array2.Length];
int vectorCount = array2.Length / 4;
Vector4[] array2Vectors = new Vector4[vectorCount];
Parallel.For(0, vectorCount, i =>
array2Vectors[i] = new Vector4(array2[offset], array2[offset + 1], array2[offset + 2], array2[offset + 3]);
Parallel.For(0, array1.Length, i =>
Vector4 v1 = new Vector4(array1[i], array1[i], array1[i], array1[i]);
for (int j = 0; j < array2Vectors.Length; j++)
Vector4 result = Vector4.Abs(Vector4.Subtract(v1, array2Vectors[j]));
final_array[i, offset] = result.X;
final_array[i, offset + 1] = result.Y;
final_array[i, offset + 2] = result.Z;
final_array[i, offset + 3] = result.W;
for (int j = vectorCount * 4; j < array2.Length; j++)
final_array[i,j] = Math.Abs(array1[i] - array2[j]);
for (int i = 0; i < array1.Length; i++)
for (int j = 0; j < array2.Length; j++)
Console.WriteLine(final_array[i,j]);