6 static double MAXMIN_PRECISION = 0.001;
11 #include <boost/smart_ptr.hpp>
12 #include <boost/pool/object_pool.hpp>
13 #include <boost/bind.hpp>
15 static void double_update(double *variable, double value)
18 if (*variable < MAXMIN_PRECISION)
25 typedef boost::shared_ptr<Solver> SolverPtr;
28 typedef boost::shared_ptr<Element> ElementPtr;
31 typedef boost::shared_ptr<Constraint> ConstraintPtr;
33 class ConstraintLight;
34 typedef boost::shared_ptr<ConstraintLight> ConstraintLightPtr;
37 typedef boost::shared_ptr<Variable> VariablePtr;
41 bool operator()( const ElementPtr & a, const ElementPtr & b )
42 { return true; } //a > b; }
46 typedef struct Solver Solver;
47 typedef struct Element Element;
48 typedef struct Constraint Constraint;
49 typedef struct ConstraintLight ConstraintLight;
50 typedef struct Variable Variable;
54 typedef Element *lmm_element_t;
55 typedef Variable *lmm_variable_t;
56 typedef Constraint *lmm_constraint_t;
57 typedef ConstraintLight *lmm_constraint_light_t;
58 typedef Solver *lmm_system_t;
64 #if defined(__STDC__) || defined(__cplusplus)
65 extern lmm_system_t lmm_system_new(int selective_update);
67 extern void c_function(Solver*); /* ANSI C prototypes */
68 extern Solver* cplusplus_callback_function(Solver*);
71 extern lmm_system_t lmm_system_new(int selective_update);
73 extern void c_function(); /* K&R style */
74 extern Solver* cplusplus_callback_function();
85 #endif /* SURF_SOLVER_H_ */