Initial snark14m import
[snark14.git] / src / snark / transm.cpp
1 /*
2  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
3  *                                                                           *
4  *                              S N A R K   1 4                              *
5  *                                                                           *
6  *                     A PICTURE RECONSTRUCTION PROGRAM                      *
7  *                                                                           *
8  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
9
10  transm.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
11
12  SUBROUTINE CALLED BY RTFORT & NOT USEFUL INDEPENDENTLY.
13  APPLIES TRANSFORM SYMMETRY RELATIONS
14  J1:  INDEX OF REAL PART OF ( I, K ) COEFFICIENT
15  J2:  INDEX OF REAL PART OF ( M-I, N-K )   "
16 */
17
18 #include <cstdio>
19
20
21 #include "blkdta.h"
22
23
24 #include "transm.h"
25
26 void transm(REAL* x, INTEGER j1, INTEGER j2, REAL sn, REAL cn)        
27 {
28   REAL aa;
29   REAL ab;
30   REAL ba;
31   REAL bb;
32   REAL real;
33   REAL amag;
34
35   aa = x[j1] + x[j2];
36   ab = x[j1] - x[j2];
37   ba = x[j1 + 1] + x[j2 + 1];
38   bb = x[j1 + 1] - x[j2 + 1];
39   real = cn * ba + sn * ab;
40   amag = sn * ba - cn * ab;
41   x[j1] = (aa + real) * (REAL) 0.5;
42   x[j2] = (aa - real) * (REAL) 0.5;
43   x[j1 + 1] = (amag + bb) * (REAL) 0.5;
44   x[j2 + 1] = (amag - bb) * (REAL) 0.5;
45 }