Как да умножите 2 масива fftw_complex

Заглавие

Здравейте, опитвам се да умножа два масива от типове fftw_complex, как да го направя?

Ето кода:

fftw_complex *rInF, *gInF, *bInF;
fftw_complex *rOutF, *gOutF, *bOutF;
for(int i=0;i<m_image->width()*m_image->height();i++)
{


    //realis
    rInF[i][0] = rIn[i][0]*rInMask[i][0] - rIn[i][1]*rInMask[i][1];
    gInF[i][0] = gIn[i][0]*gInMask[i][0] - gIn[i][1]*gInMask[i][1];
    bInF[i][0] = bIn[i][0]*bInMask[i][0] - bIn[i][1]*bInMask[i][1];
    //imaginalis
    rInF[i][1] = rIn[i][1]*rInMask[i][0] + rIn[i][0]*rInMask[i][1];
    gInF[i][1] = gIn[i][1]*gInMask[i][0] + gIn[i][0]*gInMask[i][1];
    bInF[i][1] = bIn[i][1]*bInMask[i][0] + bIn[i][0]*bInMask[i][1];
}

Имам 2 масива за всеки RGB канал (от две изображения, които ни дават - 2R, 2G, 2B).

rIn,gIn,bIn и rInMask,gInMask,bInMask са ОК. Искам да умножа две комплексни числа и да присвоя стойността на умножението на rInF, gInF и bInF.

По-късно ще направя обратен fftw и ще направя конволюция в честотната област. (‹ - това не е важно).

Приложението просто се изключва и не ми дава никакви грешки.


person Emil Smęt    schedule 10.02.2013    source източник
comment
Има готов метод, наречен multiply за типа, който споменавате, който взема два масива и връща нов. Какво още ви трябва?   -  person mmgp    schedule 11.02.2013
comment
Трябва да предложите на разработчиците на fftw_complex да заменят operator*.   -  person Alex Chamberlain    schedule 11.02.2013
comment
Какво трябва да включа, за да го умножа и как да го използвам? Не мога да използвам #include ‹complex.h›   -  person Emil Smęt    schedule 11.02.2013
comment
Ups... забравих да отделя памет за тези масиви: rInF=(fftw_complex*)fftw_malloc(sizeof(fftw_complex)*m_image-›width()*m_image-›height());   -  person Emil Smęt    schedule 11.02.2013