Aller au contenu

Mathc complexes/Fichiers h : wzb

Un livre de Wikilivres.

Bibliothèque

Installer ce fichier dans votre répertoire de travail.

wzb.h
/* ------------------------------------ */
/*  Save as :   wzb.h                   */
/* ------------------------------------ */
nb_Z conj_Z(nb_Z z)
{
nb_Z zt;

        zt.r =      z.r;
        zt.i =  (-1*z.i);

return (zt);
}
/* ------------------------------------ */
nb_Z sym_Z(nb_Z z)
{
nb_Z zt;

        zt.r =  (-1*z.r);
        zt.i =  (-1*z.i);

return (zt);
}
/* ------------------------------------ */
nb_Z add_Z(nb_Z z1, nb_Z z2)
{
nb_Z zt;

       zt.r = (z1.r+z2.r);
       zt.i = (z1.i+z2.i);

return (zt);
}
/* ------------------------------------ */
nb_Z sub_Z(nb_Z z1, nb_Z z2)
{
nb_Z zt;

        zt.r = (z1.r-z2.r);
        zt.i = (z1.i-z2.i);

return (zt);
}
/* ------------------------------------ */
nb_Z mul_Z(nb_Z z1, nb_Z z2)
{
nb_Z  zt;

        zt.r = (( z1.r*z2.r)-( z1.i*z2.i));
        zt.i = (( z1.i*z2.r)+( z1.r*z2.i));

return (zt);
}
/* ------------------------------------ */
nb_Z smul_Z(double s, nb_Z z)
{
nb_Z  zt;

         zt.r = (z.r*s);
         zt.i = (z.i*s);

return (zt);
}
/* ------------------------------------ */
double abs_P2_Z(nb_Z z)
{
nb_Z   zt;
nb_Z c_z;

     c_z = conj_Z(z);
      zt = mul_Z(z,c_z);

	return (zt.r);
}
/* ------------------------------------ */
nb_Z div_Z(nb_Z z1, nb_Z z2)
{
nb_Z         zt;
nb_Z     c_z2;

      c_z2 = conj_Z(z2);
          zt = mul_Z(z1,c_z2);

  if ( !((abs_P2_Z(z2))) )
    {
     printf("\n div_Z() error - 1/0");
     printf("\n Press return to continue");
     fflush(stdout);
     getchar();
     exit(EXIT_FAILURE);
    }

       zt.r = (zt.r* (1/(abs_P2_Z(z2))));
       zt.i = (zt.i* (1/(abs_P2_Z(z2))));

	return (zt);
}
/* ------------------------------------ */
nb_Z inv_Z(nb_Z z)
{
nb_Z       zt;
nb_Z     c_z;

     c_z =  conj_Z(z);

  if ( !(abs_P2_Z(z)) )
    {
     printf("\n div_Z() error - 1/0");
     printf("\n Press return to continue");
     fflush(stdout);
     getchar();
     exit(EXIT_FAILURE);
    }

       zt.r = (c_z.r* (1/(abs_P2_Z(z))));
       zt.i = (c_z.i* (1/(abs_P2_Z(z))));

	return (zt);
}
/* ------------------------------------ */
/* ------------------------------------ */

Ici se trouve l'ensemble des fonctions de bases pour travailler sur les complexes.