1. A system for providing mathematical modeling in an object-oriented software environment, comprising:
a processor operable to execute instructions contained in computer program code; and
at least one computer readable medium including:
a first computer program code providing a programming language that is general purpose and object oriented; and
a second computer program code providing a modeling language utilizing the programming language, the modeling language providing high level semantics operable to support application software using statements from both the programming language and the modeling language mixed in a single string, the modeling language semantics representing mathematical expressions in a plurality of mathematical algorithms to be represented using the modeling language;
wherein said first and second computer program code include instructions for representing the mathematical algorithm using the modeling language, solving the mathematical expressions, and producing an output solution and corresponding graphical results displayed in response thereto without requiring manual reentering of data to implement a numerical instance of the mathematical expression at runtime.
2. The system of claim 1, further comprising a compiler associated with the programming language, the modeling language relying on the compiler associated with the general purpose object oriented programming language.
3. The system of claim 1, wherein the modeling language is provided by libraries, the libraries including at least a model class for creating a model object, the model class providing at least a method for adding an objective function to a mathematical programming model.
4. The system of claim 1, wherein the modeling language provides at least a model class for creating a model object, the model class including at least a method for adding a type of constraint to the model object.
5. The system of claim 1, wherein the modeling language supports creating a mathematical programming model, the modeling language providing at least a method for removing an objective function from the mathematical programming model.
6. The system of claim 1, wherein the modeling language supports creating a mathematical programming model, the modeling language providing at least a method for removing a type of constraint from the mathematical programming model.
7. The system of claim 1, wherein the modeling language supports creating a mathematical programming model, the modeling language providing instructions for:
generating a numerical instance of the mathematical programming model based on instance data associated with one or more parameters and one or more index sets of the mathematical programming model, and
passing the instance data to a mathematical programming solver that can solve a numerical model associated with the numerical instance.
8. The system of claim 1, wherein the modeling language supports creating a mathematical programming model, the modeling language providing instructions for:
generating an incremental change to a numerical instance of the mathematical programming model, and
passing the incremental change to a mathematical programming solver.
9. The system of claim 1, wherein the modeling language supports a mathematical programming model object that stores one or more abstract formulas representing a mathematical programming model associated with the mathematical programming model object without incurring storage costs associated with a numerical instance of the mathematical programming model.
10. The system of claim 1, wherein the modeling language provides a class for representing at least one index that is capable of:
referring to an element in a one-dimensional set; and
referring to one dimension of an element in a multi-dimensional set, the element of the multi-dimensional set is capable of being used to address
a particular decision variable in an array of decision variables, and
a particular parameter in an array of parameters.
11. The system of claim 1, wherein the modeling language supports constructors to construct an index set object from one or more existing index set objects of lower dimension.
12. The system of claim 1, wherein the modeling language provides at least an index set class supporting constructors to construct an index set object, having a restricted index set, from another existing index set object having an existing index set by forming the restricted index set from a subset of the existing index set of the existing index set object.
13. The system of claim 1, wherein the modeling language provides at least an index set class supporting an index set object representing a set, the index set object being of a type that does not explicitly store elements of the set.
14. The system of claim 1, wherein the modeling language provides an index set class supporting:
representing a set; and
an iterator that is capable of traversing each element in the set.
15. The system of claim 1, wherein the modeling language provides at least an index set class supporting creating a lower dimension index set object by fixing a value in a dimension of a higher dimension index set object.
16. The system of claim 1, wherein the modeling language supports at least distinguishing whether an index set of an index set object is part of an initial building state or part of an incremental change state, and if the index set is part of the incremental change state, keeping track of incremental changes made to the index set.
17. The system of claim 1, wherein the modeling language provides at least a variable array class to represent an array of decision variables in a mathematical programming model, and the variable array class supports at least:
defining a variable array on a one-dimensional set;
defining a variable array on a multi-dimensional set;
setting at least one bound for at least one decision variable selected from the array of decision variables;
building the mathematical programming model using expressions containing the array of decision variables; and
referring to decision variables associated with the array of decision variables by using an object handle together with at least one index.
18. The system of claim 1, wherein the modeling language supports at least a parameter array class that represents an array of parameters and a method of the class for setting a type of a parameter array object as a parameter array that forwards a request to look up a particular parameter in the parameter array to an external object and has no need to explicitly store any parameter in the parameter array object.
19. The system of claim 1, wherein the modeling language provides a class, to be referred to as a range class, that represents a valid region within a set, and the range class supports specifying a valid range for a set of constraints.
20. The system of claim 1, wherein the modeling language provides a class, to be referred to as a range class, that represents a valid region within a set, and the range class supports specifying a valid range to compute a summation.
21. The system of claim 1, wherein the modeling language provides a base class representing an array of algebra expressions that contains at least one decision variable and a plurality of subclasses representing specific types of algebra expression arrays.
22. The system of claim 1, wherein the modeling language provides a class, as a subclass of an algebra expression array class, that supports a summation of an indexed algebra expression array over an index set.
23. The system of claim 1, wherein the high level modeling language provides overloaded operators, such that an algebra expression array object can be formed using component algebra expression array objects joined by one of the overloaded operators.
24. The system of claim 1, wherein the modeling language provides:
a base class for representing constant expression arrays that do not contain decision variables, and
a plurality of subclasses for representing specific types of the constant expression arrays, one category of the plurality of subclasses being for representing constant expression arrays having integer values.
25. The system of claim 1, wherein the modeling language:
supports building a mathematical programming model by at least adding a constraint type to the mathematical programming model; and
enables an index expression object to refer to
a particular decision variable within an array of decision variables referenced by the constraint type, and
a particular parameter within an array of parameters referenced by the constraint type.
26. The system of claim 1, wherein the modeling language provides at least one comparison operator, and the high level modeling language supports:
a constraint type of a mathematical programming model being expressible without specifying a valid range of the constraint type, the constraint type being expressible as an algebraic expression array object on a left hand side of the comparison operator and a constant expression array object on a right hand side of the comparison operator; and
a range object to specify the valid range of the constraint type.
27. The system of claim 1, wherein the modeling language supports a predicate object that is useable in a constructor of a range object, therein restricting the index set that the range object represents.
28. A computer program product embedded in a computer readable medium for providing mathematical modeling in an object-oriented software environment, comprising:
computer program code providing a C++ programming environment;
computer program code providing C++ libraries, having at least:
an index class representing at least one index,
an index set class representing an index set that is capable of being one dimensional or multi-dimensional,
a range class that represents a range of values that an element of the index set can take,
a variable array class that represents an array of decision variables having at least one decision variable,
a parameter array class that represents an array of parameters,
an algebraic expression array class that represents an array of algebraic expressions that contain the at least one decision variable,
a sum class representing a summation of the algebraic expressions as a sub type of the algebraic expression array class,
a variable array in expression class creating an object that is returned by a \u201c( )\u201d operator of the variable array class,
a constant expression array class that represents an array of constant expressions that do not contain decision variables,
a set of overloaded computation operators capable of returning an algebraic expression array object, a constant expression array object, and an index expression object,
a parameter array in expression class creating an object that is returned by a \u201c( )\u201d operator of the parameter array class,
a predicate class that represents a predicate,
an unbounded constraint array class that represents a type of constraint without specifying a range for the constraint,
a constraint array class that represents a constraint type and capable of creating a constraint array object having one object of the unbounded constraint array class to describe the constraint and one range object to specify the range,
a set of overloaded comparison operators that are capable of returning a predicate object and the constraint array object, and
a mathematical model class, that represents a mathematical programming model capable of at least adding an objective function to the mathematical programming model that is capable of being the array of algebraic expressions, adding the constraint type to the mathematical programming model, and associating the mathematical programming model with a mathematical programming solver; computer program code for modeling a mathematical algorithm using a high level modeling language built using the C++ programming environment and the C++ libraries; and
computer program code for solving the mathematical algorithm modeled using the modeling language coupled with the programming language and producing an output solution and the corresponding graphical results displayed in response thereto without requiring manual reentering of data to implement a numerical instance of the mathematical expression at runtime.
29. A system for providing mathematical modeling in an object oriented software environment, comprising:
means for providing a general purpose language that is an object oriented programming language; means for compiling the programming language; means for providing a modeling language, using the programming language without a separate compiler or interpreter, the modeling language providing semantics, providing expressions from both the programming language and the modeling language operable to be written in a single string; means for solving a mathematical algorithm executed using the modeling language and producing an output solution and the corresponding graphical results displayed in response thereto without requiring manually reentering data to implement a numerical instance of the mathematical expression at runtime.
30. (canceled)
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. Bimetallic thermostat with exchange contact comprising an external support covering and an internal device made up of a pierced base provided with a packing and with electric contacts with the outside, of a relay electrically connected with said base and of a sensitive thermostatic element electrically connected with said relay, characterized in that it additionally comprises a printed circuit interposed between the sensing element and the relay.
2. Thermostat according to claim 1, wherein said relay is electrically connected with said base by means of electric wires.
3. Thermostat according to claim 1, wherein said sensing element is connected with said plate by means of feet.
4. Thermostat according to claim 1, wherein said electric contacts with the outside consist of external feet with which said electric wires are connected.
5. Thermostat according to claim 1, wherein said external covering is partially provided with an external connection thread.