Comment Calculer le Vecteur Produit scalaire à l'Aide de l'ESS Intrinsèque des Fonctions en C

Je suis en train de multiplier deux vecteurs ensemble où chaque élément d'un vecteur est multiplié par l'élément dans le même index à l'autre vecteur. Je veux la somme de tous les éléments du vecteur résultant pour obtenir un numéro. Par exemple, le calcul devrait ressembler à ceci pour les vecteurs {1,2,3,4} et {5,6,7,8}:

1*5+2*6+3*7+4*8

Essentiellement, je suis prenant le produit scalaire de deux vecteurs. Je sais qu'il y est une ESS commande pour le faire, mais la commande n'a pas une fonction intrinsèque associée. À ce stade, je ne veux pas écrire assembly en ligne dans mon code en C, donc je veux utiliser uniquement les fonctions intrinsèques. Cela semble être une commune de calcul, donc je suis surpris par moi-même que je ne pouvais pas trouver la réponse sur Google.

Remarque: je suis d'optimisation pour une micro-architecture qui prend en charge jusqu'à SSE 4.2.

Merci pour votre aide.

OriginalL'auteur Sam | 2010-11-08