[Benchmark]
public float AverageLengthBetweenPointsZipLinq()
{
return V1
.Zip(V2, Vector3.Distance)
.Average();
}
[Benchmark]
public float AverageLengthBetweenPointsZipSelectLinq()
{
return V1
.Zip(V2)
.Select(tupel => Vector3.Distance(tupel.First, tupel.Second))
.Average();
}
[Benchmark]
public float AverageLengthBetweenPointsIterative()
{
float sum = 0f;
for (int i = 0; i < V1.Length; i++)
{
sum += Vector3.Distance(V1[i], V2[i]);
}
return sum / V1.Length;
}
[Benchmark]
public float AverageLengthBetweenPointsZipLinq()
{
return V1
.Zip(V2, Vector3.Distance)
.Average();
}
[Benchmark]
public float AverageLengthBetweenPointsZipSelectLinq()
{
return V1
.Zip(V2)
.Select(tupel => Vector3.Distance(tupel.First, tupel.Second))
.Average();
}
[Benchmark]
public float AverageLengthBetweenPointsIterative()
{
float sum = 0f;
for (int i = 0; i < V1.Length; i++)
{
sum += Vector3.Distance(V1[i], V2[i]);
}
return sum / V1.Length;
}