Mathc initiation/Fichiers h : wzb
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.