New in Version 0.12.625

Released 25 Apr 2015

Simple Interface Changes

  • More careful and more strict use of set methods in class dd_edge: for multi-terminal forests, use set with a single argument; for edge-valued forsts, use the appropriate two-argument version of set.
  • Added new edge labeling possiblity, INDEX_SET. From now on, this should be used instead of EVPLUS whenever an indexed set is constructed with operation CONVERT_TO_INDEX_SET, otherwise the library will throw an exception.
  • Added operations VM_MULTIPLY, MV_MULTIPLY and MM_MULTIPLY for MTMxDs.
  • Changed design of the enumerator class. Regular enumerators can be initialized as usual (constructor with a dd_edge). Otherwise, use a constructor (or initialize later) by passing the enumeration type and forest. Note that now, the forest for an enumerator is fixed for its life.
  • Added support for EV*MxDs.
  • Added mechanism to log forest changes to a file, to be utilized by other utilities (see class logger within class forest).
  • Cleaned up the header file.

Expert Interface Changes

  • Added classes int_EVencoder and float_EVencoder for a centralized mechanism for storing edge values within nodes.
  • Classes bool_encoder, int_encoder, and float_encoder have been renamed bool_Tencoder, int_Tencoder, and float_Tencoder for consistency.
  • Vector-matrix and matrix-vector multiply can now use INDEX_SET or EVPLUS forests. Currently, it is better to use INDEX_SET forests if possible.
  • Changed names VECT_MATR_MULT and MATR_VECT_MULT, to EXPLVECT_MATR_MULT and MATR_EXPLVECT_MULT, to emphasize that vectors are stored explicitly.
  • Completely re-designed the compute table interface. Large impact on implementation of operations; little to no impact on everything else. The new interface completely hides the compute table storage mechanism, so we will be able to plug in different storage schemes without changing any operation code (at least, in theory). Part of the gradual shift toward 64-bit node handles.
  • Class numerical_operation is removed and should be replaced by specialized_operation.
  • Added a specialized_operation for saturation, which allows the use of partitioned transition relations with options for organizing and combining them. See class satpregen_opname, and SATURATION_FORWARD.
  • Cleaned up the header file.

Implementation Changes

  • New implementation of COPY. It should now be possible to copy between almost any two forests over the same domain (assuming they are either both for sets, or both for relations).
  • Added test applications for COPY, and EV*MxDs.

Updated: