Initial snark14m import
[snark14.git] / src / snark / foru_ftmap.cpp
1 /*
2  ***********************************************************
3  $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4  $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_ftmap.cpp $
5  $LastChangedRevision: 85 $
6  $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
7  $Author: agulati $
8  ***********************************************************
9
10  PURPOSE: REARRANGE THE PROJECTION DATA (IN VFROM) IN A FORM
11  SUITABLE FOR FAST FOURIER ROUTINES (I.E. CHANGE THE
12  PHASE SO THAT THE ORIGIN IS THE 1ST ELEMENT IN ARRAY )
13  AND PUT INTO THE ARRAY VTO
14  */
15 // bug79 - problem with fourier algorithm
16 #include <cstdio>
17
18 #include "blkdta.h"
19 #include "fourie.h"
20
21 #include "foru.h"
22
23 void foru_class::ftmap(REAL* vfrom, REAL* vto, BOOLEAN revers)
24 {
25         int i;
26         INTEGER kh;
27         INTEGER kl;
28
29         Fourie.midr = Fourie.nsize1 / 2 - 1;
30
31         // IF REVERS IS TRUE ,REVERSE THE  PROJECTION DATA (SEE ALSO PRJTRN)
32
33         if (revers)
34         {
35
36                 kh = Fourie.midr + 1;
37
38                 for (i = 0; i <= kh; i++)
39                 {     // bug79 - swr 2/11/05
40                         vto[i] = vfrom[Fourie.midr + i];
41                 }
42
43                 kl = Fourie.midr + 2;
44
45                 for (i = kl; i < Fourie.nsize1; i++)
46                 {
47                         vto[i] = vfrom[i - Fourie.midr - 2];     // bug79 - swr 2/11/05
48                 }
49         }
50         else
51         {
52                 for (i = 0; i <= Fourie.midr; i++)
53                 {
54                         vto[i] = vfrom[Fourie.midr - i];
55                 }
56
57                 kl = Fourie.midr + 1;
58
59                 for (i = kl; i < Fourie.nsize1; i++)
60                 {
61                         vto[i] = vfrom[Fourie.nsize1 + Fourie.midr - i];
62                 }
63         }
64 }