File: coinc_cols12.h

package info (click to toggle)
magnus 20060324-5.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 19,436 kB
  • ctags: 20,462
  • sloc: cpp: 130,217; ansic: 37,090; tcl: 10,970; perl: 1,109; makefile: 966; sh: 403; yacc: 372; csh: 57; awk: 33; asm: 10
file content (111 lines) | stat: -rw-r--r-- 3,477 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/* file coinc_cols12.h */
#include "tc.h"
#include "ct.h"
#include "ded.h"
#include "miscellaneous.h"
#ifndef __COINC__12__
#define __COINC__12__
#define AdjustLowHigh	if (low > high) \
				{ Swap(low,high); }
#define CheckIndex1 	if (NALIVE == 1 && CT(1, 1) != 0) { \
				tc_check_index1(tc_pvar); \
				if (INDEX1) \
					return; \
			}
#define Check(i)	if(i != high) \
				CT(i,j) = 0;  \
			else \
				i = low
#define CheckSet(low,i)	k = CT(low, i); \
                        if (k && CT(k, j) == 0 && k != high) \
                		CT(k, j) = low
#define Init	ct = COSET_TABLE; \
		low1s = 0; \
		low2s = 0; \
		high1s = 0; \
		high2s = 0; \
        	low = lows; \
        	high = highs
#define MessageOutput	if (MSGLVE && NALIVE == INTNAL) { \
				INTNAL -= LVE; \
 				if (NALIVE != OLDNAL)  {  \
					OLDNAL = NALIVE; \
					tc_text(11, tc_pvar); \
                		} \
          		}
#define	Save_cols12(low,high)	if (low != high) { \
                                        if (low > high) \
                                                { Swap(low,high); } \
				if(low1s!=0&&low1s==low&&high1s==high) { ; \
			      }else if(low2s!=0&&low2s==low&&high2s==high){ ;\
				} else { \
        				if (low1s == 0) { \
                				low1s = low; \
                				high1s = high; \
        				} else { \
                				low2s = low; \
                				high2s = high; \
        				} \
				} \
				}	

#define Get_cols12(low,high)     if (low1s != 0) { \
                                        low = low1s; low1s = 0; \
                                        high = high1s; \
                                 } else if (low2s != 0) {\
                                        low = low2s; low2s = 0; \
                                        high = high2s; \
                                } else \
                                        break
#define high_low(i)             CT((i),1) 
/* Break down the coinc chain respect with low: 
* compute the ultimate irredundant value of low.  */
#define CompressPath(low)   if((i = CT(low,1)) < 0) { \
      					i = -i; \
      					l = low; \
      					while ((j = high_low(i)) < 0) \
            					i = -j; \
      					j = CT(low,1);  \
      				while ((j = high_low(-j)) < 0) { \
						 high_low(l) = -i;  \
          					l = -j; \
      					} \
      					low = i;   \
   				}
/* macros for push and pull coincs from coinc_stack:  
*  high_low() is a link to link high to equivalent low.
*  coinc_stk() is a stack to save unprocessed coincident coset high.
*/
#define Coinc_stk(i)          CT((i),2)
#define Push(high,low)		CT(high,1)= -low; \
				if(CHEAD == 0) \
					CHEAD = high; \
				else \
					CT(CTAIL,2) = high; \
				CTAIL = high; \
				CT(high,2)=0
#define	RemoveHigh	if (low1s) { \
				if (low1s == high) \
                			low1s = low; \
            			if (high1s  == high) \
                			high1s  = low; \
            			if (low1s >= high1s ) \
                			if (low1s == high1s ) \
                        			low1s = 0; \
                			else { \
						Swap(low1s, high1s); \
					} \
          		} \
        		if (low2s) { \
				if (low2s == high) \
                			low2s = low; \
            			if (high2s == high) \
                			high2s = low; \
            			if (low2s >= high2s) \
                			if (low2s == high2s) \
                        			low2s = 0; \
                			else { \
						Swap(low2s, high2s); \
					} \
          		}
#endif