#include "stdio.h"
#include "stdlib.h"
#include "math.h"
struct c_comp{
double rmz;
double imz;
} c_comp;
int c_comp_product( a1, a2, c)
struct c_comp * a1,* a2,* c;
{
double p, q, s;
if ( a1 == NULL || a2 == NULL || c == NULL)
{
printf ( "(c_comp_product)The c_comp pointer is NULL!\n " ) ; return ( 0 ) ;
}
p = a1-> rmz* a2-> rmz;
q = a1-> imz* a2-> imz;
s = ( a1-> rmz + a1-> imz) * ( a2-> rmz + a2-> imz) ;
c-> rmz = p - q;
c-> imz = s - p - q;
return ( 1 ) ;
}
I2luY2x1ZGUgInN0ZGlvLmgiCiNpbmNsdWRlICJzdGRsaWIuaCIKI2luY2x1ZGUgIm1hdGguaCIKc3RydWN0IGNfY29tcHsKICAgICAgICBkb3VibGUgcm16OwogICAgICAgIGRvdWJsZSBpbXo7Cn1jX2NvbXA7CmludCBjX2NvbXBfcHJvZHVjdChhMSxhMixjKQpzdHJ1Y3QgY19jb21wICphMSwqYTIsKmM7CnsKICAgICAgICBkb3VibGUgcCxxLHM7CiAgICAgICAgaWYoYTEgPT0gTlVMTCB8fCBhMiA9PSBOVUxMIHx8IGMgPT0gTlVMTCkKICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmludGYoIihjX2NvbXBfcHJvZHVjdClUaGUgY19jb21wIHBvaW50ZXIgaXMgTlVMTCFcbiIpOwogICAgICAgICAgICAgICAgcmV0dXJuKDApOwogICAgICAgIH0KICAgICAgICBwID0gYTEtPnJteiphMi0+cm16OwogICAgICAgIHEgPSBhMS0+aW16KmEyLT5pbXo7CiAgICAgICAgcyA9IChhMS0+cm16ICsgYTEtPmlteikqKGEyLT5ybXogKyBhMi0+aW16KTsKICAgICAgICBjLT5ybXogPSBwIC0gcTsKICAgICAgICBjLT5pbXogPSBzIC0gcCAtIHE7CiAgICAgICAgcmV0dXJuKDEpOwp9ICAgCg==