Initial snark14m import
[snark14.git] / src / snark / art.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/art.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 XALG1_H
12 #define XALG1_H      
13
14 #include "alg.h"
15
16 class artin_class
17
18   public:
19   INTEGER kount;
20   INTEGER p;
21   INTEGER npin;    // projection curently in delta buffer
22         
23   REAL* totalRays;      //Ran, bug 266
24
25   BOOLEAN art2f;
26   BOOLEAN art3f;
27   BOOLEAN art4f;
28   BOOLEAN tolerf;
29   BOOLEAN rconsf;
30   BOOLEAN nomlf;
31   BOOLEAN bartf;
32   BOOLEAN bayef;
33   BOOLEAN noisef;
34   BOOLEAN crf;
35
36   REAL toler;
37   REAL relax;
38   REAL thrlo;
39   REAL thrup;
40   REAL halfwy;
41   REAL thtol;
42   REAL snr;
43   REAL snr2;
44   REAL cr;
45   REAL ct;
46 };
47
48 class art_class: public alg_class
49 {
50 private:
51   artin_class ArtIn;
52   //FileUser3_class Xalg1User3; //Ran, bug 266
53
54   REAL clip(REAL temp, REAL thrlo, REAL thrup, REAL relax);
55
56   REAL rset(
57     REAL* recon, 
58     INTEGER iter,
59     INTEGER np,
60     INTEGER nr,
61     INTEGER i,
62     REAL raysum, 
63     INTEGER* list,
64     REAL* weight,
65     BOOLEAN *flag
66   );
67
68   REAL tset(REAL* recon, INTEGER iter, INTEGER np, INTEGER nr,INTEGER i, REAL raysum, INTEGER* list, REAL* weight, BOOLEAN* flag);
69
70   REAL crset(REAL* recon, INTEGER iter, INTEGER np, INTEGER nr, INTEGER i, REAL raysum, INTEGER* list, REAL* weight, BOOLEAN* flag);
71
72   void readin(REAL* recon, INTEGER* list, REAL* weight, BOOLEAN* flag);
73
74   void bkproj( REAL* recon, REAL diff, REAL abdiff, REAL* ibase, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER numb, REAL snorm);
75
76   void artbck(REAL* pict, REAL amt, INTEGER* list,REAL* weight,INTEGER numb,REAL thrlo,REAL thrup,REAL relax,BOOLEAN bartf,REAL halfwy,REAL thtol, BOOLEAN art2f);
77
78 public:
79   INTEGER Init();
80   BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
81   INTEGER Reset();
82 };
83
84 #endif