skeleton.hpp

Go to the documentation of this file.
00001 /*****************************************************************************
00002     
00003     skeleton.hpp -- algorithms for double-description of a convex polyhedron.
00004 
00005     This file is a part of the Arageli library.
00006 
00007     Copyright (C) Nikolai Yu. Zolotykh, 1999--2006
00008     Copyright (C) Sergey S. Lyalin, 2006
00009     University of Nizhni Novgorod, Russia
00010 
00011 *****************************************************************************/
00012 
00020 #ifndef _ARAGELI_skeleton_hpp_
00021 #define _ARAGELI_skeleton_hpp_
00022 
00023 #include "config.hpp"
00024 #include "motzkin_burger.hpp"
00025 
00026 
00027 namespace Arageli
00028 {
00029 
00030 
00031 namespace ctrl
00032 {
00033 
00034 struct skeleton_idler
00035 {
00036     class abort : public ctrl::abort {};
00037 
00038     skeleton_motzkin_burger_idler motzkin_burger_ctrl () const
00039     { return skeleton_motzkin_burger_idler(); }
00040 };
00041 
00042 }
00043 
00044 
00046 
00048 template
00049 <
00050     typename A, typename F,
00051     typename Q, typename E,
00052     typename Ctrler
00053 >
00054 inline void skeleton
00055 (
00056     A& a, F& f, Q& q, E& e, // WARNING!!! Is matrix 'a' really mutable?
00057     const Ctrler& ctrler
00058 )
00059 { skeleton_motzkin_burger(a, f, q, e, ctrler.motzkin_burger_ctrl()); }
00060 
00061 
00063 
00064 template <typename A, typename F, typename Q, typename E>
00065 inline void skeleton (A& a, F& f, Q& q, E& e)
00066 { return skeleton (a, f, q, e, ctrl::skeleton_idler()); }
00067 
00068 
00069 } // namesapce Arageli
00070 
00071 
00072 //#ifdef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE
00073 //  #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_SKELETON
00074 //  #include "skeleton.cpp"
00075 //  #undef  ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_SKELETON
00076 //#endif
00077 
00078 #endif

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