New in Version 0.17.0

Released 13 May 2023

Interface Changes

This release mainly changes the file layout. Header file meddly.h is now an umbrella header, and implementation is further divided out into header and implementation files. Mostly the interface itself is unchanged, with a few exceptions.

  • Header file meddly_expert.h has been eliminated.

  • Necessary header files will be installed under (prefix)/include/meddly, instead of (prefix)/include.

  • Class expert_variable has been merged into class variable. It is anticipated that other simple and expert versions of classes will be merged in future releases.

  • Operation names (COMPLEMENT, CARDINALITY, etc.) have changed type; they are now functions of no parameters, that return an operation name.

  • Several enums, structs, and classes that were within other classes, have become stand-alone (top-level) enum classes, structs, or classes.

Type changes

Old type New type
struct MEDDLY::forest::policies struct MEDDLY::policies
enum MEDDLY::forest::policies::reduction_rule enum class MEDDLY::reduction_rule
enum MEDDLY::forest::range_type enum class MEDDLY::range_type
enum MEDDLY::forest::edge_labeling enum class MEDDLY::edge_labeling
   
class MEDDLY::expert_forest::bool_Tencoder class MEDDLY::bool_Tencoder
class MEDDLY::expert_forest::int_Tencoder class MEDDLY::int_Tencoder
class MEDDLY::expert_forest::float_Tencoder class MEDDLY::float_Tencoder
class MEDDLY::expert_forest::EVencoder class MEDDLY::EVencoder
   
enum MEDDLY::unpacked_node::storage_style MEDDLY::node_storage_flags
   
struct MEDDLY::ct_initializer::settings struct MEDDLY::ct_settings
enum MEDDLY::compute_table::typeID enum class MEDDLY::ct_typeID
union MEDDLY::compute_table::entry_item union MEDDLY::ct_entry_item
class MEDDLY::compute_table::entry_type class MEDDLY::ct_entry_type
class MEDDLY::compute_table::entry_key class MEDDLY::ct_entrry_key
class MEDDLY::compute_table::entry_result class MEDDLY::ct_entry_result

Enum item changes

Old item New item
MEDDLY::forest::policies::PESSIMISTIC_DELETION MEDDLY::policies::node_deletion::PESSIMISTIC
MEDDLY::forest::policies::OPTIMISTIC_DELETION MEDDLY::policies::node_deletion::OPTIMISTIC
MEDDLY::forest::policies::NEVER_DELETE MEDDLY::policies::node_deletion::NEVER
   
MEDDLY::forest::BOOLEAN MEDDLY::range_type::BOOLEAN
MEDDLY::forest::INTEGER MEDDLY::range_type::INTEGER
MEDDLY::forest::REAL MEDDLY::range_type::REAL
   
MEDDLY::forest::MULTI_TERMINAL MEDDLY::edge_labeling::MULTI_TERMINAL
MEDDLY::forest::EVPLUS MEDDLY::edge_labeling::EVPLUS
MEDDLY::forest::EVTIMES MEDDLY::edge_labeling::EVTIMES
MEDDLY::forest::INDEX_SET MEDDLY::edge_labeling::INDEX_SET

Method changes

Old call New call
node_storage::moveNodeOffset(node, old, new) node_storage::getParent()->moveNodeOffset(node, old, new)
   
unpacked_node::useUnpackedNode() unpacked_node::New()
unpacked_node::newFromNode(f, nh, howstored) expert_forest::newUnpacked(nh, howstored)
unpacked->initFromNode(f, nh, howstored) f->unpackNode(unpacked, nh, howstored)
howstored should be: FULL_ONLY (previously true)
  SPARSE_ONLY (previously false)
  FULL_OR_SPARSE

Updated: