ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/mesh/trirea.cpp
Revision: 3
Committed: Tue Jun 12 12:42:51 2007 UTC (17 years, 11 months ago)
File size: 2105 byte(s)
Log Message:

File Contents

# Content
1 #include <stdio.h>
2 void trirea(float *a,int *la,int *ir)
3 {
4 int iu[21], il[21], i, m, j, k, ij, l, itt, it ;
5 float t, tt, r ;
6
7 if (*la<=0) return ;
8 m = 1 ;
9 i = 1 ;
10 j = *la ;
11 r = 0.375 ;
12 lab5 : if (i==j) goto lab45 ;
13 if (r>0.5898437) goto lab10 ;
14 r = r + 3.90625e-2 ;
15 goto lab15 ;
16 lab10 : r = r - 0.21875 ;
17 lab15 : k = i ;
18
19 ij = i+(j-i)*r ;
20 t = a[ij-1] ;
21 it = ir[ij-1] ;
22
23 if (a[i-1]<=t) goto lab20 ;
24 a[ij-1] = a[i-1] ;
25 a[i-1] = t ;
26 t = a[ij-1] ;
27 ir[ij-1] = ir[i-1] ;
28 ir[i-1] = it ;
29 it = ir[ij-1] ;
30 lab20 : l = j ;
31
32 if (a[j-1]>=t) goto lab30 ;
33 a[ij-1] = a[j-1] ;
34 a[j-1] = t ;
35 t = a[ij-1] ;
36 ir[ij-1] = ir[j-1] ;
37 ir[j-1] = it ;
38 it = ir[ij-1] ;
39
40 if (a[i-1]<=t) goto lab30 ;
41 a[ij-1] = a[i-1] ;
42 a[i-1] = t ;
43 t = a[ij-1] ;
44 ir[ij-1] = ir[i-1] ;
45 ir[i-1] = it ;
46 // it = ir[ij-1] ;
47 goto lab30 ;
48 lab25 : if (a[l-1]==a[k-1]) goto lab30 ;
49 tt = a[l-1] ;
50 a[l-1] = a[k-1] ;
51 a[k-1] = tt ;
52 itt = ir[l-1] ;
53 ir[l-1] = ir[k-1] ;
54 ir[k-1] = itt ;
55 lab30 : l = l-1 ;
56 if (a[l-1]>t) goto lab30 ; ;
57
58 lab35 : k = k+1 ;
59 if (a[k-1]<t) goto lab35 ;
60 if (k<=l) goto lab25 ;
61 if ((l-i)<=(j-k)) goto lab40 ;
62 il[m-1] = i ;
63 iu[m-1] = l ;
64 i = k ;
65 m = m+1 ;
66 goto lab50 ;
67 lab40 : il[m-1] = k ;
68 iu[m-1] = j ;
69 j = l ;
70 m = m+1 ;
71 goto lab50 ;
72 lab45 : m = m-1 ;
73 if (m==0) return ;
74 i = il[m-1] ;
75 j = iu[m-1] ;
76 lab50 : if ((j-i)>=11) goto lab15 ;
77 if (i==1) goto lab5 ;
78 i = i-1 ; ;
79 lab55 : i = i+1 ;
80 if (i==j) goto lab45 ;
81 t = a[i] ;
82 it = ir[i] ;
83 if (a[i-1]<=t) goto lab55 ;
84 k = i ;
85 lab60 : a[k] = a[k-1] ;
86 ir[k] = ir[k-1] ;
87 k = k-1 ;
88 if (t<a[k-1]) goto lab60 ;
89 a[k] = t ;
90 ir[k] = it ;
91 goto lab55 ;
92 }