intcount_barvinok.hpp

Go to the documentation of this file.
00001 /*****************************************************************************
00002     
00003     intcount_barvinok.hpp -- The algorithm that counts all integer points
00004         in polytope.
00005 
00006     This file is a part of the Arageli library.
00007 
00008     An implementation of all algorithms in this file
00009     have been done by Ekaterina Schukina.
00010     
00011     An integration of the implemented algorithms
00012     into Arageli by Sergey Lyalin.
00013 
00014     Copyright (C) Ekaterina Shchukina, 2006
00015     Copyright (C) Sergey S. Lyalin, 2006
00016     University of Nizhni Novgorod, Russia, 2005--2006
00017 
00018 *****************************************************************************/
00019 
00027 //TODO: This file needs to rewrite with new approaches. Polyhedrons, for example.
00028 
00029 #ifndef _ARAGELI_intcount_barvinok_hpp_
00030 #define _ARAGELI_intcount_barvinok_hpp_
00031 
00032 #include "config.hpp"
00033 
00034 #include "_utility.hpp"
00035 
00036 
00037 namespace Arageli
00038 {
00039 
00040 
00041 namespace ctrl
00042 {
00043 
00044 class intcount_barvinok_idler {};   // Need to complete.
00045 
00046 }
00047 
00048 
00050 template <typename A, typename T, typename Ctrler>
00051 void intcount_barvinok (const A& a, T& res, Ctrler ctrler);
00052 
00053 
00055 template <typename A, typename T>
00056 inline void intcount_barvinok (const A& a, T& res)
00057 { intcount_barvinok(a, res, ctrl::intcount_barvinok_idler()); }
00058 
00059 
00061 template <typename A>
00062 inline typename A::element_type intcount_barvinok (const A& a)
00063 {
00064     typename A::element_type res;
00065     intcount_barvinok(a, res, ctrl::intcount_barvinok_idler());
00066     return res;
00067 }
00068 
00069 
00070 } // namesapce Arageli
00071 
00072 
00073 #ifdef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE
00074     #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_INTCOUNT_BARVINOK
00075     #include "intcount_barvinok.cpp"
00076     #undef  ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_INTCOUNT_BARVINOK
00077 #endif
00078 
00079 #endif

Generated on Thu Aug 31 17:38:06 2006 for Arageli by  doxygen 1.4.7