Initial snark14m import
[snark14.git] / src / snark / foru.h
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.h $
5  $LastChangedRevision: 85 $
6  $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
7  $Author: agulati $
8  ***********************************************************
9  */
10
11 #ifndef FORU_H
12 #define FORU_H
13
14 #include "alg.h"
15
16 class foru_class: public alg_class
17 {
18 private:
19         void frinit();
20         void forwrd();
21         void bckwrd(REAL* recon);
22         void prjtrn(INTEGER np, REAL* vector, REAL* phi, REAL* dphi);
23         void intrpl(REAL ang1, REAL ang2, REAL dang1, REAL dang2, REAL* nold,
24                         REAL* new1);
25         void frfilt(REAL* vector, INTEGER size1, INTEGER nfiltr, REAL cutoff,
26                         REAL phi);
27         void error(INTEGER ktype);
28         void ftmap(REAL* vfrom, REAL* vto, BOOLEAN revers);
29         void fft(REAL* x, INTEGER* n, INTEGER invdir, REAL fact);
30         void ftfill(REAL* recon, REAL* g, INTEGER maxg1);
31         void unif(INTEGER icase, REAL ang1, REAL ang2, REAL* nold, REAL* new1);
32         void uint1(INTEGER icase, INTEGER ix, INTEGER iy, REAL ang1, REAL ang2,
33                         REAL* pj1, REAL* pj2);
34
35         void vcase1(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
36         void vcase2(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
37         void vcase3(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
38         void vcase4(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
39         void vc56(INTEGER icase, REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
40
41         void vint14(
42         REAL* xx,
43         REAL* yy,
44         REAL xg,
45         REAL yg,
46         REAL* pj1,
47         REAL* pj2,
48         INTEGER indmin,
49         INTEGER indmax,
50         REAL* gr, // changed to pass address. Lajos, Feb 10, 2005
51                         REAL* gi // changed to pass address. Lajos, Feb 10, 2005
52                         );
53
54         void store(INTEGER ix, INTEGER iy, REAL gr, REAL gi);
55
56 public:
57         BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
58
59 };
60
61 #endif // FORU