4 'MONO_NO_RELATION', # 000
5 'MONO_EQ_RELATION', # 001
6 'MONO_LT_RELATION', # 010
7 'MONO_LE_RELATION', # 011 (MONO_LT_RELATION|MONO_EQ_RELATION)
8 'MONO_GT_RELATION', # 100
9 'MONO_GE_RELATION', # 101 (MONO_GT_RELATION|MONO_EQ_RELATION)
10 'MONO_NE_RELATION', # 110 (MONO_LT_RELATION|MONO_GT_RELATION)
11 'MONO_ANY_RELATION', # 111 (MONO_EQ_RELATION|MONO_LT_RELATION|MONO_GT_RELATION)
14 sub build_propagated_relation
16 my ( $main_relation, $related_relation ) = @_;
17 my $result = 'MONO_UNKNOWN_RELATION';
19 if ( ($main_relation eq 'MONO_EQ_RELATION') && ($related_relation ne 'MONO_NO_RELATION') )
21 $result = $related_relation;
23 elsif ( $main_relation eq 'MONO_LT_RELATION' )
25 if ( $related_relation eq 'MONO_EQ_RELATION' )
27 $result = 'MONO_LT_RELATION';
29 elsif ( $related_relation eq 'MONO_LT_RELATION' )
31 $result = 'MONO_LT_RELATION';
33 elsif ( $related_relation eq 'MONO_LE_RELATION' )
35 $result = 'MONO_LT_RELATION';
39 $result = 'MONO_ANY_RELATION';
42 elsif ( $main_relation eq 'MONO_LE_RELATION' )
44 if ( $related_relation eq 'MONO_EQ_RELATION' )
46 $result = 'MONO_LE_RELATION';
48 elsif ( $related_relation eq 'MONO_LT_RELATION' )
50 $result = 'MONO_LT_RELATION';
52 elsif ( $related_relation eq 'MONO_LE_RELATION' )
54 $result = 'MONO_LE_RELATION';
58 $result = 'MONO_ANY_RELATION';
62 elsif ( $main_relation eq 'MONO_GT_RELATION' )
64 if ( $related_relation eq 'MONO_EQ_RELATION' )
66 $result = 'MONO_GT_RELATION';
68 elsif ( $related_relation eq 'MONO_GT_RELATION' )
70 $result = 'MONO_GT_RELATION';
72 elsif ( $related_relation eq 'MONO_GE_RELATION' )
74 $result = 'MONO_GT_RELATION';
78 $result = 'MONO_ANY_RELATION';
81 elsif ( $main_relation eq 'MONO_GE_RELATION' )
83 if ( $related_relation eq 'MONO_EQ_RELATION' )
85 $result = 'MONO_GE_RELATION';
87 elsif ( $related_relation eq 'MONO_GT_RELATION' )
89 $result = 'MONO_GT_RELATION';
91 elsif ( $related_relation eq 'MONO_GE_RELATION' )
93 $result = 'MONO_GE_RELATION';
97 $result = 'MONO_ANY_RELATION';
102 $result = 'MONO_ANY_RELATION';
108 open FILE, ">propagated_relations_table.def";
110 for ( my $mr = 0; $mr < 8; $mr++ )
112 for ( my $pr = 0; $pr < 8; $pr++ )
114 my $propagated_relation = &build_propagated_relation( $relations[$mr], $relations[$pr] );
115 print FILE " $propagated_relation, /* $relations[$mr] - $relations[$pr] */\n";