2013-03-19 2 views
5

Il existe certaines routines BLAS qui prennent en paramètre l'incrément d'un vecteur X, à savoir incX. Je ne peux pas trouver ce qu'est l'incrément et comment cela affecte le résultat du calcul.incx dans les routines BLAS

Quelqu'un peut-il fournir un exemple ou un autre type d'information?

Mise à jour:

J'ai trouvé ici les meilleures infos: Intel HPC mkl manual

+0

Le manuel HPC at-il répondu à votre question? Ensuite, veuillez supprimer la mise à jour de la question et l'afficher comme réponse et l'accepter. – Bakuriu

+0

Je pense que le lien est incorrect - je pense que vous cherchez le manuel MK ** L **, mais il renvoie à la référence Intel ** ** **; mais je peux me tromper. – Luciano

Répondre

9

Ceci est assez simple en fait.

Let Prenons l'exemple de axpy(n,a,*x,incx,*y,incy) qui Calculons: y = ax + y

Si, par exemple, vous devez calculer:

y[0] = ax[0] + y[0]; y[1] = ax[2] + y[1]; y[2] = ax[4] + y[2] 

Ensuite, votre appel est: axpy(3,a,x,2,y,1)

Mais généralement, pour base opérations, il vous suffit de spécifier incx = incy = 1

+0

Par curiosité, y a-t-il des opérations dans l'algèbre matricielle qui ont besoin de ce type d'indexation 'modulo'? Ou est-ce seulement utilisé pour manipuler des données? Je suis venu à ce post car je me demandais pourquoi les routines L1 ont besoin de ce paramètre 'inc', car les vecteurs 1-D devraient avoir' inc' = 1. – Luciano

+1

Je pense que c'est seulement pour manipuler des données ... Si vous avez une 3D vecteur de la forme (x0, y0, z0, x1, y1, z1, ...) et vous devez ajouter un vecteur 1D aux valeurs X par exemple, ce paramètre sera utile ('incx = 3',' incy = 1'). – Michael

+0

Merci, c'est probablement très utile, en fait. Vous pouvez l'utiliser lorsque vous travaillez avec des nombres complexes ou [quaternions] (https://en.wikipedia.org/wiki/Quaternion). Par exemple 'Re (z) + 23', (où' z' est un complexe 'x + iy'), qui rejette la partie imaginaire. – Luciano

Questions connexes