Как умножить 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
Упс... я забыл выделить память для этих массивов: rInF=(fftw_complex*)fftw_malloc(sizeof(fftw_complex)*m_image-›width()*m_image-›height());   -  person Emil Smęt    schedule 11.02.2013