@@ -341,7 +341,7 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
341
341
# If we are coming here from an immediate rule firing with delta_t=0 we have to apply that one rule. Which was just added to the list to_be_applied
342
342
if immediate_node_rule_fire and rules_to_be_applied_node [- 1 ][4 ]:
343
343
i = rules_to_be_applied_node [- 1 ]
344
- idx = - 1
344
+ idx = len ( rules_to_be_applied_node ) - 1
345
345
346
346
if i [0 ]== t :
347
347
comp , l , bnd , immediate = i [1 ], i [2 ], i [3 ], i [4 ]
@@ -417,6 +417,8 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
417
417
# Remove from rules to be applied and edges to be applied lists after coming out from loop
418
418
rules_to_be_applied_node [:] = numba .typed .List ([rules_to_be_applied_node [i ] for i in range (len (rules_to_be_applied_node )) if i not in rules_to_remove_idx ])
419
419
edges_to_be_added_node_rule [:] = numba .typed .List ([edges_to_be_added_node_rule [i ] for i in range (len (edges_to_be_added_node_rule )) if i not in rules_to_remove_idx ])
420
+ if atom_trace :
421
+ rules_to_be_applied_node_trace [:] = numba .typed .List ([rules_to_be_applied_node_trace [i ] for i in range (len (rules_to_be_applied_node_trace )) if i not in rules_to_remove_idx ])
420
422
421
423
# Edges
422
424
rules_to_remove_idx .clear ()
@@ -427,7 +429,7 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
427
429
# If we are coming here from an immediate rule firing with delta_t=0 we have to apply that one rule. Which was just added to the list to_be_applied
428
430
if immediate_edge_rule_fire and rules_to_be_applied_edge [- 1 ][4 ]:
429
431
i = rules_to_be_applied_edge [- 1 ]
430
- idx = - 1
432
+ idx = len ( rules_to_be_applied_edge ) - 1
431
433
432
434
if i [0 ]== t :
433
435
comp , l , bnd , immediate = i [1 ], i [2 ], i [3 ], i [4 ]
@@ -504,6 +506,8 @@ def reason(interpretations_node, interpretations_edge, tmax, prev_reasoning_data
504
506
# Remove from rules to be applied and edges to be applied lists after coming out from loop
505
507
rules_to_be_applied_edge [:] = numba .typed .List ([rules_to_be_applied_edge [i ] for i in range (len (rules_to_be_applied_edge )) if i not in rules_to_remove_idx ])
506
508
edges_to_be_added_edge_rule [:] = numba .typed .List ([edges_to_be_added_edge_rule [i ] for i in range (len (edges_to_be_added_edge_rule )) if i not in rules_to_remove_idx ])
509
+ if atom_trace :
510
+ rules_to_be_applied_edge_trace [:] = numba .typed .List ([rules_to_be_applied_edge_trace [i ] for i in range (len (rules_to_be_applied_edge_trace )) if i not in rules_to_remove_idx ])
507
511
508
512
# Fixed point
509
513
# if update or immediate_node_rule_fire or immediate_edge_rule_fire or immediate_rule_applied:
0 commit comments