New in Version 0.15.1
Released 09 Jul 2019
Simple Interface Changes
- For forests with range of
INTEGER
, function values are nowlong
instead ofint
. The interface has been updated appropriately (methodscreateEdge
,createEdgeForVar
, andevaluate
).
Expert Interface Changes
The compute table interface has changed significantly. This will affect anyone who implements their own operations. Essentially, the compute table is now much more aware of the contents of each compute table entry (in terms of the types of items in an entry). The long term goals of this change include simplification (and better flexibility flexibility) of operation code and eventually to allow for efficient compression of compute table entries.
-
Class
compute_table::search_key
has been renamedcompute_table::entry_key
, and is now concrete. -
Class
compute_table::search_result
has been renamedcompute_table::entry_result
, and is now concrete. -
Class
compute_table::entry_builder
has been removed. A compute table entry is now added by giving the key portion and the result portion. -
New class,
compute_table::entry_type
with type information for compute table entries. - The list of recycled
entry_keys
is now maintained in classcompute_table
. When implementing an operation, old code:compute_table::entry_key* CTsrch = useCTkey(); CTsrch->reset(); // ... doneCTkey(CTsrch);
should be replaced with:
compute_table::entry_key* CTsrch = CT->useEntryKey(this); // ... CT->recycle(CTsrch);
-
Instead of returning the result, the
compute_table::find
method now expects the result to be passed as an argument and will be filled in. Operations now pre-allocate results for this purpose (only one result is needed per entry type). - Removed
OperationMap
as a compute table option.
Implementation
- Streamlined compute table implemenation using templates.