Generated on Mon Jul 6 18:09:01 2009 for Gecode by doxygen 1.5.9

radiotherapy.cpp

Go to the documentation of this file.
00001 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
00002 /*
00003  *  Main authors:
00004  *     Guido Tack <tack@gecode.org>
00005  *
00006  *  Contributing authors:
00007  *     Mikael Lagerkvist <lagerkvist@gecode.org>
00008  *
00009  *  Copyright:
00010  *     Guido Tack, 2009
00011  *     Mikael Lagerkvist, 2009
00012  *
00013  *  Last modified:
00014  *     $Date: 2009-05-14 00:24:31 +0200 (Thu, 14 May 2009) $ by $Author: tack $
00015  *     $Revision: 9095 $
00016  *
00017  *  This file is part of Gecode, the generic constraint
00018  *  development environment:
00019  *     http://www.gecode.org
00020  *
00021  *  Permission is hereby granted, free of charge, to any person obtaining
00022  *  a copy of this software and associated documentation files (the
00023  *  "Software"), to deal in the Software without restriction, including
00024  *  without limitation the rights to use, copy, modify, merge, publish,
00025  *  distribute, sublicense, and/or sell copies of the Software, and to
00026  *  permit persons to whom the Software is furnished to do so, subject to
00027  *  the following conditions:
00028  *
00029  *  The above copyright notice and this permission notice shall be
00030  *  included in all copies or substantial portions of the Software.
00031  *
00032  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
00033  *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00034  *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
00035  *  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
00036  *  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
00037  *  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
00038  *  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00039  *
00040  */
00041 
00042 #include <gecode/driver.hh>
00043 #include <gecode/int.hh>
00044 #include <gecode/minimodel.hh>
00045 
00046 using namespace Gecode;
00047 
00049 class RadiotherapyData {
00051   int incr_sum(int row) {
00052     int sum = intensity[row*n];
00053     for (int i=1; i<n; i++)
00054       sum += std::max(intensity[row*n+i]-intensity[row*n+i-1],0);
00055     return sum;
00056   }
00057 public:
00058   const int  m; 
00059   const int  n; 
00060   const int* intensity; 
00061 
00062   int btMin;   
00063   int btMax;   
00064   int intsSum; 
00065 
00067   RadiotherapyData(int m0, int n0, const int* intensity0)
00068   : m(m0), n(n0), intensity(intensity0) {
00069     btMax = 0;
00070     intsSum = 0;
00071     for (int i=0; i<m*n; i++) {
00072       btMax = std::max(btMax, intensity[i]);
00073       intsSum += intensity[i];
00074     }
00075 
00076     btMin = 0;
00077     for (int i=0; i<m; i++)
00078       btMin = std::max(btMin, incr_sum(i));
00079   }
00080 };
00081 
00082 namespace {
00083   extern RadiotherapyData rds[];
00084   extern const unsigned int rds_n;
00085 }
00086 
00101 class Radiotherapy : public MinimizeScript {
00102 private:
00104   const RadiotherapyData rd;
00105   
00107   IntVar beamtime;
00109   IntVar K;
00111   IntVarArray N;
00113   IntVarArray q;
00114 
00116   IntVar _cost;
00117 
00118 public:
00120   Radiotherapy(const SizeOptions& opt)
00121   : rd(rds[opt.size()]) {
00122 
00123     // Initialize variables
00124     beamtime = IntVar(*this, rd.btMin, rd.intsSum);
00125     K        = IntVar(*this, 0, rd.m*rd.n);
00126     N        = IntVarArray(*this, rd.btMax, 0, rd.m*rd.n);
00127     q        = IntVarArray(*this, rd.m*rd.n*rd.btMax, 0, rd.m*rd.n);
00128 
00129     IntArgs coeffs(rd.btMax);
00130     for (int i=0; i<rd.btMax; i++)
00131       coeffs[i] = i+1;
00132     linear(*this, coeffs, N, IRT_EQ, beamtime);
00133     linear(*this, N, IRT_EQ, K);
00134     
00135     for (int i=0; i<rd.m; i++) {
00136       for (int j=0; j<rd.n; j++) {
00137         IntVarArgs qs(rd.btMax);
00138         for (int b=0; b<rd.btMax; b++)
00139           qs[b] = q[i*rd.n*rd.btMax+j*rd.btMax+b];
00140         linear(*this, coeffs, qs, IRT_EQ, rd.intensity[i*rd.n+j], ICL_DOM);
00141       }
00142     }
00143     
00144     for (int i=0; i<rd.m; i++) {
00145       for (int b=0; b<rd.btMax; b++) {
00146         IntVarArgs qs(rd.n);
00147         for (int j=0; j<rd.n; j++)
00148           qs[j] = q[i*rd.n*rd.btMax+j*rd.btMax+b];
00149         incr_sum(N[b], qs, rd.m*rd.n);
00150       }
00151     }
00152 
00153     _cost = IntVar(*this, 0, (rd.m*rd.n+1)*(rd.intsSum+1));
00154     post(*this, _cost == beamtime*(rd.m*rd.n+1)+K);
00155 
00156     // First branch over beamtime and N
00157     IntVarArgs ba(1); ba[0] = beamtime;
00158     branch(*this, ba, INT_VAR_NONE, INT_VAL_MIN);
00159     branch(*this, N, INT_VAR_NONE, INT_VAL_SPLIT_MIN);
00160 
00161     // Then perform a nested search over q
00162     NestedSearch::post(*this);
00163 
00164   }
00165 
00167   void incr_sum(IntVar& x, IntVarArgs& y, int mn) {
00168     IntVarArray s(*this, y.size()-1, 0, mn);
00169     IntVarArgs t(y.size());
00170     t[0] = y[0];
00171     for (int i=1; i<y.size(); i++) {
00172       post(*this, s[i-1] >= y[i]-y[i-1]);
00173       t[i] = s[i-1];
00174     }
00175     linear(*this, t, IRT_LQ, x);
00176   }
00177 
00179   Radiotherapy(bool share, Radiotherapy& s)
00180   : MinimizeScript(share,s), rd(s.rd) {
00181     beamtime.update(*this, share, s.beamtime);
00182     N.update(*this, share, s.N);
00183     K.update(*this, share, s.K);
00184     _cost.update(*this, share, s._cost);      
00185     q.update(*this, share, s.q);
00186   }
00187 
00189   virtual Space*
00190   copy(bool share) {
00191     return new Radiotherapy(share,*this);
00192   }
00193 
00195   virtual IntVar
00196   cost(void) const { return _cost; }
00197   
00199   virtual void
00200   print(std::ostream& os) const {
00201     os << std::endl 
00202        << "B / K = " << beamtime << " / " << K << ",\nN = " << N << std::endl;
00203   }
00204 
00206   class NestedSearch : public Branching {
00207   private:
00209     bool done;
00211     struct Idx { 
00212       int idx;    
00213       int weight; 
00214 
00215       bool operator<(const Idx& rhs) const { return weight > rhs.weight; }
00216     };
00218     SharedArray<Idx> index;
00220     class Description : public BranchingDesc {
00221     public:
00223       bool fail;
00225       Description(const Branching& b, bool fail0)
00226       : BranchingDesc(b,1), fail(fail0) {}
00228       virtual size_t size(void) const {
00229         return sizeof(Description);
00230       }
00231     };
00233     NestedSearch(Space& home) : Branching(home), done(false) {
00234       Radiotherapy& rt = static_cast<Radiotherapy&>(home);
00235       // Set up ordering of rows.  As a heuristic, pre-order the rows
00236       // with the potentially cheapest ones first.
00237       index.init(rt.rd.m+1);
00238       for (int i = rt.rd.m; i--; ) {
00239         index[i].idx    = i;
00240         index[i].weight = 0;
00241         for (int j = rt.rd.n; j--; )
00242           index[i].weight += rt.rd.intensity[i*rt.rd.n + j] == 0;
00243       }
00244       Support::quicksort(&(index[0]), rt.rd.m);
00245       for (int i = rt.rd.m; i--; )
00246         index[i].weight = 0;
00247       index[rt.rd.m].idx = 10;
00248       // A shared object must be disposed properly
00249       home.notice(*this, AP_DISPOSE);
00250     }
00252     NestedSearch(Space& home, bool share, NestedSearch& b)
00253       : Branching(home, share, b), done(b.done) {
00254       index.update(home, share, b.index);
00255     }
00256   public:
00257     virtual bool status(const Space&) const {
00258       return !done;
00259     }
00260 
00261     IntVarArgs getRow(Radiotherapy* row, int i) {
00262       IntVarArgs ri(row->rd.n*row->rd.btMax);
00263       for (int j=0; j<row->rd.n; j++) {
00264         for (int b=0; b<row->rd.btMax; b++) {
00265           ri[j*row->rd.btMax+b] = 
00266             row->q[i*row->rd.n*row->rd.btMax+j*row->rd.btMax+b];
00267         }
00268       }
00269       return ri;
00270     }
00271 
00272     virtual BranchingDesc* description(Space& home) {
00273       done = true;
00274       Radiotherapy& rt = static_cast<Radiotherapy&>(home);
00275 
00276       std::cout << "*";
00277       
00278       // Perform nested search for each row
00279       bool fail = false;
00280       for (int i=0; i<rt.rd.m; i++) {
00281         // Create fresh clone for row i
00282         Radiotherapy* row = static_cast<Radiotherapy*>(rt.clone());
00283 
00284         // Branch over row i
00285         branch(*row, getRow(row, index[i].idx), 
00286                INT_VAR_NONE, INT_VAL_SPLIT_MIN);
00287         Search::Options o; o.clone = false;
00288         if ( Radiotherapy* newSol = dfs(row, o) ) {
00289           // Found a solution for row i, so try to find one for i+1
00290           delete newSol;
00291           std::cerr << index[i].idx;
00292         } else {
00293           // Found no solution for row i, so back to search the N variables
00294           fail = true;
00295           index[i].weight += 1;
00296           if (i && index[i] < index[i-1])
00297             std::swap(index[i], index[i-1]);
00298           break;
00299         }      
00300       }
00301 
00302       return new Description(*this, fail);
00303     }
00304     virtual ExecStatus commit(Space&, const BranchingDesc& d, unsigned int) {
00305       return static_cast<const Description&>(d).fail ? ES_FAILED : ES_OK;
00306     }
00308     virtual Actor* copy(Space& home, bool share) {
00309       return new (home) NestedSearch(home, share, *this);
00310     }
00312     static void post(Space& home) {
00313       (void) new (home) NestedSearch(home);
00314     }
00316     size_t dispose(Space& home) {
00317       home.ignore(*this,AP_DISPOSE);
00318       // Periodic scaling of weights
00319       if (!--index[index.size()-1].idx) {
00320         index[index.size()-1].idx = 10;
00321         for (int i = index.size()-1; i--; )
00322           index[i].weight *= 0.9;
00323       }
00324       (void) Branching::dispose(home);
00325       (void) index.~SharedArray<Idx>();
00326       return sizeof(*this);
00327     }
00328   };
00329 
00330 };
00331 
00335 int
00336 main(int argc, char* argv[]) {
00337   SizeOptions opt("Radiotherapy");
00338   opt.solutions(0);
00339   opt.size(0);
00340   opt.parse(argc,argv);
00341 
00342   if (opt.size() >= rds_n) {
00343     std::cerr << "Error: size must be between 0 and "
00344               << rds_n-1 << std::endl;
00345     return 1;
00346   }
00347 
00348   MinimizeScript::run<Radiotherapy,BAB,SizeOptions>(opt);
00349   return 0;
00350 }
00351 
00352 namespace {
00358   
00359   // Small instance
00360   static const int intensity0[] = {
00361     7,  2, 14,  8,  9,
00362     13,  4,  1,  2,  9,
00363     5, 12,  2, 11,  9,
00364     10,  2,  4,  9,  7,
00365     10,  2,  8, 11,  1
00366   };
00367   RadiotherapyData rd0(5,5,intensity0);
00368 
00369   // Larger instance
00370   static const int intensity1[] = {
00371     6, 10,  6,  8, 10,  0,  4, 10,  0,  6,  2,  8,  0,  2,  0 ,
00372     1,  8,  3,  1,  0,  8,  0,  3,  6, 10,  9,  8,  9,  6,  9 ,
00373     8,  5,  6,  7,  7,  0,  6,  8,  2,  7,  5,  2,  0,  9,  2 ,
00374     9,  2, 10,  5,  7,  1,  3,  7,  5,  1,  8,  2,  3, 10,  4 ,
00375     8,  7,  4,  1,  6,  3,  0,  1,  2,  6,  4,  4,  0,  5,  0 ,
00376     9,  0,  7,  4,  9,  7,  4,  1,  4,  1,  1,  9,  2,  9,  9 ,
00377     3,  6, 10,  0,  6,  6, 10, 10,  7,  0, 10,  2, 10,  2,  4 ,
00378     8,  9,  5,  2,  6,  1,  9,  0,  4,  2,  4,  1,  5,  1,  4 ,
00379     6, 10,  0,  0,  7,  0,  0,  5,  8,  5, 10,  3,  2,  2, 10 ,
00380     4,  3,  0,  6, 10,  7,  2,  7,  2,  9,  2,  8,  9,  7,  9 ,
00381     10,  2,  0,  5,  5,  1,  3,  7,  1,  6,  5,  4,  2,  8,  1 ,
00382     3,  6,  4,  3,  7, 10,  6,  7,  7,  6,  5,  9, 10,  8,  3 ,
00383     9,  9,  5,  2,  4,  2,  3,  3,  1,  2,  9,  2,  5,  6,  3 ,
00384     7,  5,  2,  6,  4,  8,  1,  0,  2,  4,  7,  9,  3,  3,  0 ,
00385     5,  3,  8,  7, 10,  6,  7,  7,  6, 10,  4,  4,  5,  8,  0
00386   };
00387   RadiotherapyData rd1(15,15,intensity1);
00388 
00389   /*
00390    * The following 25 clinical instances were provided by 
00391    *   - James F. Dempsey, ViewRay, Inc.
00392    *   - H. Edwin Romeijn, Department of Industrial and Operations
00393    *     Engineering, The University of Michigan
00394    *   - J. Cole Smith, Department of Industrial and Systems
00395    *     Engineering, University of Florida
00396    *   - Z. Caner Taskin, Department of Industrial and Systems
00397    *     Engineering, University of Florida
00398    *   - Chunhua Men, Department of Industrial and Systems Engineering,
00399    *     University of Florida
00400    * They are from the articles
00401    *   - "Mixed-Integer Programming Techniques for Decomposing IMRT
00402    *     Fluence Maps Using Rectangular Apertures", Z. Caner Taskin,
00403    *     J. Cole Smith, H. Edwin Romeijn
00404    *   - "Optimal Multileaf Collimator Leaf Sequencing in IMRT Treatment
00405    *     Planning", Z. Caner Tasin, J. Cole Smith, H. Edwin Romeijn, James
00406    *     F. Dempsey
00407    */
00408   static const int case1_beam1_matrix[] = {
00409     2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00410     2, 1, 0, 0, 0, 0, 0, 0, 0, 5, 0, 3, 0, 2,
00411     3, 1, 0, 0, 0, 0, 0, 0, 18, 0, 0, 4, 6, 0,
00412     2, 0, 0, 3, 11, 8, 15, 1, 11, 0, 0, 0, 10, 0,
00413     0, 0, 0, 9, 11, 14, 6, 2, 7, 0, 0, 0, 7, 0,
00414     0, 8, 2, 7, 10, 11, 7, 2, 0, 7, 0, 0, 0, 1,
00415     0, 0, 4, 1, 6, 7, 0, 0, 0, 0, 0, 0, 0, 1,
00416     0, 3, 1, 0, 4, 6, 0, 0, 0, 1, 0, 0, 0, 1,
00417     0, 1, 5, 6, 8, 8, 5, 0, 2, 0, 0, 0, 7, 0,
00418     0, 5, 2, 8, 10, 11, 5, 3, 7, 0, 2, 4, 11, 0,
00419     0, 0, 0, 1, 12, 13, 9, 7, 11, 1, 2, 3, 6, 0,
00420     0, 0, 0, 0, 0, 0, 0, 4, 20, 0, 0, 8, 5, 0,
00421     3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 2,
00422     2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00423     1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1
00424   };
00425   RadiotherapyData case1_beam1(15, 14, case1_beam1_matrix);
00426 
00427   static const int case1_beam2_matrix[] = {
00428     2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 0, 2,
00429     2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 1,
00430     3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 3,
00431     0, 0, 0, 5, 5, 3, 0, 0, 3, 2, 8, 6, 0, 0, 3,
00432     0, 0, 7, 11, 10, 11, 5, 8, 4, 11, 13, 20, 0, 0, 3,
00433     0, 10, 10, 9, 7, 7, 7, 2, 9, 0, 0, 0, 9, 0, 2,
00434     0, 4, 7, 7, 5, 6, 2, 0, 4, 0, 0, 0, 3, 0, 2,
00435     0, 10, 2, 7, 1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1,
00436     0, 0, 5, 6, 3, 1, 0, 6, 8, 0, 0, 0, 0, 1, 2,
00437     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
00438     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2
00439   };
00440   RadiotherapyData case1_beam2(11, 15, case1_beam2_matrix);
00441 
00442   static const int case1_beam3_matrix[] = {
00443     2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1,
00444     1, 2, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 1, 2, 2,
00445     1, 3, 0, 0, 0, 0, 0, 0, 0, 6, 4, 1, 12, 0, 2,
00446     2, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, 1, 9, 0, 2,
00447     2, 0, 0, 0, 0, 0, 0, 0, 2, 11, 0, 0, 0, 2, 1,
00448     0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 1,
00449     0, 3, 0, 2, 6, 7, 6, 6, 4, 0, 0, 0, 0, 0, 2,
00450     0, 0, 10, 12, 11, 10, 13, 13, 12, 5, 0, 0, 0, 0, 2,
00451     0, 0, 11, 12, 10, 10, 14, 15, 15, 5, 2, 7, 12, 0, 2,
00452     0, 9, 5, 9, 7, 6, 12, 16, 13, 8, 5, 7, 7, 0, 2,
00453     2, 0, 0, 0, 0, 0, 4, 20, 12, 8, 1, 6, 8, 0, 2,
00454     0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 7, 0, 2,
00455     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00456     2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1,
00457     0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 1
00458   };
00459   RadiotherapyData case1_beam3(15, 15, case1_beam3_matrix);
00460 
00461   static const int case1_beam4_matrix[] = {
00462     3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2,
00463     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
00464     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
00465     0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 13, 0, 4, 0, 2,
00466     0, 6, 5, 5, 8, 9, 11, 20, 8, 9, 18, 10, 7, 0, 2,
00467     0, 3, 10, 9, 12, 11, 15, 15, 11, 11, 16, 15, 3, 0, 3,
00468     0, 5, 7, 12, 14, 11, 15, 15, 13, 10, 15, 10, 5, 0, 3,
00469     0, 5, 1, 9, 11, 9, 13, 9, 12, 6, 3, 0, 0, 0, 2,
00470     0, 0, 0, 0, 4, 2, 4, 0, 7, 0, 0, 0, 0, 0, 2,
00471     2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00472     2, 0, 0, 1, 7, 4, 0, 0, 0, 10, 10, 4, 0, 1, 1,
00473     2, 2, 0, 0, 0, 0, 0, 4, 0, 14, 14, 9, 0, 0, 1,
00474     2, 2, 0, 0, 0, 0, 0, 0, 0, 12, 16, 5, 1, 0, 2,
00475     2, 2, 0, 0, 0, 0, 0, 0, 1, 10, 12, 6, 3, 0, 2,
00476     1, 3, 0, 0, 0, 0, 0, 0, 2, 12, 15, 3, 0, 1, 2
00477   };
00478   RadiotherapyData case1_beam4(15, 15, case1_beam4_matrix);
00479 
00480   static const int case1_beam5_matrix[] = {
00481     3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
00482     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
00483     0, 0, 6, 4, 3, 1, 0, 0, 7, 0, 0, 0, 0, 3, 2,
00484     0, 13, 6, 1, 1, 1, 5, 0, 2, 0, 0, 0, 0, 1, 2,
00485     0, 2, 12, 5, 4, 2, 2, 0, 1, 20, 11, 11, 5, 0, 2,
00486     0, 9, 12, 7, 3, 2, 7, 3, 5, 14, 12, 13, 11, 0, 2,
00487     0, 5, 11, 13, 6, 6, 5, 5, 5, 15, 11, 13, 12, 0, 2,
00488     0, 0, 0, 1, 4, 5, 0, 0, 0, 7, 9, 9, 8, 0, 2,
00489     4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 4, 5, 0, 2,
00490     2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00491     2, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 9, 0, 3
00492   };
00493   RadiotherapyData case1_beam5(11, 15, case1_beam5_matrix);
00494 
00495   static const int case2_beam1_matrix[] = {
00496     1, 1, 1, 4, 1, 0, 1, 5, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2,
00497     1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00498     1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 2, 7, 2, 1,
00499     1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 12, 12, 5, 8, 5, 3, 0,
00500     2, 1, 3, 0, 0, 0, 0, 0, 4, 20, 10, 1, 0, 8, 7, 8, 6, 7, 2, 1,
00501     1, 3, 1, 0, 3, 1, 13, 18, 14, 10, 5, 0, 3, 7, 7, 7, 6, 7, 2, 0,
00502     2, 0, 0, 0, 3, 1, 9, 8, 8, 6, 2, 3, 4, 5, 11, 10, 9, 10, 3, 0,
00503     2, 0, 0, 0, 1, 1, 7, 8, 5, 4, 1, 1, 0, 4, 3, 1, 0, 0, 0, 2,
00504     2, 0, 0, 1, 0, 0, 4, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00505     2, 0, 0, 4, 2, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00506     3, 0, 5, 6, 3, 1, 2, 5, 3, 1, 3, 0, 1, 0, 4, 5, 5, 9, 0, 1,
00507     1, 0, 2, 8, 3, 2, 3, 6, 5, 3, 4, 6, 4, 5, 10, 11, 8, 10, 4, 0,
00508     0, 0, 0, 8, 5, 4, 5, 8, 5, 7, 6, 5, 3, 5, 8, 7, 7, 10, 2, 0,
00509     3, 0, 9, 11, 5, 5, 6, 11, 7, 6, 6, 6, 4, 6, 8, 7, 7, 9, 2, 0,
00510     2, 0, 11, 11, 5, 6, 7, 9, 9, 6, 8, 5, 4, 6, 10, 6, 7, 7, 2, 0,
00511     2, 0, 6, 11, 4, 3, 1, 0, 0, 0, 0, 4, 7, 6, 2, 0, 0, 3, 0, 2,
00512     1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00513     1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 2
00514   };
00515   RadiotherapyData case2_beam1(18, 20, case2_beam1_matrix);
00516 
00517   static const int case2_beam2_matrix[] = {
00518     2, 3, 2, 1, 5, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3,
00519     3, 3, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
00520     3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 2,
00521     3, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 8, 5, 1,
00522     2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 5, 6, 5, 5, 1, 2, 6, 2, 1,
00523     2, 2, 2, 0, 0, 0, 0, 8, 0, 4, 2, 5, 2, 7, 5, 1, 4, 2, 1,
00524     2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 3, 4, 7, 4, 0,
00525     3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 6, 7, 5, 7, 8, 7, 0,
00526     2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 10, 7, 2, 3, 5, 12, 6, 0,
00527     4, 0, 0, 0, 0, 6, 5, 6, 4, 8, 10, 12, 9, 7, 1, 6, 6, 6, 0,
00528     0, 0, 0, 18, 18, 3, 3, 4, 6, 9, 12, 12, 7, 5, 0, 0, 0, 0, 2,
00529     0, 0, 0, 20, 11, 0, 1, 4, 5, 10, 10, 8, 6, 1, 6, 3, 4, 1, 3,
00530     0, 0, 0, 16, 11, 0, 3, 2, 7, 11, 10, 13, 7, 2, 2, 0, 0, 0, 2,
00531     3, 0, 0, 14, 10, 1, 5, 2, 8, 15, 9, 9, 13, 5, 0, 0, 0, 0, 3,
00532     2, 0, 0, 16, 9, 5, 5, 4, 7, 18, 0, 0, 0, 0, 0, 0, 0, 1, 2,
00533     2, 0, 0, 15, 10, 7, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
00534     2, 0, 0, 0, 18, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2
00535   };
00536   RadiotherapyData case2_beam2(17, 19, case2_beam2_matrix);
00537 
00538   static const int case2_beam3_matrix[] = {
00539     1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
00540     1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00541     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 3, 2, 6, 2, 2,
00542     1, 0, 0, 0, 0, 0, 0, 4, 2, 10, 11, 12, 7, 7, 4, 0, 4, 1,
00543     2, 0, 0, 0, 0, 0, 0, 4, 6, 9, 10, 12, 6, 5, 4, 4, 3, 2,
00544     2, 0, 0, 0, 0, 14, 0, 7, 2, 9, 8, 8, 3, 6, 4, 4, 2, 2,
00545     3, 0, 0, 0, 10, 11, 0, 0, 1, 7, 4, 2, 2, 0, 0, 0, 2, 2,
00546     0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00547     0, 0, 0, 0, 4, 1, 1, 0, 2, 2, 0, 0, 2, 0, 3, 0, 1, 2,
00548     0, 0, 0, 0, 5, 5, 7, 7, 8, 9, 5, 8, 1, 1, 0, 0, 0, 3,
00549     0, 0, 8, 0, 10, 10, 12, 15, 16, 10, 7, 6, 0, 3, 0, 0, 0, 3,
00550     0, 0, 20, 4, 12, 12, 11, 19, 17, 17, 11, 9, 12, 12, 11, 13, 3, 1,
00551     0, 0, 0, 11, 8, 10, 11, 15, 18, 12, 5, 3, 6, 8, 11, 12, 9, 0,
00552     1, 0, 0, 6, 10, 1, 3, 17, 17, 13, 5, 1, 4, 16, 8, 15, 3, 1,
00553     2, 0, 0, 8, 0, 0, 0, 0, 0, 11, 6, 0, 6, 0, 0, 0, 0, 3,
00554     2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
00555     2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,
00556     2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2
00557   };
00558   RadiotherapyData case2_beam3(18, 18, case2_beam3_matrix);
00559 
00560   static const int case2_beam4_matrix[] = {
00561     3, 0, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 2, 2,
00562     0, 0, 5, 2, 2, 0, 7, 3, 3, 0, 0, 0, 0, 0, 0, 3, 1, 2,
00563     0, 0, 0, 4, 3, 0, 8, 11, 9, 4, 0, 2, 0, 0, 0, 0, 4, 1,
00564     0, 0, 9, 5, 5, 2, 12, 13, 10, 7, 3, 1, 4, 0, 0, 0, 0, 3,
00565     0, 16, 9, 4, 10, 7, 15, 16, 8, 5, 6, 4, 7, 10, 0, 11, 0, 2,
00566     0, 0, 12, 6, 12, 12, 18, 18, 14, 9, 7, 7, 8, 12, 13, 12, 10, 0,
00567     0, 0, 0, 8, 13, 15, 18, 20, 12, 13, 12, 12, 12, 13, 11, 10, 8, 0,
00568     0, 0, 0, 3, 5, 14, 17, 16, 11, 8, 4, 10, 12, 11, 14, 9, 1, 3,
00569     0, 0, 0, 0, 0, 3, 14, 8, 5, 4, 5, 9, 4, 0, 0, 0, 0, 3,
00570     4, 3, 0, 0, 1, 0, 8, 3, 3, 0, 0, 0, 0, 0, 2, 0, 0, 3,
00571     1, 7, 0, 0, 1, 2, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00572     3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 5, 1, 4, 1, 4, 0, 0, 2,
00573     2, 5, 4, 0, 0, 0, 0, 0, 0, 0, 8, 10, 7, 0, 6, 1, 4, 1,
00574     2, 4, 4, 0, 0, 0, 0, 0, 0, 4, 5, 5, 6, 1, 6, 6, 2, 2,
00575     2, 4, 3, 2, 0, 0, 0, 0, 4, 3, 12, 2, 1, 7, 3, 4, 2, 2,
00576     2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 3, 12, 5, 5, 1,
00577     2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 2,
00578     3, 3, 5, 0, 3, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3
00579   };
00580   RadiotherapyData case2_beam4(18, 18, case2_beam4_matrix);
00581 
00582   static const int case2_beam5_matrix[] = {
00583     0, 0, 0, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,
00584     0, 0, 2, 10, 16, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,
00585     0, 0, 6, 9, 15, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 3,
00586     2, 4, 9, 12, 15, 3, 4, 0, 3, 0, 2, 17, 13, 0, 0, 0, 2, 3,
00587     0, 5, 12, 14, 17, 5, 2, 0, 0, 8, 17, 16, 13, 4, 0, 0, 0, 3,
00588     0, 6, 13, 16, 17, 5, 2, 2, 4, 5, 12, 10, 10, 13, 6, 0, 0, 3,
00589     0, 0, 20, 17, 18, 8, 4, 5, 6, 10, 14, 13, 11, 2, 1, 4, 0, 3,
00590     0, 0, 0, 14, 18, 11, 8, 9, 9, 10, 13, 12, 8, 8, 5, 6, 5, 0,
00591     0, 0, 0, 2, 11, 10, 6, 3, 1, 6, 10, 11, 5, 8, 9, 8, 9, 0,
00592     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 3, 10, 4, 5, 3, 1,
00593     0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 6, 6, 2, 2, 2, 2, 1,
00594     0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 4, 3, 4, 1, 0, 0, 2, 0,
00595     0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 4, 1, 2,
00596     2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 8, 3, 1,
00597     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 2,
00598     1, 3, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
00599     1, 2, 1, 4, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2
00600   };
00601   RadiotherapyData case2_beam5(17, 18, case2_beam5_matrix);
00602 
00603   static const int case3_beam1_matrix[] = {
00604     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
00605     0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 8, 8, 1, 0, 0, 0,
00606     1, 2, 0, 0, 0, 0, 0, 0, 11, 9, 5, 5, 4, 5, 0, 2, 0,
00607     1, 0, 0, 0, 0, 0, 8, 13, 9, 6, 4, 4, 4, 8, 0, 2, 0,
00608     0, 2, 17, 10, 13, 14, 10, 8, 7, 6, 4, 4, 5, 8, 0, 2, 0,
00609     0, 12, 20, 9, 14, 15, 7, 2, 5, 5, 5, 3, 4, 9, 0, 1, 1,
00610     0, 17, 13, 10, 15, 16, 5, 1, 5, 7, 5, 6, 4, 8, 0, 2, 1,
00611     1, 0, 15, 9, 15, 20, 6, 1, 4, 7, 7, 6, 5, 9, 7, 1, 1,
00612     0, 0, 2, 7, 16, 9, 5, 0, 3, 7, 5, 5, 4, 7, 4, 5, 0,
00613     0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 2, 6, 5, 4, 0,
00614     0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 3, 3, 3, 6, 5, 4, 0,
00615     0, 0, 0, 5, 7, 5, 8, 0, 2, 7, 5, 4, 5, 7, 4, 5, 0,
00616     0, 4, 9, 8, 16, 19, 5, 1, 3, 7, 6, 5, 6, 9, 6, 1, 1,
00617     0, 13, 12, 8, 14, 14, 4, 2, 0, 8, 4, 5, 5, 8, 2, 0, 2,
00618     0, 20, 11, 7, 14, 15, 3, 0, 0, 6, 3, 3, 5, 9, 0, 1, 1,
00619     0, 6, 17, 4, 14, 14, 6, 1, 1, 5, 2, 3, 5, 7, 0, 1, 0,
00620     0, 0, 0, 11, 6, 13, 7, 2, 2, 5, 2, 4, 3, 6, 0, 2, 0,
00621     1, 0, 0, 0, 6, 0, 8, 2, 3, 5, 3, 7, 4, 7, 0, 0, 0,
00622     0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 7, 10, 4, 0, 0, 0, 0,
00623     0, 0, 0, 0, 0, 0, 0, 0, 2, 8, 5, 0, 10, 0, 1, 0, 0,
00624     0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 0, 1, 0, 0,
00625     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0
00626   };
00627   RadiotherapyData case3_beam1(22, 17, case3_beam1_matrix);
00628 
00629   static const int case3_beam2_matrix[] = {
00630     0, 0, 1, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00631     0, 0, 8, 0, 1, 4, 5, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
00632     2, 0, 0, 0, 3, 2, 2, 1, 1, 0, 0, 1, 4, 7, 11, 9, 0, 0, 0,
00633     2, 0, 0, 0, 3, 2, 2, 0, 2, 4, 1, 4, 7, 11, 10, 20, 1, 0, 0,
00634     3, 0, 2, 0, 2, 2, 2, 1, 7, 8, 5, 9, 13, 16, 13, 14, 12, 0, 0,
00635     2, 0, 1, 0, 3, 2, 4, 5, 15, 16, 12, 11, 15, 17, 15, 14, 9, 0, 3,
00636     2, 0, 11, 0, 6, 3, 0, 5, 17, 16, 10, 10, 13, 17, 13, 14, 7, 1, 3,
00637     2, 0, 5, 0, 8, 1, 0, 2, 16, 16, 9, 8, 10, 14, 12, 13, 12, 0, 3,
00638     0, 0, 0, 2, 8, 1, 0, 7, 15, 17, 7, 8, 10, 12, 9, 12, 5, 1, 0,
00639     0, 0, 0, 0, 5, 0, 2, 7, 15, 13, 5, 4, 9, 7, 4, 0, 0, 2, 0,
00640     0, 0, 0, 0, 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
00641     0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00642     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00643     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00644     0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
00645   };
00646   RadiotherapyData case3_beam2(15, 19, case3_beam2_matrix);
00647 
00648   static const int case3_beam3_matrix[] = {
00649     0, 0, 0, 0, 0, 0, 0, 0, 15, 8, 10, 0, 0, 0, 0, 0, 0,
00650     0, 0, 0, 0, 0, 0, 0, 15, 10, 7, 10, 7, 18, 0, 0, 0, 0,
00651     0, 3, 5, 5, 3, 0, 7, 8, 12, 9, 12, 11, 20, 0, 0, 0, 0,
00652     0, 0, 0, 4, 5, 2, 6, 5, 12, 9, 12, 12, 14, 3, 0, 1, 0,
00653     0, 0, 0, 7, 2, 4, 7, 9, 11, 9, 10, 10, 7, 5, 0, 0, 0,
00654     0, 0, 1, 7, 1, 2, 7, 8, 10, 4, 5, 1, 0, 0, 0, 0, 0,
00655     0, 0, 0, 3, 0, 3, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0,
00656     0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
00657     3, 2, 4, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 7, 10, 8, 0,
00658     0, 0, 4, 4, 0, 0, 0, 9, 6, 7, 7, 10, 6, 13, 8, 10, 0,
00659     0, 6, 12, 12, 0, 0, 0, 15, 9, 11, 15, 16, 15, 17, 4, 17, 0,
00660     0, 5, 14, 12, 5, 0, 9, 18, 15, 18, 19, 18, 16, 17, 6, 14, 0,
00661     0, 14, 7, 13, 3, 2, 16, 17, 13, 17, 17, 16, 17, 12, 8, 12, 0,
00662     0, 4, 14, 8, 5, 1, 10, 12, 7, 19, 17, 18, 15, 13, 0, 0, 3,
00663     0, 0, 6, 10, 0, 0, 0, 4, 5, 16, 17, 16, 13, 15, 2, 0, 3,
00664     0, 0, 0, 0, 0, 0, 0, 0, 5, 17, 15, 16, 12, 15, 2, 2, 0,
00665     1, 0, 0, 0, 0, 0, 2, 2, 0, 7, 15, 9, 11, 13, 7, 1, 0,
00666     0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 15, 0, 3, 0,
00667     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 1, 2, 0,
00668     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0
00669   };
00670   RadiotherapyData case3_beam3(20, 17, case3_beam3_matrix);
00671 
00672   static const int case3_beam4_matrix[] = {
00673     0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0,
00674     0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 3, 0,
00675     0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 12, 0, 3, 0,
00676     2, 0, 0, 0, 0, 0, 2, 0, 10, 9, 20, 0, 0, 15, 0, 3, 0,
00677     0, 0, 0, 14, 0, 0, 0, 3, 7, 11, 16, 16, 6, 16, 2, 2, 0,
00678     0, 0, 10, 9, 5, 0, 0, 16, 7, 10, 17, 16, 13, 11, 12, 0, 0,
00679     0, 9, 10, 10, 5, 2, 11, 9, 9, 12, 16, 18, 12, 13, 3, 0, 3,
00680     0, 5, 11, 10, 6, 4, 10, 15, 10, 13, 17, 18, 16, 5, 11, 0, 2,
00681     0, 1, 13, 11, 7, 2, 19, 12, 14, 12, 16, 18, 16, 12, 7, 11, 0,
00682     0, 0, 14, 6, 7, 0, 0, 11, 13, 13, 17, 16, 16, 11, 7, 11, 0,
00683     0, 0, 5, 0, 0, 0, 0, 7, 4, 8, 11, 12, 12, 10, 7, 9, 0,
00684     2, 0, 0, 0, 0, 0, 0, 1, 2, 2, 5, 5, 7, 7, 8, 1, 1,
00685     3, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 6, 5, 11, 0, 2,
00686     0, 6, 3, 2, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00687     0, 0, 0, 0, 4, 4, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0,
00688     0, 0, 0, 0, 4, 6, 2, 9, 12, 6, 5, 5, 5, 0, 0, 0, 1,
00689     0, 0, 0, 4, 2, 4, 0, 7, 10, 8, 10, 10, 5, 0, 0, 1, 0,
00690     1, 0, 0, 3, 0, 0, 0, 0, 6, 5, 11, 9, 11, 0, 0, 0, 0,
00691     0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 13, 13, 0, 0, 0, 0
00692   };
00693   RadiotherapyData case3_beam4(19, 17, case3_beam4_matrix);
00694 
00695   static const int case3_beam5_matrix[] = {
00696     0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00697     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00698     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00699     0, 0, 7, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
00700     0, 0, 0, 0, 0, 0, 1, 15, 0, 0, 0, 0, 4, 5, 0, 0, 0, 3, 0,
00701     0, 0, 0, 0, 1, 0, 0, 13, 2, 0, 5, 9, 9, 9, 1, 7, 0, 3, 0,
00702     1, 0, 1, 2, 5, 0, 0, 3, 5, 0, 8, 10, 9, 12, 10, 17, 4, 2, 0,
00703     3, 0, 0, 0, 5, 1, 0, 8, 9, 2, 10, 13, 12, 14, 12, 14, 10, 1, 3,
00704     3, 0, 0, 0, 3, 2, 2, 11, 11, 8, 14, 15, 16, 17, 15, 15, 5, 2, 3,
00705     3, 0, 2, 2, 2, 1, 3, 9, 8, 7, 7, 15, 13, 19, 18, 13, 15, 1, 0,
00706     3, 0, 0, 2, 0, 2, 2, 6, 1, 3, 1, 7, 9, 12, 11, 19, 0, 0, 0,
00707     3, 0, 0, 4, 0, 2, 3, 2, 1, 1, 0, 3, 4, 7, 20, 0, 0, 0, 0,
00708     3, 0, 16, 0, 3, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00709     4, 0, 16, 3, 4, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00710     0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
00711   };
00712   RadiotherapyData case3_beam5(15, 19, case3_beam5_matrix);
00713 
00714   static const int case4_beam1_matrix[] = {
00715     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
00716     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 5, 8, 10, 0, 0, 0, 0, 2,
00717     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 9, 2, 0, 2, 1, 2,
00718     0, 0, 0, 0, 0, 0, 0, 10, 17, 12, 0, 7, 5, 0, 0, 1, 6, 7, 4, 4, 3, 1,
00719     2, 0, 0, 0, 20, 0, 0, 0, 0, 0, 2, 1, 3, 1, 1, 1, 6, 7, 6, 4, 0, 1,
00720     2, 1, 0, 8, 6, 0, 0, 0, 0, 0, 0, 2, 3, 2, 2, 1, 6, 7, 7, 7, 0, 0,
00721     2, 0, 11, 5, 2, 4, 6, 0, 0, 3, 4, 2, 6, 1, 2, 1, 8, 5, 8, 8, 2, 0,
00722     1, 0, 1, 1, 0, 0, 2, 4, 7, 2, 0, 1, 3, 1, 5, 0, 11, 4, 7, 9, 2, 0,
00723     0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 1, 10, 3, 7, 8, 3, 0,
00724     1, 0, 0, 0, 0, 0, 3, 5, 8, 0, 1, 1, 2, 1, 7, 1, 11, 3, 6, 8, 4, 0,
00725     1, 0, 7, 4, 2, 6, 6, 0, 6, 3, 2, 4, 7, 6, 10, 2, 11, 3, 6, 7, 4, 0,
00726     0, 8, 16, 13, 0, 0, 0, 0, 0, 0, 2, 3, 6, 6, 7, 3, 10, 3, 5, 7, 4, 0,
00727     2, 0, 0, 0, 16, 0, 0, 0, 0, 0, 3, 2, 4, 7, 9, 4, 9, 3, 5, 6, 4, 0,
00728     0, 0, 0, 0, 0, 0, 0, 12, 6, 8, 5, 4, 5, 8, 6, 3, 8, 3, 5, 6, 3, 0,
00729     0, 0, 0, 0, 0, 0, 0, 14, 15, 10, 0, 3, 9, 8, 4, 2, 7, 3, 4, 5, 1, 0,
00730     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 4, 2, 7, 2, 4, 5, 0, 2,
00731     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 4, 1, 8, 2, 3, 2, 2, 2,
00732     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 12, 5, 0, 0, 0, 0, 0, 2,
00733     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 0, 0, 0
00734   };
00735   RadiotherapyData case4_beam1(19, 22, case4_beam1_matrix);
00736 
00737   static const int case4_beam2_matrix[] = {
00738     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00739     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 3, 2, 9, 17, 10, 11, 6, 0, 0, 5, 0,
00740     0, 0, 0, 0, 0, 0, 7, 6, 0, 0, 0, 0, 1, 2, 7, 14, 16, 14, 16, 7, 5, 5, 0, 4,
00741     0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 5, 10, 16, 20, 12, 17, 8, 13, 13, 0, 4,
00742     0, 3, 7, 2, 0, 5, 5, 0, 6, 2, 0, 0, 3, 12, 16, 17, 17, 10, 19, 9, 11, 13, 0, 4,
00743     3, 0, 19, 9, 11, 10, 3, 2, 0, 7, 7, 13, 20, 14, 17, 15, 18, 7, 18, 11, 11, 15, 0, 4,
00744     0, 3, 4, 9, 10, 9, 0, 2, 0, 2, 0, 13, 13, 13, 14, 14, 17, 4, 17, 11, 11, 16, 0, 4,
00745     0, 1, 0, 0, 0, 6, 0, 0, 1, 1, 0, 5, 13, 9, 11, 9, 12, 5, 14, 11, 10, 18, 0, 4,
00746     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 9, 8, 7, 12, 2, 13, 10, 11, 17, 0, 4,
00747     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 8, 2, 0, 4, 13, 8, 12, 19, 0, 4,
00748     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 0, 0, 0, 0, 5, 8, 15, 0, 2, 0,
00749     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 5, 0,
00750     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 3, 0, 0
00751   };
00752   RadiotherapyData case4_beam2(13, 24, case4_beam2_matrix);
00753 
00754   static const int case4_beam3_matrix[] = {
00755     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
00756     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0,
00757     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0,
00758     0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 4, 3, 0, 0, 0, 0, 0, 0, 1, 0,
00759     0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 4, 4, 6, 3, 1, 0, 0, 5, 5, 0, 0, 1, 0,
00760     1, 0, 0, 0, 11, 0, 9, 8, 5, 6, 3, 5, 6, 2, 0, 0, 1, 3, 4, 7, 0, 0, 0,
00761     2, 2, 0, 0, 7, 11, 0, 6, 8, 5, 6, 2, 3, 0, 0, 0, 2, 1, 5, 3, 3, 0, 0,
00762     1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 1, 3, 2, 2, 0, 0,
00763     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 7, 2, 0, 3, 1, 2, 0, 0,
00764     1, 0, 6, 2, 4, 7, 3, 0, 0, 0, 3, 4, 6, 8, 6, 6, 4, 0, 2, 1, 3, 0, 2,
00765     0, 7, 6, 7, 7, 13, 14, 9, 10, 6, 6, 8, 8, 9, 8, 6, 5, 0, 2, 0, 2, 0, 2,
00766     0, 7, 8, 8, 8, 12, 12, 14, 10, 8, 7, 8, 7, 7, 7, 5, 6, 0, 1, 0, 2, 0, 2,
00767     0, 0, 0, 1, 7, 20, 13, 8, 17, 11, 6, 6, 5, 6, 9, 7, 7, 0, 1, 0, 3, 0, 2,
00768     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 6, 7, 8, 8, 0, 1, 1, 4, 0, 2,
00769     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 8, 0, 3, 2, 4, 0, 2,
00770     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 4, 5, 0, 0,
00771     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0,
00772     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0
00773   };
00774   RadiotherapyData case4_beam3(18, 23, case4_beam3_matrix);
00775 
00776   static const int case4_beam4_matrix[] = {
00777     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 7, 1, 2, 0, 0,
00778     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 6, 0, 5, 0, 3, 1, 3, 1, 0,
00779     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 7, 8, 10, 0, 2, 1, 4, 0, 0,
00780     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 9, 8, 1, 2, 1, 4, 0, 2,
00781     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 6, 4, 9, 9, 7, 0, 2, 2, 3, 0, 0,
00782     0, 0, 0, 0, 3, 17, 8, 9, 15, 14, 6, 10, 5, 5, 7, 5, 5, 1, 2, 3, 3, 0, 2,
00783     0, 0, 2, 7, 12, 20, 19, 16, 12, 12, 12, 9, 8, 8, 5, 2, 5, 0, 2, 3, 4, 0, 3,
00784     0, 12, 10, 13, 9, 15, 15, 11, 11, 14, 8, 10, 10, 10, 5, 4, 3, 0, 2, 4, 4, 0, 0,
00785     0, 2, 13, 4, 6, 12, 10, 6, 4, 7, 5, 6, 8, 8, 5, 4, 2, 0, 3, 3, 4, 0, 0,
00786     1, 0, 4, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 3, 1, 0, 3, 3, 2, 0, 0,
00787     2, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 4, 4, 0, 0, 0,
00788     2, 3, 0, 0, 13, 0, 2, 9, 0, 8, 7, 8, 2, 0, 0, 0, 4, 2, 6, 4, 4, 0, 0,
00789     0, 0, 0, 0, 0, 0, 4, 7, 1, 3, 7, 9, 7, 4, 0, 0, 1, 7, 5, 5, 0, 1, 0,
00790     0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 9, 7, 8, 7, 1, 0, 0, 0, 0, 0, 0, 1, 0,
00791     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0,
00792     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 6, 0, 0, 0, 0, 0, 0, 0,
00793     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 7, 0, 0, 0, 0, 0, 0, 0
00794   };
00795   RadiotherapyData case4_beam4(17, 23, case4_beam4_matrix);
00796 
00797   static const int case4_beam5_matrix[] = {
00798     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 4, 0, 0,
00799     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
00800     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 6, 0, 0, 0, 6, 2, 10, 0, 3, 0, 0,
00801     3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 9, 5, 6, 0, 12, 10, 7, 15, 0, 3, 0,
00802     4, 0, 0, 0, 12, 0, 0, 0, 0, 9, 7, 10, 4, 4, 0, 8, 0, 15, 12, 10, 11, 0, 3, 0,
00803     2, 0, 5, 12, 8, 0, 0, 9, 6, 14, 14, 8, 10, 8, 5, 5, 3, 18, 13, 12, 15, 0, 4, 0,
00804     0, 19, 19, 15, 19, 1, 0, 17, 10, 14, 15, 13, 12, 9, 5, 8, 5, 20, 13, 13, 13, 0, 4, 1,
00805     3, 3, 14, 0, 10, 0, 15, 8, 5, 9, 2, 5, 10, 11, 5, 9, 7, 20, 15, 11, 11, 0, 4, 0,
00806     5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 8, 14, 9, 18, 11, 10, 11, 0, 4, 0,
00807     0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1, 0, 3, 4, 11, 12, 12, 13, 8, 11, 0, 4, 0,
00808     0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 2, 0, 2, 10, 9, 13, 6, 0, 0, 2, 3, 0,
00809     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 6, 4, 0, 0, 0, 0, 4, 0, 0
00810   };
00811   RadiotherapyData case4_beam5(12, 24, case4_beam5_matrix);
00812 
00813   static const int case5_beam1_matrix[] = {
00814     1, 2, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
00815     1, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 0, 0, 0, 1,
00816     1, 2, 0, 0, 0, 0, 0, 0, 1, 9, 8, 1, 8, 4, 5, 0,
00817     1, 2, 0, 0, 5, 0, 4, 4, 1, 7, 4, 5, 5, 5, 4, 0,
00818     0, 1, 0, 8, 2, 2, 1, 1, 0, 0, 0, 0, 2, 5, 1, 1,
00819     0, 0, 2, 2, 4, 4, 4, 2, 0, 0, 0, 0, 0, 6, 3, 1,
00820     0, 1, 3, 2, 3, 5, 4, 1, 2, 2, 4, 2, 2, 6, 4, 1,
00821     0, 0, 0, 0, 1, 0, 0, 1, 0, 2, 4, 2, 0, 0, 0, 1,
00822     0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 1,
00823     0, 0, 1, 3, 3, 0, 2, 2, 1, 3, 6, 0, 0, 0, 0, 1,
00824     0, 3, 2, 4, 7, 5, 2, 4, 4, 8, 0, 0, 2, 10, 3, 1,
00825     0, 3, 3, 7, 9, 7, 4, 3, 0, 0, 0, 0, 0, 6, 4, 0,
00826     2, 0, 1, 7, 0, 0, 0, 4, 0, 0, 0, 5, 0, 8, 3, 1,
00827     2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 6, 0, 2, 1, 1,
00828     2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2
00829   };
00830   RadiotherapyData case5_beam1(15, 16, case5_beam1_matrix);
00831 
00832   static const int case5_beam2_matrix[] = {
00833     2, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 1, 2,
00834     2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00835     2, 3, 4, 0, 0, 0, 0, 5, 5, 5, 0, 0, 5, 0, 1, 0, 1,
00836     2, 2, 4, 0, 0, 0, 0, 0, 2, 2, 3, 0, 3, 0, 1, 5, 0,
00837     2, 2, 2, 0, 0, 0, 0, 0, 0, 8, 4, 0, 2, 2, 3, 8, 0,
00838     3, 1, 1, 0, 0, 0, 3, 1, 2, 13, 14, 13, 4, 10, 2, 16, 0,
00839     3, 2, 0, 0, 0, 0, 0, 0, 9, 19, 16, 6, 8, 18, 2, 9, 0,
00840     3, 0, 0, 8, 8, 1, 6, 7, 6, 20, 8, 0, 0, 0, 0, 1, 2,
00841     4, 2, 2, 17, 2, 0, 0, 0, 3, 13, 0, 1, 0, 1, 4, 0, 2,
00842     2, 6, 0, 8, 0, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1,
00843     0, 0, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00844     0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00845     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2
00846   };
00847   RadiotherapyData case5_beam2(13, 17, case5_beam2_matrix);
00848 
00849   static const int case5_beam3_matrix[] = {
00850     1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00851     1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 4, 1,
00852     1, 2, 0, 0, 0, 0, 0, 0, 0, 10, 11, 5, 10, 3, 4, 1,
00853     1, 2, 1, 2, 0, 0, 0, 3, 0, 0, 11, 5, 4, 0, 2, 0,
00854     2, 1, 0, 9, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00855     1, 3, 3, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00856     3, 0, 0, 4, 8, 6, 2, 7, 6, 9, 0, 0, 0, 0, 0, 2,
00857     0, 0, 0, 12, 13, 11, 9, 12, 10, 7, 9, 5, 3, 10, 4, 0,
00858     0, 0, 10, 14, 13, 10, 12, 15, 9, 11, 12, 8, 7, 8, 9, 0,
00859     2, 0, 7, 13, 12, 12, 11, 14, 10, 10, 10, 1, 6, 7, 8, 0,
00860     0, 1, 0, 9, 19, 11, 18, 14, 8, 0, 0, 0, 0, 7, 0, 0,
00861     0, 0, 0, 0, 8, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2,
00862     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 2,
00863     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 1, 2
00864   };
00865   RadiotherapyData case5_beam3(14, 16, case5_beam3_matrix);
00866 
00867   static const int case5_beam4_matrix[] = {
00868     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00869     0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
00870     0, 0, 11, 5, 3, 3, 12, 10, 20, 1, 0, 4, 6, 2, 6, 0,
00871     1, 0, 9, 7, 7, 10, 11, 8, 8, 18, 12, 8, 6, 4, 8, 0,
00872     0, 0, 9, 10, 9, 10, 12, 7, 9, 7, 6, 9, 5, 5, 6, 0,
00873     0, 0, 0, 6, 11, 7, 8, 7, 4, 10, 6, 9, 1, 0, 5, 1,
00874     3, 1, 0, 0, 5, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 2,
00875     1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,
00876     1, 2, 0, 0, 2, 0, 2, 0, 0, 3, 0, 1, 3, 0, 0, 1,
00877     1, 2, 0, 0, 0, 0, 0, 0, 11, 1, 6, 6, 4, 0, 3, 0,
00878     1, 2, 0, 0, 0, 0, 0, 2, 9, 6, 3, 8, 6, 0, 6, 1,
00879     1, 1, 1, 0, 0, 0, 0, 0, 6, 2, 0, 4, 1, 1, 3, 1,
00880     1, 1, 1, 0, 0, 0, 0, 0, 3, 0, 0, 6, 0, 1, 1, 1,
00881     1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 10, 1, 1, 0, 1
00882   };
00883   RadiotherapyData case5_beam4(14, 16, case5_beam4_matrix);
00884 
00885   static const int case5_beam5_matrix[] = {
00886     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 2,
00887     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00888     0, 0, 7, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
00889     2, 0, 9, 12, 3, 0, 1, 0, 0, 10, 0, 0, 0, 0, 0, 0, 1,
00890     3, 0, 10, 11, 11, 1, 9, 3, 5, 0, 6, 3, 14, 12, 0, 0, 3,
00891     2, 0, 5, 7, 12, 5, 9, 10, 4, 0, 0, 5, 20, 2, 5, 0, 0,
00892     1, 4, 0, 2, 4, 7, 3, 5, 9, 0, 0, 15, 15, 17, 4, 1, 0,
00893     2, 4, 0, 0, 0, 0, 0, 0, 6, 0, 5, 12, 9, 14, 6, 8, 0,
00894     2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 6, 3, 0,
00895     2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
00896     2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
00897     2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
00898   };
00899   RadiotherapyData case5_beam5(12, 17, case5_beam5_matrix);
00901 
00903   RadiotherapyData rds[] = {rd0, rd1, 
00904                                    case1_beam1,
00905                                    case1_beam2,
00906                                    case1_beam3,
00907                                    case1_beam4,
00908                                    case1_beam5,
00909                                    case2_beam1,
00910                                    case2_beam2,
00911                                    case2_beam3,
00912                                    case2_beam4,
00913                                    case2_beam5,
00914                                    case3_beam1,
00915                                    case3_beam2,
00916                                    case3_beam3,
00917                                    case3_beam4,
00918                                    case3_beam5,
00919                                    case4_beam1,
00920                                    case4_beam2,
00921                                    case4_beam3,
00922                                    case4_beam4,
00923                                    case4_beam5,
00924                                    case5_beam1,
00925                                    case5_beam2,
00926                                    case5_beam3,
00927                                    case5_beam4,
00928                                    case5_beam5
00929   };
00931   const unsigned int rds_n = sizeof(rds) / sizeof(RadiotherapyData);
00932 }
00933 // STATISTICS: example-any