2010-07-26 20 views
5

Sto facendo uso di un processore basato su ARM Cortex-A8 e ho diversi punti in cui calcolo le operazioni inverse della matrice 3x3.È possibile l'inversione della matrice 3x3 utilizzando le istruzioni SIMD?

Come il processore Cortex-A8 ha un processore NEON SIMD Sono interessato a utilizzare questa co-processore per matrice 3x3 inversa, ho visto le implementazioni diverse 4x4 (Intel SSE e freevec) ma non dove ho visto una matrice 3x3 operazione inversa eseguita utilizzando le istruzioni SIMD. Il metodo utilizzato da freevec è quello di dividere la matrice 4x4 in 4, 2x2 matrici, quindi eseguire minuscole operazioni su ciascuna e ricombinare i risultati alla fine per ottenere l'inverso della matrice 4x4. Non vedo un'opportunità simile con le matrici 3x3.

Chiunque abbia un'idea di come eseguire l'inversione della matrice 3x3 utilizzando le istruzioni SIMD, sarà molto utile per me?

saluti Vikram

+3

Forse di interesse: "Non c'è quasi mai una buona ragione per invertire una matrice". http://www.johndcook.com/blog/2010/01/19/dont-invert-that-matrix/ – AakashM

+0

Prenderà seriamente il tuo commento e vedrò come posso eliminare l'inversione di matrice dal mio algoritmo. – HaggarTheHorrible

+3

@AakashM che l'articolo non è pertinente. L'articolo di John D. Cook sulle matrici riguarda le grandi matrici utilizzate nel calcolo scientifico. Questa domanda riguarda le piccole matrici, che sono comunemente usate in computer grafica e simulazione fisica. È molto utile (e abbastanza veloce) invertire le matrici piccole. – exDM69

risposta

5

È possibile espandere la matrice 3x3 a matrice 4x4 aggiungendo una quarta riga e colonna 4, essendo entrambi (0 0 0 1). Dopo l'inversione, la sottotitoli 3x3 in alto a sinistra avrà l'inversa richiesta.

+0

Questa è una buona idea. Proviamo, grazie – HaggarTheHorrible

1

È possibile vettorizzare la versione standard analitica per le matrici 3x3 descritte in wikipedia. Non dovrebbe essere difficile.

+0

In quella versione, si noti che le 3 differenze utilizzate nel determinante vengono riutilizzate anche nelle altre 9 parti. – phkahler

Problemi correlati