matrix-multiplikation mit veclib

  • matrix-multiplikation mit veclib

    moin!

    ich möchte ein matlab-programm in c umschreiben, um die geschwindigkeit zu steigern, und will dazu die veclib verwenden. die bietet ja so nette funktionen wie z.b. eine generelle matrix-matrix-multiplikation (vSgemul) aber wie man die verwendet, steht nirgends (oder ich hab's nicht gefunden).

    so geht's auf alle fälle nicht:

    Quellcode

    1. vector float test[4] = {(1.0, 2.0, 3.0, 4.0), (5.0, 6.0, 7.0, 8.0), (9.0, 10.0, 11.0, 12.0), (13.0, 14.0, 15.0, 16.0)};
    2. vector float bigi[4] = {(1.0, 0.0, 0.0, 0.0), (0.0, 1.0, 0.0, 0.0), (0.0, 0.0, 1.0, 0.0), (0.0, 0.0, 0.0, 1.0)};
    3. vector float res[4];
    4. vSgemul(4,4,4,test,'n',bigi,'n',res);


    da kommt eine 0-matrix raus...

    kennt sich hier jemand damit aus?

    grüsse
    confusion
    There will always be skeptics.
    There will always be disbelievers.
    And there will always be Apple to prove them wrong.
  • RE: matrix-multiplikation mit veclib

    ja schon, aber wie sieht das datenformat der matrizen aus? row major? column major? oder irgendwie interleaved? vector hat ja nur 4 elemente. dann kann man die matrix elemente doch ganz lustig verschieden anordnen...

    so oder so verstehe ich nicht, warum mein beispiel nicht richtig funktioniert. selbst mit einer permutation der einheitsmatrix müsste doch eine andere als die 0-matrix rauskommen...
    There will always be skeptics.
    There will always be disbelievers.
    And there will always be Apple to prove them wrong.