The CTDE domain is now a supported domain, that is, it has overcome several of its previous limitations:

API changes

C++ data types

The Vector type was renamed to RVector.


Function(s) Changes
multiply The multiply function which was used to multiply a matrix with a vector was dropped along with the providing header file VectorOperations.h. The dgemv function provided by the LAPACK library can serve as a substitute. A usage example can be found in the MatrixGain primitive which is located in the Arithmetic library.
Now, the scheduler automatically determines whether primitives are dynamic (that is, whether they contain continuous states) or stateevent-generators. Therefore these functions were deleted without replacement.

Parameter types

Type description MLDesigner 2 type name MLDesigner 3 type name Changes
Array state of doubles, used for continuous states integratorarray integrator  
  • The method to adjust the size of the array, previously setInitialSize, is now resize.
  • The method to set the initial value of the array elements, setInitialValue, was deleted without replacement. The array elements are automatically initialized with 0.0 upon resize.
Represent a continuous state variable integrator stateevent

Port access


Following operators to access values from scalar continuous ports were dropped.

The getVector method which obtains the input vector has changed, it no longer has a return value. Instead a reference or a pointer to the data location in which to store the input vector has to be supplied as a parameter. Following methods are implemented.

Additionally an operator RVector() has been added. It also can be used to replace the getVector method from MLDesigner 2. For example, a statement from MLDesigner 2 which read:

const Vector& a = Input1.getVector();

Would read in MLDesigner 3:

const RVector& a = RVector(Input1);


Following methods to assign values to scalar continuous ports were dropped.

The getVector method with which it was possible to obtain a writable reference to the port's value was replaced by the following setVector methods.