Quelle est la meilleure façon d'obtenir la distance entre 2 points avec DirectXMath

À l'aide de la nouvelle XMVECTOR et XMFLOAT3 classes quelle est la meilleure façon d'obtenir la distance entre 2 points? Je ne pouvais pas trouver une fonction qui n'en XMVector* famille de fonctions alors je suis venu avec les éléments suivants :

float distance(const XMFLOAT3& v1,const XMFLOAT3& v2)
{
    XMVECTOR vector1 = XMLoadFloat3(&v1);
    XMVECTOR vector2 = XMLoadFloat3(&v2);
    XMVECTOR vectorSub = XMVectorSubtract(vector1,vector2);
    XMVECTOR length = XMVector3Length(vectorSub);

    float distance = 0.0f;
    XMStoreFloat(&distance,length);
    return distance;
}

Ce que ce sera plus rapide que la normale Vector3 classe avec seulement 3 flotteurs pour x,y,z, puis en utilisant sqrt car il utilise intrinsèque des optimisations? À savoir :

float Distance(const Vector3& point1,const Vector3& point2)
{
    float distance = sqrt( (point1.x - point2.x) * (point1.x - point2.x) +
                            (point1.y - point2.y) * (point1.y - point2.y) +
                            (point1.z - point2.z) * (point1.z - point2.z) );
    return distance;
}