Как соединить эти 2 кода? - PullRequest
0 голосов
/ 17 января 2019

Я новичок в C ++ и мне нужна небольшая помощь. Я должен подготовить решение, которое умножает 2 полинома двумя способами. Я уже сделал самый простой способ, умножив его на собственный метод, и нашел несколько примеров FFT, созданных с использованием C ++. Все эти примеры используют <complex>. Я надеюсь, что некоторые из вас могут помочь мне или даже посоветовать, как мне внедрить FFT в мой код?

Вот как я определяю свой полином

struct polynomial
{
  double a;
};

Это функция, которую я сделал, чтобы сделать 2 полинома одинаковой степени, заполнив один из них нулями. Есть 2 способа, которые я попытался решить, но ни один не работает правильно.

void fill_zeros(polynomial *A, polynomial *B, int d1, int d2)
{
if (d1> d2)
{
    polynomial *x = new polynomial[d1];
    for (int i = 0; i <= d1; i++)
    {
        if (i > d2)
            x[i].a = 0.0;
        else
            x[i].a = B[i].a;
    }
    delete[] B;

    polynomial *B= new polynomial[d1];

    for (int i = 0; i <= d1; i++)
        B[i].a = x[i].a;
    delete[] x;
}
else if (d2> d1)
{
    polynomial *A= new polynomial[d2];
    for (int i = d1; i <= d2; i++)
    {
        A[i].a = 0.0;
    }
}
else
{
    cout << "\nPolynomials are equal" << endl;
}
             }

Я нашел 2 кода, которые можно использовать для реализации БПФ, но оба включают, и я не знаю, как я могу использовать его в своем коде.

https://ideone.com/tbHUN7

https://ideone.com/MLkvHK

...