xref: /haiku/headers/libs/linprog/Variable.h (revision ed6250c95736c0b55da79d6e9dd01369532260c0)
1 #ifndef	VARIABLE_H
2 #define	VARIABLE_H
3 
4 #include <SupportDefs.h>
5 
6 
7 namespace LinearProgramming {
8 
9 class Constraint;
10 class LinearSpec;
11 
12 /**
13  * Contains minimum and maximum values.
14  */
15 class Variable {
16 
17 public:
18 	int32				Index();
19 	LinearSpec*			LS() const;
20 	void					SetLS(LinearSpec* value);
21 	double				Value() const;
22 	void					SetValue(double value);
23 	double				Min() const;
24 	void					SetMin(double min);
25 	double				Max() const;
26 	void					SetMax(double max);
27 	void					SetRange(double min, double max);
28 	//~ string				ToString();
29 	Constraint*			IsEqual(Variable* var);
30 	Constraint*			IsSmallerOrEqual(Variable* var);
31 	Constraint*			IsGreaterorEqual(Variable* var);
32 
33 protected:
34 						Variable(LinearSpec* ls);
35 						~Variable();
36 
37 private:
38 	LinearSpec*			fLS;
39 	double				fValue;
40 	double				fMin;
41 	double				fMax;
42 
43 public:
44 	friend class			LinearSpec;
45 	friend class			SoftConstraint;
46 
47 };
48 
49 }	// namespace LinearProgramming
50 
51 using LinearProgramming::Variable;
52 
53 #endif	// VARIABLE_H
54