dejavu
Fast probabilistic symmetry detection.
Loading...
Searching...
No Matches
dejavu::ir::trace Class Reference

The trace invariant. More...

#include <trace.h>

Public Member Functions

traceget_compare_trace ()
 
void op_individualize (const int ind_color)
 
void op_refine_start ()
 
void op_refine_cell_start (int)
 
void op_refine_cell_record (int new_color)
 
void op_additional_info (int d)
 
void op_refine_cell_end ()
 
void op_refine_end ()
 
dej_nodiscard bool blueprint_is_next_cell_active ()
 
void blueprint_skip_to_next_cell ()
 
void rewind_to_individualization ()
 
void skip_to_individualization ()
 
void set_compare_trace (trace *new_compare_trace)
 
void set_compare (bool new_compare)
 
dej_nodiscard unsigned long get_hash () const
 
void set_hash (unsigned long new_hash)
 
dej_nodiscard bool trace_equal () const
 
void reset_trace_equal ()
 
void reset_trace_unequal ()
 
void reset ()
 
void set_record (bool new_record)
 
void reserve (const int n)
 
void set_position (int new_position)
 
dej_nodiscard int get_position () const
 

Detailed Description

The trace invariant.

Class that serves to store and compare the trace of a walk in an individualization-refinement shared_tree. The class provides several different modes in which information is recorded and/or compared.

Specifically, it is possible to (1) record a full trace, (2) compare to a full trace, or (3) compare to a full trace and recording a hash invariant as soon as the new computation deviates from the stored trace (see also ir_mode ).

While comparing to a stored trace (2, 3), the class facilitates the use of the blueprint heuristic, which enables skipping of non-splitting cells in the stored trace.

Definition at line 33 of file trace.h.

Member Function Documentation

◆ blueprint_is_next_cell_active()

dej_nodiscard bool dejavu::ir::trace::blueprint_is_next_cell_active ( )
inline

Only applicable if we are currently comparing to a stored trace (if compare is set).

Returns
Determines whether in the stored trace, the next color in respect to which was refined created new colors (i.e., whether the next color is splitting).

Definition at line 163 of file trace.h.

◆ blueprint_skip_to_next_cell()

void dejavu::ir::trace::blueprint_skip_to_next_cell ( )
inline

Only applicable if we are currently comparing to a stored trace (if compare is set).

Skips the position to the start of the next refinement with respect to a color. To be used after blueprint_is_next_cell_active() determined the current color to be non-splitting.

Definition at line 184 of file trace.h.

◆ get_compare_trace()

trace * dejavu::ir::trace::get_compare_trace ( )
inline

Definition at line 86 of file trace.h.

◆ get_hash()

dej_nodiscard unsigned long dejavu::ir::trace::get_hash ( ) const
inline
Returns
A hash value summarizing the operations recorded in this trace.

Definition at line 257 of file trace.h.

◆ get_position()

dej_nodiscard int dejavu::ir::trace::get_position ( ) const
inline

Definition at line 316 of file trace.h.

◆ op_additional_info()

void dejavu::ir::trace::op_additional_info ( int  d)
inline

Definition at line 133 of file trace.h.

◆ op_individualize()

void dejavu::ir::trace::op_individualize ( const int  ind_color)
inline

Records an individualization.

Parameters
colorThe color being individualized.

Definition at line 94 of file trace.h.

◆ op_refine_cell_end()

void dejavu::ir::trace::op_refine_cell_end ( )
inline

Records the end of a refinement with respect to a color.

Definition at line 140 of file trace.h.

◆ op_refine_cell_record()

void dejavu::ir::trace::op_refine_cell_record ( int  new_color)
inline

Records a that a new color appeared while refining with respect to a color.

Parameters
new_colorThe new color that was refined.

Definition at line 127 of file trace.h.

◆ op_refine_cell_start()

void dejavu::ir::trace::op_refine_cell_start ( int  )
inline

Records the start of a refinement with respect to a color.

Parameters
colorThe color in respect to which the coloring is refined.

Definition at line 113 of file trace.h.

◆ op_refine_end()

void dejavu::ir::trace::op_refine_end ( )
inline

Records the end of a refinement.

Definition at line 150 of file trace.h.

◆ op_refine_start()

void dejavu::ir::trace::op_refine_start ( )
inline

Records the start of a refinement.

Definition at line 103 of file trace.h.

◆ reserve()

void dejavu::ir::trace::reserve ( const int  n)
inline

Definition at line 303 of file trace.h.

◆ reset()

void dejavu::ir::trace::reset ( )
inline

Definition at line 289 of file trace.h.

◆ reset_trace_equal()

void dejavu::ir::trace::reset_trace_equal ( )
inline

Resets the trace to find new deviations from the stored trace.

Definition at line 279 of file trace.h.

◆ reset_trace_unequal()

void dejavu::ir::trace::reset_trace_unequal ( )
inline

Resets the trace to find new deviations from the stored trace.

Definition at line 285 of file trace.h.

◆ rewind_to_individualization()

void dejavu::ir::trace::rewind_to_individualization ( )
inline

Rewinds the position to the previous individualization.

Definition at line 197 of file trace.h.

◆ set_compare()

void dejavu::ir::trace::set_compare ( bool  new_compare)
inline

Determines whether we want to compare the following operations with those of the trace stored in compare_trace.

Parameters
compare

Definition at line 250 of file trace.h.

◆ set_compare_trace()

void dejavu::ir::trace::set_compare_trace ( trace new_compare_trace)
inline

Stores a new trace to compare to.

Parameters
compare_trace

Definition at line 240 of file trace.h.

◆ set_hash()

void dejavu::ir::trace::set_hash ( unsigned long  new_hash)
inline

Sets the hash value to a pre-determined value.

Parameters
hashThe hash value.

Definition at line 265 of file trace.h.

◆ set_position()

void dejavu::ir::trace::set_position ( int  new_position)
inline

Definition at line 308 of file trace.h.

◆ set_record()

void dejavu::ir::trace::set_record ( bool  new_record)
inline

Definition at line 299 of file trace.h.

◆ skip_to_individualization()

void dejavu::ir::trace::skip_to_individualization ( )
inline

Only applicable if we are currently comparing to a stored trace (if compare is set).

Skips the position to the next individualization in the compare_trace.

Definition at line 222 of file trace.h.

◆ trace_equal()

dej_nodiscard bool dejavu::ir::trace::trace_equal ( ) const
inline
Returns
Whether the recorded operations deviated from the stored trace in compare_trace.

Definition at line 272 of file trace.h.


The documentation for this class was generated from the following file: