Tout d'abord, assurez-vous que dist2 peut être incorporé (il n'est pas clair à partir de votre post si c'est le cas), après avoir défini dans un fichier d'en-tête si nécessaire (généralement vous aurez besoin de faire cela - mais si votre compilateur génère du code au moment de la liaison, alors ce n'est pas nécessairement le cas).
En supposant architecture x86, assurez-vous de laisser votre compilateur pour générer le code à l'aide d'instructions SSE2 (un exemple d'un jeu d'instructions SIMD) s'ils sont disponibles sur l'architecture cible. Pour donner le compilateur la meilleure opportunité pour optimiser ces, vous pouvez essayer de votre lot sqr l'ensemble des opérations (instructions SSE2 devrait être en mesure de faire jusqu'à 4 float ou 2 double d'opérations à la fois selon l'instruction.. mais bien sûr, il ne peut le faire que si vous avez les entrées à plus d'une opération sur le prêt). Je ne voudrais pas être trop optimiste quant à la capacité du compilateur de comprendre qu'il peut leur lot.. mais vous pouvez au moins configurer votre code de façon à ce qu'il serait possible, en théorie.
Si vous n'êtes toujours pas satisfait de la vitesse et vous n'avez pas confiance en votre compilateur est de le faire le mieux, vous devriez regarder dans l'aide du compilateur intrinsèques qui va vous permettre d'écrire le potentiel parallèle des instructions explicitement.. ou sinon, vous pouvez aller de l'avant et d'écriture spécifique à l'architecture de l'assemblée de code pour profiter de SSE2 ou selon les instructions sont les plus appropriées à votre architecture. (Avertissement: si vous à la main le code de l'assemblée, soit de prendre des précautions supplémentaires qu'il obtient toujours inline, ou de le mettre dans une grande opération de traitement)
Pour aller encore plus loin, (et comme glowcoder l'a déjà mentionné), vous pouvez effectuer ces opérations sur un GPU. Pour votre cas particulier, gardez à l'esprit que le GPU est souvent ne prennent pas en charge en virgule flottante double précision.. si si c'est un bon ajustement pour ce que vous faites, vous allez obtenir des ordres de grandeur de meilleures performances de cette façon. Google pour le GPGPU, ou autre chose et de voir ce qui est le mieux pour vous.