#ifndef POLYNOME_H_INCLUDED
#define POLYNOME_H_INCLUDED
#include "complexe.h"

typedef struct poly_mono
{
    int degre;
    complexe coeff;
}poly_mono;

typedef struct poly_dev
{
    poly_mono monome;
    struct poly_dev* next;
    struct poly_dev* prev;
}poly_dev;

typedef struct poly_facto
{
    complexe racine;
    int degre;
    struct poly_facto* next;
    struct poly_facto* prev;
}poly_facto;

typedef struct polynome
{
    poly_dev* forme_dev;
    poly_facto* forme_facto;

}polynome;

void Menu(polynome*, polynome*);

polynome* polynome_creer ();

polynome* polynome_saisir(polynome*);

polynome* polynome_addition_soustraction (polynome*, polynome*, int);

polynome* polynome_multiplication (polynome*, polynome*);

polynome* polynome_conjugaison (polynome*);

polynome* polynome_derivation(polynome*);

polynome* polynome_integration(polynome*);

void polynome_comparaison (polynome*, polynome*);

polynome* polynome_partie_reelle(polynome*);

polynome* polynome_partie_imaginr(polynome*);

complexe polynome_eval (polynome*);

polynome* polynome_division_euclidienne (polynome*, polynome*, polynome**);

polynome* polynome_PGCD(polynome*, polynome*);

void polynome_afficher(polynome*);

#endif // POLYNOME_H_INCLUDED
