1 #ifndef ADIAR_STATISTICS_H
2 #define ADIAR_STATISTICS_H
17 #include <adiar/internal/cnl.h>
160 uintwide
internal = 0;
464 } nested_transposition;
void statistics_print(std::ostream &o=std::cout)
Print statistics to an output stream (default std::cout).
void statistics_reset()
Resets all statistics to default value.
statistics statistics_get()
Obtain a copy of all statistics gathered.
Core types.
Definition: adiar.h:40
Type and usage of this algorithm's levelized priority queue.
Definition: statistics.h:151
uintwide unbucketed
Number of unbucketed internal levelized priority queues.
Definition: statistics.h:155
uintwide total() const
Total number of levelized priority queues.
Definition: statistics.h:171
uintwide external
Number of bucketed external levelized priority queues.
Definition: statistics.h:165
Common statistics for all algorithms.
Definition: statistics.h:146
adiar::statistics::__alg_base::__lpq_t lpq
Type and usage of this algorithm's levelized priority queue.
Common statistics for algorithms using a second priority queue.
Definition: statistics.h:215
uintwide runs
Number of runs resolved with a secondary priority queue.
Definition: statistics.h:219
uintwide pq_2_elems
Number of elements moved from the first priority queue into the second one.
Definition: statistics.h:225
Common statistics for algorithms using random access.
Definition: statistics.h:184
uintwide acc_width
Accumulation of the width of all diagrams where random access has been used.
Definition: statistics.h:198
uintwide runs
Number of runs resolved with a secondary priority queue.
Definition: statistics.h:188
size_t max_width
Maximum width of a diagrams using random access.
Definition: statistics.h:208
size_t min_width
Minimum width of a diagrams using random access.
Definition: statistics.h:203
uintwide used_narrowest
Number of runs where the narrowest could be used.
Definition: statistics.h:193
Arc Files statistics.
Definition: statistics.h:41
uintwide sort_out_of_order
Number of times out-of-order terminal arcs are sorted.
Definition: statistics.h:65
uintwide push_level
Number of level informations pushed.
Definition: statistics.h:60
uintwide push_out_of_order
Number of terminal arcs written out-of-order.
Definition: statistics.h:55
uintwide push_in_order
Number of terminal arcs written in-order.
Definition: statistics.h:50
uintwide push_internal
Number of internal arcs written.
Definition: statistics.h:45
Counting algorithm statistics.
Definition: statistics.h:237
Statistics from O(N) linear-scan equality checking algorithm.
Definition: statistics.h:317
uintwide exit_on_mismatch
Termination due to the i'th nodes do not match numerically.
Definition: statistics.h:326
uintwide runs
Number of runs of the fast isomorphism algorithm.
Definition: statistics.h:321
Statistics from O(N log N) time-forward processing equality checking algorithm.
Definition: statistics.h:285
uintwide exit_on_root
Termination due to a local violation at the root.
Definition: statistics.h:294
uintwide runs
Number of runs of the slow isomorphism checking algorithm.
Definition: statistics.h:289
uintwide exit_on_children
Termination due to mismatch in a node's children's level, i.e. a local violation at some node.
Definition: statistics.h:306
uintwide exit_on_processed_on_level
Termination due to too many requests being processed at some level, i.e. one node must have been pair...
Definition: statistics.h:300
Equality Checking algorithm statistics.
Definition: statistics.h:248
uintwide exit_on_varcount
Early O(1) termination due to mismatch in number of levels.
Definition: statistics.h:264
uintwide exit_on_levels_mismatch
Early O(L) termination due to per-level meta information does not match.
Definition: statistics.h:279
uintwide exit_on_width
Early O(1) termination due to mismatch in width.
Definition: statistics.h:269
struct adiar::statistics::equality_t::fast_t fast_check
Statistics from O(N) linear-scan equality checking algorithm.
struct adiar::statistics::equality_t::slow_t slow_check
Statistics from O(N log N) time-forward processing equality checking algorithm.
uintwide exit_on_nodecount
Early O(1) termination due to mismatch in number of nodes.
Definition: statistics.h:259
uintwide exit_on_same_file
Early O(1) termination due to same file on disk.
Definition: statistics.h:254
uintwide exit_on_terminalcount
Early O(1) termination due to mismatch in number of arcs to terminals.
Definition: statistics.h:274
Intercut algorithm statistics.
Definition: statistics.h:340
Levelized Priority Queue statistics.
Definition: statistics.h:95
size_t sum_destructors
Number of calls to the destructor, i.e. the total number of levelized priority queues that have repor...
Definition: statistics.h:134
double sum_max_size_ratio
Sum over the ratio between predicted and actual maximum size, i.e. .
Definition: statistics.h:128
uintwide push_bucket
Number of pushes in the bucketed variant to a bucket.
Definition: statistics.h:99
uintwide push_overflow
Number of pushes in the bucketed variant to the overflow queue.
Definition: statistics.h:104
uintwide sum_predicted_max_size
The sum over all levelized priority queue's predicted maximum size, i.e. .
Definition: statistics.h:112
uintwide sum_actual_max_size
The sum over all levelized priority queue's maximum size, i.e. .
Definition: statistics.h:120
Definition: statistics.h:705
uintwide modifying
Number of requests created at this level.
Definition: statistics.h:719
uintwide preserving
Number of requests crossing nesting level (and preserved).
Definition: statistics.h:714
uintwide terminals
Number of requests for terminals (and skipped).
Definition: statistics.h:709
Root Requests generated for Inner Down Sweep.
Definition: statistics.h:669
uintwide pq_runs
Number of sweeps run with multiple priority queues.
Definition: statistics.h:736
uintwide ra_runs
Number of sweeps run with random access.
Definition: statistics.h:731
uintwide removed_by_rule_1
Number of preserving and terminal requests that stem from suppressing a node on the nesting level.
Definition: statistics.h:726
Inner Up Sweep(s)
Definition: statistics.h:745
uintwide reduced_levels__fast
Number of levels reduced "fast" and non-canonically.
Definition: statistics.h:764
uintwide inner_arcs
Number of arcs within inner sweep.
Definition: statistics.h:749
uintwide reduced_levels
Number of levels reduced canonically.
Definition: statistics.h:759
uintwide outer_arcs
Number of arcs within outer sweep.
Definition: statistics.h:754
Outer Reduce Sweep.
Definition: statistics.h:631
uintwide skipped_nested_levels__prune
Number Inner Sweeps skipped that prunes all accumulated nodes.
Definition: statistics.h:655
uintwide skipped_nested_levels
Number Inner Sweeps skipped.
Definition: statistics.h:650
uintwide reduced_levels
Number of levels reduced canonically.
Definition: statistics.h:635
uintwide reduced_levels__fast
Number of levels reduced "fast" and non-canonically.
Definition: statistics.h:640
uintwide nested_levels
Number Inner Sweeps started.
Definition: statistics.h:645
uintwide collapse_to_terminal
Number of outer sweeps that collapsed early into a terminal.
Definition: statistics.h:660
Nested Sweeping statistics.
Definition: statistics.h:616
struct adiar::statistics::nested_sweeping_t::inner_down_t inner_down
Root Requests generated for Inner Down Sweep.
uintwide skips
Number of times Nested Sweeping Framework is skipped for a simple Reduce algorithm.
Definition: statistics.h:620
adiar::statistics::nested_sweeping_t::inner_up_t inner_up
adiar::statistics::nested_sweeping_t::outer_up_t outer_up
Outer Reduce Sweep.
uintwide runs
Number of times Nested Sweeping Framework is skipped for a simple Reduce algorithm.
Definition: statistics.h:625
Node Files statistics.
Definition: statistics.h:74
uintwide push_node
Number of nodes written.
Definition: statistics.h:78
uintwide push_level
Number of level informations written.
Definition: statistics.h:83
Boolean Optimization algorithm statistics.
Definition: statistics.h:351
2-ary Product Construction algorithm statistics.
Definition: statistics.h:362
uintwide trivial_file
Number of runs resolved due to the same file given twice.
Definition: statistics.h:366
__pq2_base pq
Statistics for the double priority queue algorithmic variant.
Definition: statistics.h:381
uintwide trivial_terminal
Number of runs resolved due to one argument being a terminal.
Definition: statistics.h:371
__random_access_base ra
Statistics for the random-access algorithmic variant.
Definition: statistics.h:376
3-ary Product Construction algorithm statistics.
Definition: statistics.h:392
Nested multi-variable sweeping.
Definition: statistics.h:470
uintwide products
Number of recursions left for a product construction.
Definition: statistics.h:484
uintwide shortcut_terminal
Number of potential recursions shortcut to a terminal.
Definition: statistics.h:474
uintwide shortcut_node
Number of potential recursions shortcut to an internal node.
Definition: statistics.h:479
Transposition algorithms prior to nested multi-variable sweeping.
Definition: statistics.h:428
uintwide simple
Number of simple transposition sweeps.
Definition: statistics.h:437
uintwide partial_repetitions
Number of partial multi-variable sweeps that are repeated partial transposition.
Definition: statistics.h:463
uintwide partial
Number of partial multi-variable transposition sweeps.
Definition: statistics.h:452
uintwide none
Number of skipped transpositions (already transposed).
Definition: statistics.h:432
uintwide singleton
Number of single-variable transposition sweeps.
Definition: statistics.h:442
uintwide partial_terminations
Number of early-termination during partial transposition sweeps.
Definition: statistics.h:457
uintwide pruning
Number of pruning multi-variable transposition sweeps.
Definition: statistics.h:447
Quantification algorithm statistics.
Definition: statistics.h:403
uintwide nested_sweeps
Number of nested multi-variable sweeps.
Definition: statistics.h:422
uintwide requests_unique[2]
Number of unique requests of arity 1 and 2.
Definition: statistics.h:505
uintwide runs
Number of calls to quantification operation.
Definition: statistics.h:407
__random_access_base ra
Statistics for the random-access algorithmic variant.
Definition: statistics.h:490
uintwide skipped
Number of bailed-out quantifications for non-existent labels.
Definition: statistics.h:412
__pq2_base pq
Statistics for the double priority queue algorithmic variant.
Definition: statistics.h:495
uintwide singleton_sweeps
Number of single-variable sweeps.
Definition: statistics.h:417
uintwide requests[2]
Number of requests of arity 1 and 2.
Definition: statistics.h:500
Reduce algorithm statistics.
Definition: statistics.h:530
uintwide sum_node_arcs
Sum of the inputs' number of arcs to internal nodes.
Definition: statistics.h:534
uintwide removed_by_rule_2
Number of nodes removed due to reduction rule 2, i.e. the number of duplicate of nodes that have been...
Definition: statistics.h:551
uintwide sum_terminal_arcs
Sum of the inputs' number of arcs to terminals.
Definition: statistics.h:539
uintwide removed_by_rule_1
Number of nodes removed due to reduction rule 1, i.e. the number of nodes that are suppressed in the ...
Definition: statistics.h:545
Variable replacement statistics.
Definition: statistics.h:565
uintwide identity_reduces
Number of runs using a mere Reduce sweep without any variables changed.
Definition: statistics.h:579
uintwide monotonic_reduces
Number of runs where replacement has been incorporated into the Reduce sweep.
Definition: statistics.h:595
uintwide terminal_returns
Number of runs using 0 I/Os due to a terminal input.
Definition: statistics.h:569
uintwide identity_returns
Number of runs using 0 I/Os due to no variables are changed.
Definition: statistics.h:574
uintwide shift_returns
Number of runs using 0 I/Os due to the variables are replaced according to a simple linear shift.
Definition: statistics.h:585
uintwide nested_sweeps
Number of runs where replacement uses the Nested Sweeping framework to handle non-monotonic replaceme...
Definition: statistics.h:601
uintwide monotonic_scans
Number of runs using a 2N/B linear copy-paste.
Definition: statistics.h:590
Select algorithm statistics.
Definition: statistics.h:516
Available statistics from algorithm's and data structures.
Definition: statistics.h:33
adiar::statistics::equality_t equality
Equality Checking algorithm statistics.
struct adiar::statistics::levelized_priority_queue_t levelized_priority_queue
Levelized Priority Queue statistics.
adiar::statistics::select_t select
Select algorithm statistics.
adiar::statistics::prod2_t prod2
2-ary Product Construction algorithm statistics.
struct adiar::statistics::arc_file_t arc_file
Arc Files statistics.
struct adiar::statistics::nested_sweeping_t nested_sweeping
Nested Sweeping statistics.
adiar::statistics::reduce_t reduce
Reduce algorithm statistics.
adiar::statistics::prod3_t prod3
3-ary Product Construction algorithm statistics.
struct adiar::statistics::replace_t replace
Variable replacement statistics.
adiar::statistics::optmin_t optmin
3-ary Product Construction algorithm statistics.
adiar::statistics::intercut_t intercut
Intercut algorithm statistics.
struct adiar::statistics::node_file_t node_file
Node Files statistics.
adiar::statistics::quantify_t quantify
Quantification algorithm statistics.
adiar::statistics::count_t count
Counting algorithm statistics.