if (sliceCode % 2)
   {
    exit( 0 );
   };

float sumR[size], sumI[size], difR[size], difI[size];

(void) dReadB( inUnit, rdata, wordLen*size );
(void) dReadB( inUnit, idata, wordLen*size );
(void) dReadB( inUnit, difR,  wordLen*size );
(void) dReadB( inUnit, difI,  wordLen*size );

(void) vvCopy( sumR, rdata, size );
(void) vvCopy( sumI, idata, size );

(void) vvAdd( sumR, difR, size );
(void) vvAdd( sumI, difI, size );
(void) vvSub( difR, rdata, size );
(void) vvSub( difI, idata, size );

(void) phase( difR, difI, size, 90, 0 );

(void) vNeg( sumR, size );
(void) vNeg( sumI, size );

(void) dWrite( outUnit, difR, wordLen*size );
(void) dWrite( outUnit, difI, wordLen*size );
(void) dWrite( outUnit, sumR, wordLen*size );
(void) dWrite( outUnit, sumI, wordLen*size );
